Skip BoundQueryClause nodes in visitors.

上级 ad4ef87f
......@@ -1846,14 +1846,14 @@
<!-- The query variable introduced by this query clause, if any. -->
<Field Name="DefinedSymbol" Type="RangeVariableSymbol?"/>
<!-- The bound expression that invokes the operation of the query clause. -->
<Field Name="Operation" Type="BoundExpression?" />
<Field Name="Operation" Type="BoundExpression?" SkipInVisitor="true"/>
<!-- The bound expression that is the invocation of a "Cast" method specified by the query translation. -->
<Field Name="Cast" Type="BoundExpression?" />
<Field Name="Cast" Type="BoundExpression?" SkipInVisitor="true"/>
<!-- The enclosing binder in which the query clause was evaluated. -->
<Field Name="Binder" Type="Binder" Null="disallow" />
<!-- The bound expression that is the query expression in "unoptimized" form. Specifically, a final ".Select"
invocation that is omitted by the specification is included here. -->
<Field Name="UnoptimizedForm" Type="BoundExpression?" />
<Field Name="UnoptimizedForm" Type="BoundExpression?" SkipInVisitor="true"/>
</Node>
<!--
......
......@@ -8778,9 +8778,6 @@ internal abstract partial class BoundTreeWalker: BoundTreeVisitor
public override BoundNode? VisitQueryClause(BoundQueryClause node)
{
this.Visit(node.Value);
this.Visit(node.Operation);
this.Visit(node.Cast);
this.Visit(node.UnoptimizedForm);
return null;
}
public override BoundNode? VisitTypeOrInstanceInitializers(BoundTypeOrInstanceInitializers node)
......@@ -9838,9 +9835,9 @@ internal abstract partial class BoundTreeRewriter : BoundTreeVisitor
public override BoundNode? VisitQueryClause(BoundQueryClause node)
{
BoundExpression value = (BoundExpression)this.Visit(node.Value);
BoundExpression? operation = (BoundExpression?)this.Visit(node.Operation);
BoundExpression? cast = (BoundExpression?)this.Visit(node.Cast);
BoundExpression? unoptimizedForm = (BoundExpression?)this.Visit(node.UnoptimizedForm);
BoundExpression? operation = node.Operation;
BoundExpression? cast = node.Cast;
BoundExpression? unoptimizedForm = node.UnoptimizedForm;
TypeSymbol type = this.VisitType(node.Type);
return node.Update(value, node.DefinedSymbol, operation, cast, node.Binder, unoptimizedForm, type);
}
......@@ -11597,9 +11594,9 @@ public NullabilityRewriter(ImmutableDictionary<BoundExpression, (NullabilityInfo
public override BoundNode? VisitQueryClause(BoundQueryClause node)
{
BoundExpression value = (BoundExpression)this.Visit(node.Value);
BoundExpression? operation = (BoundExpression?)this.Visit(node.Operation);
BoundExpression? cast = (BoundExpression?)this.Visit(node.Cast);
BoundExpression? unoptimizedForm = (BoundExpression?)this.Visit(node.UnoptimizedForm);
BoundExpression? operation = node.Operation;
BoundExpression? cast = node.Cast;
BoundExpression? unoptimizedForm = node.UnoptimizedForm;
BoundQueryClause updatedNode;
if (_updatedNullabilities.TryGetValue(node, out (NullabilityInfo Info, TypeSymbol Type) infoAndType))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册