1 write to Expression
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
4045this.Expression = expression;
51 references to Expression
Microsoft.CodeAnalysis.CSharp (23)
Binder\RefSafetyAnalysis.cs (4)
1108this.Visit(node.Expression); 1118inlineArray: node.Expression is not BoundConversion { Conversion.IsIdentity: true, ExplicitCastInCode: false, Operand: BoundExpression operand } ? node.Expression : operand, 1135collectionEscape = GetValEscape(node.Expression, _localScopeDepth);
FlowAnalysis\AbstractFlowPass.cs (1)
2919VisitRvalue(node.Expression);
FlowAnalysis\NullableWalker.cs (7)
11527if (node.Expression.Kind != BoundKind.Conversion) 11531VisitRvalue(node.Expression); 11536var (expr, conversion) = RemoveConversion(node.Expression, includeExplicitConversions: false); 11537SnapshotWalkerThroughConversionGroup(node.Expression, expr); 11541node.Expression, 11795if (node.Expression is not BoundConversion { Operand.IsSuppressed: true } && 11832isSuppressed: node.Expression is BoundConversion { Operand.IsSuppressed: true },
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
222Visit(node.Expression);
Generated\BoundNodes.xml.Generated.cs (5)
4067if (enumeratorInfoOpt != this.EnumeratorInfoOpt || elementPlaceholder != this.ElementPlaceholder || elementConversion != this.ElementConversion || iterationVariableType != this.IterationVariableType || iterationVariables != this.IterationVariables || iterationErrorExpressionOpt != this.IterationErrorExpressionOpt || expression != this.Expression || deconstructionOpt != this.DeconstructionOpt || awaitOpt != this.AwaitOpt || body != this.Body || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(breakLabel, this.BreakLabel) || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(continueLabel, this.ContinueLabel)) 10208this.Visit(node.Expression); 11492BoundExpression expression = (BoundExpression)this.Visit(node.Expression); 13588BoundExpression expression = (BoundExpression)this.Visit(node.Expression); 16031new TreeDumperNode("expression", null, new TreeDumperNode[] { Visit(node.Expression, null) }),
Lowering\Instrumentation\CodeCoverageInstrumenter.cs (1)
536syntaxForSpan = ((BoundForEachStatement)statement).Expression.Syntax;
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (2)
124(BoundConversion)node.Expression, 1214var boundConversion = (BoundConversion)node.Expression;
Operations\CSharpOperationFactory.cs (2)
1978boundForEachStatement.Expression is not BoundConversion { Conversion.IsIdentity: true, ExplicitCastInCode: false, Operand: BoundExpression operand } ? 1979boundForEachStatement.Expression :
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (28)
Semantics\ForEachTests.cs (28)
1220Assert.Equal(SpecialType.System_Collections_IEnumerable, boundNode.Expression.Type.SpecialType); 1221Assert.Equal(SymbolKind.ArrayType, ((BoundConversion)boundNode.Expression).Operand.Type.Kind); 1226return ((BoundConversion)boundNode.Expression).Conversion; 1258Assert.Equal(SpecialType.System_String, boundNode.Expression.Type.SpecialType); 1259Assert.Equal(SpecialType.System_String, ((BoundConversion)boundNode.Expression).Operand.Type.SpecialType); 1302Assert.Equal("Enumerable", boundNode.Expression.Type.ToTestDisplayString()); 1303Assert.Equal("Enumerable", ((BoundConversion)boundNode.Expression).Operand.Type.ToTestDisplayString()); 1346Assert.Equal("Enumerable", boundNode.Expression.Type.ToTestDisplayString()); 1347Assert.Equal("Enumerable", ((BoundConversion)boundNode.Expression).Operand.Type.ToTestDisplayString()); 1379Assert.Equal("System.Collections.IEnumerable", boundNode.Expression.Type.ToTestDisplayString()); 1380Assert.Equal("System.Collections.IEnumerable", ((BoundConversion)boundNode.Expression).Operand.Type.ToTestDisplayString()); 1419Assert.Equal("System.Collections.Generic.IEnumerable<System.Int32>", boundNode.Expression.Type.ToTestDisplayString()); 1420Assert.Equal("Enumerable", ((BoundConversion)boundNode.Expression).Operand.Type.ToTestDisplayString()); 1461Assert.Equal(SpecialType.System_Collections_IEnumerable, boundNode.Expression.Type.SpecialType); 1462Assert.Equal("Enumerable", ((BoundConversion)boundNode.Expression).Operand.Type.ToTestDisplayString()); 1500Assert.Equal(SpecialType.System_Collections_IEnumerable, boundNode.Expression.Type.SpecialType); 1501Assert.Equal("Enumerable", ((BoundConversion)boundNode.Expression).Operand.Type.ToTestDisplayString()); 1681Assert.Equal(SpecialType.System_Collections_IEnumerable, boundNode.Expression.Type.SpecialType); 1682Assert.Equal(TypeKind.Dynamic, ((BoundConversion)boundNode.Expression).Operand.Type.TypeKind); 1714Assert.Equal(SpecialType.System_Collections_IEnumerable, boundNode.Expression.Type.SpecialType); 1715Assert.Equal(SymbolKind.DynamicType, ((BoundConversion)boundNode.Expression).Operand.Type.Kind); 1755Assert.Equal("Enumerable<T>", boundNode.Expression.Type.ToTestDisplayString()); 1756Assert.Equal("Enumerable<T>", ((BoundConversion)boundNode.Expression).Operand.Type.ToTestDisplayString()); 1839Assert.Equal("Enumerable<T>", boundNode.Expression.Type.ToTestDisplayString()); 1840Assert.Equal("Enumerable<T>", ((BoundConversion)boundNode.Expression).Operand.Type.ToTestDisplayString()); 1886Assert.Equal("Enumerable", boundNode.Expression.Type.ToTestDisplayString()); 1887Assert.Equal("Enumerable", ((BoundConversion)boundNode.Expression).Operand.Type.ToTestDisplayString()); 3248Assert.Equal("C", boundNode.Expression.Type.ToDisplayString());