1 write to Expression
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
3942
this.
Expression
= expression;
51 references to Expression
Microsoft.CodeAnalysis.CSharp (23)
Binder\RefSafetyAnalysis.cs (1)
856
uint collectionEscape = GetValEscape(node.
Expression
, _localScopeDepth);
FlowAnalysis\AbstractFlowPass.cs (1)
2696
VisitRvalue(node.
Expression
);
FlowAnalysis\NullableWalker.cs (10)
9954
if (node.
Expression
.Kind != BoundKind.Conversion)
9958
VisitRvalue(node.
Expression
);
9962
var (expr, conversion) = RemoveConversion(node.
Expression
, includeExplicitConversions: false);
9963
SnapshotWalkerThroughConversionGroup(node.
Expression
, expr);
10027
if (node.
Expression
.Type!.SpecialType == SpecialType.System_Collections_IEnumerable)
10030
targetTypeWithAnnotations = TypeWithAnnotations.Create(node.
Expression
.Type);
10032
else if (ForEachLoopBinder.IsIEnumerableT(node.
Expression
.Type.OriginalDefinition, isAsync, compilation))
10055
GetConversionIfApplicable(node.
Expression
, expr),
10069
SetAnalyzedNullability(node.
Expression
, new VisitResult(convertedResult, convertedResult.ToTypeWithAnnotations(compilation)));
10099
if (!reportedDiagnostic && !(node.
Expression
is BoundConversion { Operand: { IsSuppressed: true } }))
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
148
Visit(node.
Expression
);
Generated\BoundNodes.xml.Generated.cs (5)
3964
if (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))
9823
this.Visit(node.
Expression
);
10998
BoundExpression expression = (BoundExpression)this.Visit(node.
Expression
);
12969
BoundExpression expression = (BoundExpression)this.Visit(node.
Expression
);
15318
new TreeDumperNode("expression", null, new TreeDumperNode[] { Visit(node.
Expression
, null) }),
Lowering\Instrumentation\CodeCoverageInstrumenter.cs (1)
536
syntaxForSpan = ((BoundForEachStatement)statement).
Expression
.Syntax;
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (1)
1002
var boundConversion = (BoundConversion)node.
Expression
;
Operations\CSharpOperationFactory.cs (3)
1809
getEnumeratorArguments: CreateArgumentOperations(enumeratorInfoOpt.GetEnumeratorInfo, boundForEachStatement.
Expression
.Syntax),
1810
moveNextArguments: CreateArgumentOperations(enumeratorInfoOpt.MoveNextInfo, boundForEachStatement.
Expression
.Syntax),
1869
IOperation collection = Create(boundForEachStatement.
Expression
);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (28)
Semantics\ForEachTests.cs (28)
1219
Assert.Equal(SpecialType.System_Collections_IEnumerable, boundNode.
Expression
.Type.SpecialType);
1220
Assert.Equal(SymbolKind.ArrayType, ((BoundConversion)boundNode.
Expression
).Operand.Type.Kind);
1225
return ((BoundConversion)boundNode.
Expression
).Conversion;
1257
Assert.Equal(SpecialType.System_String, boundNode.
Expression
.Type.SpecialType);
1258
Assert.Equal(SpecialType.System_String, ((BoundConversion)boundNode.
Expression
).Operand.Type.SpecialType);
1301
Assert.Equal("Enumerable", boundNode.
Expression
.Type.ToTestDisplayString());
1302
Assert.Equal("Enumerable", ((BoundConversion)boundNode.
Expression
).Operand.Type.ToTestDisplayString());
1345
Assert.Equal("Enumerable", boundNode.
Expression
.Type.ToTestDisplayString());
1346
Assert.Equal("Enumerable", ((BoundConversion)boundNode.
Expression
).Operand.Type.ToTestDisplayString());
1378
Assert.Equal("System.Collections.IEnumerable", boundNode.
Expression
.Type.ToTestDisplayString());
1379
Assert.Equal("System.Collections.IEnumerable", ((BoundConversion)boundNode.
Expression
).Operand.Type.ToTestDisplayString());
1418
Assert.Equal("System.Collections.Generic.IEnumerable<System.Int32>", boundNode.
Expression
.Type.ToTestDisplayString());
1419
Assert.Equal("Enumerable", ((BoundConversion)boundNode.
Expression
).Operand.Type.ToTestDisplayString());
1460
Assert.Equal(SpecialType.System_Collections_IEnumerable, boundNode.
Expression
.Type.SpecialType);
1461
Assert.Equal("Enumerable", ((BoundConversion)boundNode.
Expression
).Operand.Type.ToTestDisplayString());
1499
Assert.Equal(SpecialType.System_Collections_IEnumerable, boundNode.
Expression
.Type.SpecialType);
1500
Assert.Equal("Enumerable", ((BoundConversion)boundNode.
Expression
).Operand.Type.ToTestDisplayString());
1680
Assert.Equal(SpecialType.System_Collections_IEnumerable, boundNode.
Expression
.Type.SpecialType);
1681
Assert.Equal(TypeKind.Dynamic, ((BoundConversion)boundNode.
Expression
).Operand.Type.TypeKind);
1713
Assert.Equal(SpecialType.System_Collections_IEnumerable, boundNode.
Expression
.Type.SpecialType);
1714
Assert.Equal(SymbolKind.DynamicType, ((BoundConversion)boundNode.
Expression
).Operand.Type.Kind);
1754
Assert.Equal("Enumerable<T>", boundNode.
Expression
.Type.ToTestDisplayString());
1755
Assert.Equal("Enumerable<T>", ((BoundConversion)boundNode.
Expression
).Operand.Type.ToTestDisplayString());
1838
Assert.Equal("Enumerable<T>", boundNode.
Expression
.Type.ToTestDisplayString());
1839
Assert.Equal("Enumerable<T>", ((BoundConversion)boundNode.
Expression
).Operand.Type.ToTestDisplayString());
1885
Assert.Equal("Enumerable", boundNode.
Expression
.Type.ToTestDisplayString());
1886
Assert.Equal("Enumerable", ((BoundConversion)boundNode.
Expression
).Operand.Type.ToTestDisplayString());
3247
Assert.Equal("C", boundNode.
Expression
.Type.ToDisplayString());