В Roslyn CTP довольно часто используется следующая сигнатура методов:
LiteralExpressionSyntax LiteralExpression(SyntaxKind kind, SyntaxToken token)
В чем причина передачи SyntaxKind? token
сам имеет свойство Kind
, почему Roslyn его не использует?
Чтобы быть более точным, он берет предоставленный пользователем kind
, утверждает, что он ограничен узким набором значений, затем проверяет, что Kind
token
также принадлежит к этому узкому набору, а затем передает предоставленный пользователем kind
дальше.
Почему Roslyn не использует token.Kind
и заставляет пользователя передавать явный вид?
UPD: Собственно, главный вопрос: в каких случаях kind
, переданный пользователем, будет отличаться от вида token
?
StringLiteralExpression
и так далее. - person Mikhail Brinchuk   schedule 23.06.2013