Compiler\MethodBodySynthesizer.Lowered.cs (8)
95F.Binary(BinaryOperatorKind.Multiplication, hashCode.Type,
96F.Binary(BinaryOperatorKind.Xor, hashCode.Type,
97F.Convert(hashCode.Type,
107F.Binary(BinaryOperatorKind.Addition, i.Type,
182F.Binary(BinaryOperatorKind.Multiplication, hashCode.Type,
183F.Binary(BinaryOperatorKind.Xor, hashCode.Type,
184F.Convert(hashCode.Type,
196F.Binary(BinaryOperatorKind.Addition, i.Type,
Lowering\AsyncRewriter\AsyncExceptionHandlerRewriter.cs (11)
262statements.Add(_F.Assignment(_F.Local(pendingExceptionLocal), _F.Default(pendingExceptionLocal.Type)));
264statements.Add(_F.Assignment(_F.Local(pendingBranchVar), _F.Default(pendingBranchVar.Type)));
470_F.Null(obj.Type)),
491_F.As(_F.Local(obj), ex.Type));
497_F.If(_F.ObjectEqual(_F.Local(ex), _F.Null(ex.Type)), rethrow),
559_F.Default(currentAwaitCatchFrame.pendingCatch.Type)),
619_F.Convert(currentAwaitCatchFrame.pendingCaughtException.Type,
750return node.Update(hoistedLocal, node.ConstantValueOpt, hoistedLocal.Type);
1129if (!_hoistedLocals.Keys.Any(l => l.Name == local.Name && TypeSymbol.Equals(l.Type, local.Type, TypeCompareKind.ConsiderEverything2)))
1142var newLocal = F.SynthesizedLocal(local.Type, pendingCatch.SyntaxOpt, kind: SynthesizedLocalKind.ExceptionFilterAwaitHoistedExceptionLocal);
Lowering\AsyncRewriter\AsyncMethodToStateMachineRewriter.cs (16)
242exceptionLocal.Type,
451if (awaiterTemp.Type.IsDynamic())
472TypeSymbol awaiterFieldType = awaiterTemp.Type.IsVerifierReference()
474: awaiterTemp.Type;
492(TypeSymbol.Equals(awaiterField.Type, awaiterTemp.Type, TypeCompareKind.ConsiderEverything2))
496blockBuilder.Add(awaiterTemp.Type.IsDynamic()
498: GenerateAwaitOnCompleted(awaiterTemp.Type, awaiterTemp));
524TypeSymbol.Equals(awaiterTemp.Type, awaiterField.Type, TypeCompareKind.ConsiderEverything2)
526: F.Convert(awaiterTemp.Type, F.Field(F.This(), awaiterField))));
571F.As(F.Local(awaiterTemp), criticalNotifyCompletedTemp.Type)));
580condition: F.ObjectEqual(F.Local(criticalNotifyCompletedTemp), F.Null(criticalNotifyCompletedTemp.Type)),
587F.Convert(notifyCompletionTemp.Type, F.Local(awaiterTemp), Conversion.ExplicitReference)),
592notifyCompletionTemp.Type,
597F.NullOrDefault(notifyCompletionTemp.Type))),
604criticalNotifyCompletedTemp.Type,
611F.NullOrDefault(criticalNotifyCompletedTemp.Type)));
Lowering\ClosureConversion\ClosureConversion.cs (4)
637return new BoundLocal(syntax, localFrame, null, localFrame.Type);
722if (!framePointer.Type.IsValueType)
781value = new BoundLocal(syntax, localToUse, null, localToUse.Type);
790static (frameType1, arg) => new BoundLocal(arg.syntax, arg.framePointer, null, arg.framePointer.Type),