1 write to _F
Microsoft.CodeAnalysis.CSharp (1)
Lowering\SpillSequenceSpiller.cs (1)
32
_F
= new SyntheticBoundNodeFactory(method, syntaxNode, compilationState, diagnostics);
96 references to _F
Microsoft.CodeAnalysis.CSharp (96)
Lowering\SpillSequenceSpiller.cs (96)
33
_F
.CurrentFunction = method;
311
_F
.Syntax = builder.Syntax;
364
builder.AddStatement(
_F
.ExpressionStatement(complexReceiver));
435
builder.AddStatement(
_F
.ExpressionStatement(expression));
442
var replacement =
_F
.StoreToTemp(
447
syntaxOpt:
_F
.Syntax);
450
builder.AddStatement(
_F
.ExpressionStatement(assignToTemp));
683
_F
.Syntax = node.Syntax;
925
var tmp =
_F
.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax:
_F
.Syntax);
927
leftBuilder.AddStatement(
_F
.Assignment(
_F
.Local(tmp), left));
928
leftBuilder.AddStatement(
_F
.If(
929
node.OperatorKind == BinaryOperatorKind.LogicalBoolAnd ?
_F
.Local(tmp) :
_F
.Not(
_F
.Local(tmp)),
930
UpdateStatement(builder,
_F
.Assignment(
_F
.Local(tmp), right))));
932
return UpdateExpression(leftBuilder,
_F
.Local(tmp));
982
var save_Syntax =
_F
.Syntax;
983
_F
.Syntax = node.Syntax;
985
var cache =
_F
.Local(
_F
.SynthesizedLocal(receiverType));
987
receiverBuilder.AddStatement(
_F
.ExpressionStatement(new BoundComplexConditionalReceiver(node.Syntax, cache,
_F
.Sequence(new[] {
_F
.AssignmentExpression(cache, receiver) }, cache), receiverType) { WasCompilerGenerated = true }));
989
receiver =
_F
.ComplexConditionalReceiver(receiver, cache);
990
_F
.Syntax = save_Syntax;
1056
_F
.If(condition,
1057
UpdateStatement(consequenceBuilder,
_F
.ExpressionStatement(consequence)),
1058
UpdateStatement(alternativeBuilder,
_F
.ExpressionStatement(alternative))));
1060
return conditionBuilder.Update(
_F
.Default(node.Type));
1064
var tmp =
_F
.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax:
_F
.Syntax);
1068
_F
.If(condition,
1069
UpdateStatement(consequenceBuilder,
_F
.Assignment(
_F
.Local(tmp), consequence)),
1070
UpdateStatement(alternativeBuilder,
_F
.Assignment(
_F
.Local(tmp), alternative))));
1072
return conditionBuilder.Update(
_F
.Local(tmp));
1152
var tmp =
_F
.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax:
_F
.Syntax);
1154
leftBuilder.AddStatement(
_F
.Assignment(
_F
.Local(tmp), left));
1155
leftBuilder.AddStatement(
_F
.If(
1156
_F
.ObjectEqual(
_F
.Local(tmp),
_F
.Null(left.Type)),
1157
UpdateStatement(builder,
_F
.Assignment(
_F
.Local(tmp), right))));
1159
return UpdateExpression(leftBuilder,
_F
.Local(tmp));
1196
condition =
_F
.ObjectNotEqual(
1197
_F
.Convert(
_F
.SpecialType(SpecialType.System_Object), receiver),
1198
_F
.Null(
_F
.SpecialType(SpecialType.System_Object)));
1202
condition =
_F
.Call(receiver, hasValueOpt);
1210
var clone =
_F
.SynthesizedLocal(receiver.Type,
_F
.Syntax, refKind: RefKind.None, kind: SynthesizedLocalKind.Spill);
1214
var isNotClass =
_F
.ObjectNotEqual(
1215
_F
.Convert(
_F
.SpecialType(SpecialType.System_Object),
_F
.Default(receiver.Type)),
1216
_F
.Null(
_F
.SpecialType(SpecialType.System_Object)));
1219
condition =
_F
.LogicalOr(
1221
_F
.MakeSequence(
1222
_F
.AssignmentExpression(
_F
.Local(clone), receiver),
1223
_F
.ObjectNotEqual(
1224
_F
.Convert(
_F
.SpecialType(SpecialType.System_Object),
_F
.Local(clone)),
1225
_F
.Null(
_F
.SpecialType(SpecialType.System_Object))))
1228
receiver =
_F
.ComplexConditionalReceiver(receiver,
_F
.Local(clone));
1233
var whenNotNullStatement = UpdateStatement(whenNotNullBuilder,
_F
.ExpressionStatement(whenNotNull));
1238
receiverBuilder.AddStatement(
_F
.If(condition, whenNotNullStatement));
1240
return receiverBuilder.Update(
_F
.Default(node.Type));
1244
var tmp =
_F
.SynthesizedLocal(node.Type, kind: SynthesizedLocalKind.Spill, syntax:
_F
.Syntax);
1245
var whenNotNullStatement = UpdateStatement(whenNotNullBuilder,
_F
.Assignment(
_F
.Local(tmp), whenNotNull));
1248
whenNullOpt = whenNullOpt ??
_F
.Default(node.Type);
1252
_F
.If(condition,
1254
UpdateStatement(whenNullBuilder,
_F
.Assignment(
_F
.Local(tmp), whenNullOpt))));
1256
return receiverBuilder.Update(
_F
.Local(tmp));
1304
var oldCurrentFunction =
_F
.CurrentFunction;
1305
_F
.CurrentFunction = node.Symbol;
1307
_F
.CurrentFunction = oldCurrentFunction;
1313
var oldCurrentFunction =
_F
.CurrentFunction;
1314
_F
.CurrentFunction = node.Symbol;
1316
_F
.CurrentFunction = oldCurrentFunction;
1405
LocalSymbol longLived = local.WithSynthesizedLocalKindAndSyntax(SynthesizedLocalKind.Spill,
_F
.Syntax);