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)
225statements.Add(_F.Assignment(_F.Local(pendingExceptionLocal), _F.Default(pendingExceptionLocal.Type)));
227statements.Add(_F.Assignment(_F.Local(pendingBranchVar), _F.Default(pendingBranchVar.Type)));
419_F.Null(obj.Type)),
438_F.As(_F.Local(obj), ex.Type));
444_F.If(_F.ObjectEqual(_F.Local(ex), _F.Null(ex.Type)), rethrow),
506_F.Default(currentAwaitCatchFrame.pendingCatch.Type)),
559_F.Convert(currentAwaitCatchFrame.pendingCaughtException.Type,
690return node.Update(hoistedLocal, node.ConstantValueOpt, hoistedLocal.Type);
1055if (!_hoistedLocals.Keys.Any(l => l.Name == local.Name && TypeSymbol.Equals(l.Type, local.Type, TypeCompareKind.ConsiderEverything2)))
1068var newLocal = F.SynthesizedLocal(local.Type, pendingCatch.SyntaxOpt, kind: SynthesizedLocalKind.ExceptionFilterAwaitHoistedExceptionLocal);
Lowering\AsyncRewriter\AsyncMethodToStateMachineRewriter.cs (16)
250exceptionLocal.Type,
431if (awaiterTemp.Type.IsDynamic())
452TypeSymbol awaiterFieldType = awaiterTemp.Type.IsVerifierReference()
454: awaiterTemp.Type;
472(TypeSymbol.Equals(awaiterField.Type, awaiterTemp.Type, TypeCompareKind.ConsiderEverything2))
476blockBuilder.Add(awaiterTemp.Type.IsDynamic()
478: GenerateAwaitOnCompleted(awaiterTemp.Type, awaiterTemp));
504TypeSymbol.Equals(awaiterTemp.Type, awaiterField.Type, TypeCompareKind.ConsiderEverything2)
506: F.Convert(awaiterTemp.Type, F.Field(F.This(), awaiterField))));
551F.As(F.Local(awaiterTemp), criticalNotifyCompletedTemp.Type)));
560condition: F.ObjectEqual(F.Local(criticalNotifyCompletedTemp), F.Null(criticalNotifyCompletedTemp.Type)),
567F.Convert(notifyCompletionTemp.Type, F.Local(awaiterTemp), Conversion.ExplicitReference)),
572notifyCompletionTemp.Type,
577F.NullOrDefault(notifyCompletionTemp.Type))),
584criticalNotifyCompletedTemp.Type,
591F.NullOrDefault(criticalNotifyCompletedTemp.Type)));
Lowering\ClosureConversion\ClosureConversion.cs (4)
632return new BoundLocal(syntax, localFrame, null, localFrame.Type);
717if (!framePointer.Type.IsValueType)
776value = new BoundLocal(syntax, localToUse, null, localToUse.Type);
785static (frameType1, arg) => new BoundLocal(arg.syntax, arg.framePointer, null, arg.framePointer.Type),