swiftlang/swift-syntax

Further generalize parse diagnostics functions

AppAppWorks opened this issue · 1 comments

Description

#2731 has embarked on the generalization of parse diagnostics functions. It was driven by the necessity of manipulating a whole TypeSyntax (the thrown type) instead of discrete TokenSyntaxs which the functions were originally designed for.

The refactoring effort stopped at generalizing ParseDiagnosticsGenerator.exchangeTokens into ParseDiagnosticsGenerator.exchangeNodes that has relaxed the accepted input type from TokenSyntax to Syntax. However several implementations of ParserError such as EffectsSpecifierAfterArrow, and implementations of ParserFixIt such as MoveTokensAfterFixIt that constitute Diagnostic still expect TokenSyntax. More importantly, nodesDescriptionAndCommonParent, the common utility function responsible for rendering several messages in the diagnostic, expects a list of TokenSyntax as its input.

We should continue refactoring on these functions to further improve generality.

Synced to Apple’s issue tracker as rdar://132444863