Keep leading and traling trivias on identifiers to prevent some syntax errors

This commit is contained in:
fabien.menager
2022-10-05 17:41:33 +02:00
parent 6aa1e60309
commit f61a30d013
3 changed files with 53 additions and 2 deletions
@@ -29,6 +29,14 @@ namespace EntityFrameworkCore.Projectables.Generator
_context = context;
}
private SyntaxNode? VisitThisBaseExpression(CSharpSyntaxNode node)
{
// Swap out the use of this to @this and base to @base and keep leading and trailing trivias
return SyntaxFactory.IdentifierName("@this")
.WithLeadingTrivia(node.GetLeadingTrivia())
.WithTrailingTrivia(node.GetTrailingTrivia());
}
public override SyntaxNode? VisitConditionalAccessExpression(ConditionalAccessExpressionSyntax node)
{
var targetExpression = (ExpressionSyntax)Visit(node.Expression);
@@ -100,13 +108,13 @@ namespace EntityFrameworkCore.Projectables.Generator
public override SyntaxNode? VisitThisExpression(ThisExpressionSyntax node)
{
// Swap out the use of this to @this
return SyntaxFactory.IdentifierName("@this");
return VisitThisBaseExpression(node);
}
public override SyntaxNode? VisitBaseExpression(BaseExpressionSyntax node)
{
// Swap out the use of this to @this
return SyntaxFactory.IdentifierName("@this");
return VisitThisBaseExpression(node);
}
public override SyntaxNode? VisitIdentifierName(IdentifierNameSyntax node)