15 instantiations of BoundThisReference
Microsoft.CodeAnalysis.CSharp (15)
Binder\Binder_Expressions.cs (1)
2598return new BoundThisReference(node, thisTypeOpt ?? CreateErrorType(), hasErrors) { WasCompilerGenerated = wasCompilerGenerated };
Binder\Binder_Statements.cs (2)
4066BoundExpression receiver = new BoundThisReference(syntax, constructor.ContainingType) { WasCompilerGenerated = true }; 4112BoundExpression receiver = new BoundThisReference(syntax, constructor.ContainingType) { WasCompilerGenerated = true };
Compiler\MethodBodySynthesizer.cs (5)
40BoundExpression receiver = new BoundThisReference(syntax, constructor.ContainingType) { WasCompilerGenerated = true }; 96var thisReference = new BoundThisReference(syntax, submissionConstructor.ContainingType) { WasCompilerGenerated = true }; 186thisReference = new BoundThisReference(syntax, thisSymbol.Type) { WasCompilerGenerated = true }; 282field.IsStatic || field.ContainingSymbol is NamedTypeSymbol { IsExtension: true } ? null : new BoundThisReference(syntax, accessor.ThisParameter.Type), 380new BoundThisReference(syntax, thisParameter.Type) { WasCompilerGenerated = true };
Generated\BoundNodes.xml.Generated.cs (1)
4438var result = new BoundThisReference(this.Syntax, type, this.HasErrors);
Lowering\ClosureConversion\ClosureConversion.cs (1)
614return new BoundThisReference(syntax, frameClass);
Lowering\InitializerRewriter.cs (1)
95new BoundThisReference(syntax, field.ContainingType);
Lowering\LocalRewriter\LocalRewriter_HostObjectMemberReference.cs (1)
19var thisReference = new BoundThisReference(syntax, _factory.CurrentType);
Lowering\LocalRewriter\LocalRewriter_PreviousSubmissionReference.cs (1)
23var thisReference = new BoundThisReference(syntax, _factory.CurrentType);
Lowering\LocalRewriter\LocalRewriter.cs (1)
323var result = new BoundFieldAccess(node.Syntax, new BoundThisReference(node.Syntax, primaryCtor.ContainingType), field, ConstantValue.NotAvailable, LookupResultKind.Viable, node.Type);
Lowering\SyntheticBoundNodeFactory.cs (1)
230return new BoundThisReference(Syntax, CurrentFunction.ThisParameter.Type) { WasCompilerGenerated = true };
54 references to BoundThisReference
Microsoft.CodeAnalysis.CSharp (54)
Binder\Binder_Deconstruct.cs (1)
947BoundThisReference receiver = ThisReference(designation, this.ContainingType, hasErrors: false,
Binder\Binder_Expressions.cs (5)
1524var implicitReceiver = field.IsStatic ? null : ThisReference(node, field.ContainingType, wasCompilerGenerated: true); 2577private BoundThisReference BindThis(ThisExpressionSyntax node, BindingDiagnosticBag diagnostics) 2596private BoundThisReference ThisReference(SyntaxNode node, NamedTypeSymbol thisTypeOpt, bool hasErrors = false, bool wasCompilerGenerated = false) 11835case BoundThisReference { WasCompilerGenerated: true }: 12030case BoundThisReference { WasCompilerGenerated: true }:
Binder\Binder.ValueChecks.cs (8)
1083var isValueType = ((BoundThisReference)expr).Type.IsValueType; 1561if (parameter is BoundThisReference) 1609!CanModifyReadonlyField(fieldAccess.ReceiverOpt is BoundThisReference, fieldSymbol)) 2175if (!(receiver is BoundThisReference || receiver is BoundBaseReference)) 3742Debug.Assert(thisParam.Type.Equals(((BoundThisReference)expr).Type, TypeCompareKind.ConsiderEverything)); 4041Debug.Assert(thisParam.Type.Equals(((BoundThisReference)expr).Type, TypeCompareKind.ConsiderEverything)); 4353Debug.Assert(thisParam.Type.Equals(((BoundThisReference)expr).Type, TypeCompareKind.ConsiderEverything)); 5054Debug.Assert(thisParam.Type.Equals(((BoundThisReference)expr).Type, TypeCompareKind.ConsiderEverything));
BoundTree\BoundTreeVisitors.cs (1)
100return VisitThisReference(node as BoundThisReference, arg);
CodeGen\EmitAddress.cs (1)
616if (receiver is BoundThisReference && receiver.Type.IsDisplayClassType())
CodeGen\EmitExpression.cs (6)
163EmitThisReferenceExpression((BoundThisReference)expression, used); 829private void EmitThisReferenceExpression(BoundThisReference thisRef, bool used) 3020var left = (BoundThisReference)assignmentTarget; 3265EmitThisStore((BoundThisReference)expression); 3356private void EmitThisStore(BoundThisReference thisRef)
Compiler\MethodBodySynthesizer.cs (2)
96var thisReference = new BoundThisReference(syntax, submissionConstructor.ContainingType) { WasCompilerGenerated = true }; 378BoundThisReference fieldReceiver = eventSymbol.IsStatic || eventSymbol.ContainingSymbol is NamedTypeSymbol { IsExtension: true } ?
FlowAnalysis\AbstractFlowPass.cs (1)
2054public override BoundNode VisitThisReference(BoundThisReference node)
FlowAnalysis\DefiniteAssignment.cs (1)
2466public override BoundNode VisitThisReference(BoundThisReference node)
FlowAnalysis\NullableWalker.cs (1)
11289public override BoundNode? VisitThisReference(BoundThisReference node)
Generated\BoundNodes.xml.Generated.cs (10)
4434public BoundThisReference Update(TypeSymbol type) 4438var result = new BoundThisReference(this.Syntax, type, this.HasErrors); 9308return VisitThisReference((BoundThisReference)node, arg); 9675public virtual R VisitThisReference(BoundThisReference node, A arg) => this.DefaultVisit(node, arg); 9916public virtual BoundNode? VisitThisReference(BoundThisReference node) => this.DefaultVisit(node); 10510public override BoundNode? VisitThisReference(BoundThisReference node) => null; 11842public override BoundNode? VisitThisReference(BoundThisReference node) 13993public override BoundNode? VisitThisReference(BoundThisReference node) 14000BoundThisReference updatedNode = node.Update(infoAndType.Type!); 16488public override TreeDumperNode VisitThisReference(BoundThisReference node, object? arg) => new TreeDumperNode("thisReference", null, new TreeDumperNode[]
Lowering\AsyncRewriter\RuntimeAsyncRewriter.cs (1)
406public override BoundNode? VisitThisReference(BoundThisReference node)
Lowering\ClosureConversion\ClosureConversion.Analysis.Tree.cs (1)
499public override BoundNode VisitThisReference(BoundThisReference node)
Lowering\ClosureConversion\ClosureConversion.cs (1)
845public override BoundNode VisitThisReference(BoundThisReference node)
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
165public override BoundNode VisitThisReference(BoundThisReference node)
Lowering\ExtensionMethodBodyRewriter.cs (1)
82public override BoundNode? VisitThisReference(BoundThisReference node)
Lowering\InitializerRewriter.cs (1)
94var boundReceiver = field.IsStatic ? null :
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
1007return structThisCanChangeValueBetweenReads && ((BoundThisReference)expression).Type.IsStructType();
Lowering\LocalRewriter\LocalRewriter_HostObjectMemberReference.cs (1)
19var thisReference = new BoundThisReference(syntax, _factory.CurrentType);
Lowering\LocalRewriter\LocalRewriter_PreviousSubmissionReference.cs (1)
23var thisReference = new BoundThisReference(syntax, _factory.CurrentType);
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (2)
325public override BoundNode VisitThisReference(BoundThisReference node) 419public override BoundNode VisitThisReference(BoundThisReference node)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (2)
212var result = F.This(); 808public sealed override BoundNode VisitThisReference(BoundThisReference node)
Lowering\SyntheticBoundNodeFactory.cs (1)
227public BoundThisReference This()
Operations\CSharpOperationFactory.cs (2)
111return CreateBoundThisReferenceOperation((BoundThisReference)boundNode); 1404private IInstanceReferenceOperation CreateBoundThisReferenceOperation(BoundThisReference boundThisReference)
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (1)
549BoundThisReference thisRef = f.This();