Don't throw when out of accessible expressions

This commit is contained in:
Koen
2023-05-26 00:54:53 +01:00
parent 88cebbcabc
commit 7deef3dbef
@@ -112,11 +112,8 @@ namespace EntityFrameworkCore.Projectables.Generator
public override SyntaxNode? VisitMemberBindingExpression(MemberBindingExpressionSyntax node) public override SyntaxNode? VisitMemberBindingExpression(MemberBindingExpressionSyntax node)
{ {
if (_conditionalAccessExpressionsStack.Count == 0) if (_conditionalAccessExpressionsStack.Count > 0)
{ {
throw new InvalidOperationException("Expected at least one conditional expression on the stack");
}
var targetExpression = _conditionalAccessExpressionsStack.Pop(); var targetExpression = _conditionalAccessExpressionsStack.Pop();
return _nullConditionalRewriteSupport switch { return _nullConditionalRewriteSupport switch {
@@ -126,13 +123,13 @@ namespace EntityFrameworkCore.Projectables.Generator
}; };
} }
public override SyntaxNode? VisitElementBindingExpression(ElementBindingExpressionSyntax node) return base.VisitMemberBindingExpression(node);
{
if (_conditionalAccessExpressionsStack.Count == 0)
{
throw new InvalidOperationException("Expected at least one conditional expression on the stack");
} }
public override SyntaxNode? VisitElementBindingExpression(ElementBindingExpressionSyntax node)
{
if (_conditionalAccessExpressionsStack.Count > 0)
{
var targetExpression = _conditionalAccessExpressionsStack.Pop(); var targetExpression = _conditionalAccessExpressionsStack.Pop();
return _nullConditionalRewriteSupport switch { return _nullConditionalRewriteSupport switch {
@@ -142,6 +139,9 @@ namespace EntityFrameworkCore.Projectables.Generator
}; };
} }
return base.VisitElementBindingExpression(node);
}
public override SyntaxNode? VisitThisExpression(ThisExpressionSyntax node) public override SyntaxNode? VisitThisExpression(ThisExpressionSyntax node)
{ {
// Swap out the use of this to @this // Swap out the use of this to @this