1 write to IsRef
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
2048
this.
IsRef
= isRef;
31 references to IsRef
Microsoft.CodeAnalysis.CSharp (31)
Binder\Binder_Invocation.cs (1)
1437
if (receiver is BoundConditionalOperator {
IsRef
: true } conditional)
Binder\Binder.ValueChecks.cs (5)
1164
if (conditional.
IsRef
&&
3748
if (conditional.
IsRef
)
4047
if (conditional.
IsRef
)
4413
if (conditional.
IsRef
)
5130
if (!consValid || conditional.
IsRef
)
Binder\RefSafetyAnalysis.cs (1)
805
if (node.
IsRef
)
CodeGen\CodeGenerator_HasHome.cs (1)
213
if (!conditional.
IsRef
)
CodeGen\EmitExpression.cs (3)
2359
return ((BoundConditionalOperator)receiver).
IsRef
;
3048
Debug.Assert(left.
IsRef
);
3284
Debug.Assert(((BoundConditionalOperator)expression).
IsRef
);
CodeGen\Optimizer.cs (3)
1074
Debug.Assert(((BoundConditionalOperator)lhs).
IsRef
, "only ref ternaries are assignable");
1469
var context = node.
IsRef
? ExprContext.Address : ExprContext.Value;
1481
return node.Update(node.
IsRef
, condition, consequence, alternative, node.ConstantValueOpt, node.NaturalTypeOpt, node.WasCompilerGenerated, node.Type);
FlowAnalysis\AbstractFlowPass.cs (1)
3289
return VisitConditionalOperatorCore(node, node.
IsRef
, node.Condition, node.Consequence, node.Alternative);
Generated\BoundNodes.xml.Generated.cs (5)
2071
if (isRef != this.
IsRef
|| condition != this.Condition || consequence != this.Consequence || alternative != this.Alternative || constantValueOpt != this.ConstantValueOpt || !TypeSymbol.Equals(naturalTypeOpt, this.NaturalTypeOpt, TypeCompareKind.ConsiderEverything) || wasTargetTyped != this.WasTargetTyped || !TypeSymbol.Equals(type, this.Type, TypeCompareKind.ConsiderEverything))
11432
return node.Update(node.
IsRef
, condition, consequence, alternative, node.ConstantValueOpt, naturalTypeOpt, node.WasTargetTyped, type);
13378
updatedNode = node.Update(node.
IsRef
, condition, consequence, alternative, node.ConstantValueOpt, naturalTypeOpt, node.WasTargetTyped, infoAndType.Type!);
13383
updatedNode = node.Update(node.
IsRef
, condition, consequence, alternative, node.ConstantValueOpt, naturalTypeOpt, node.WasTargetTyped, node.Type);
15927
new TreeDumperNode("isRef", node.
IsRef
, null),
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
870
Debug.Assert(((BoundConditionalOperator)originalLHS).
IsRef
);
Lowering\LocalRewriter\LocalRewriter_ConditionalOperator.cs (2)
29
return node.Update(node.
IsRef
, rewrittenCondition, rewrittenConsequence, rewrittenAlternative, node.ConstantValueOpt, node.NaturalTypeOpt, node.WasTargetTyped, node.Type);
39
node.
IsRef
);
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (2)
65
Debug.Assert(!conditional.
IsRef
);
67
conditional.
IsRef
,
Lowering\LocalRewriter\LocalRewriter.cs (1)
1096
return ((BoundConditionalOperator)expr).
IsRef
;
Lowering\SpillSequenceSpiller.cs (3)
1201
return UpdateExpression(conditionBuilder, node.Update(node.
IsRef
, condition, consequence, alternative, node.ConstantValueOpt, node.NaturalTypeOpt, node.WasTargetTyped, node.Type));
1217
else if (!node.
IsRef
)
1254
return conditionBuilder.Update(node.Update(node.
IsRef
, condition, consequence, alternative, node.ConstantValueOpt, node.NaturalTypeOpt, node.WasTargetTyped, node.Type));
Lowering\StateMachineRewriter\RefInitializationHoister.cs (1)
263
Debug.Assert(conditional.
IsRef
);
Operations\CSharpOperationFactory.cs (1)
1662
bool isRef = boundConditionalOperator.
IsRef
;