public LambdaDebugInfo(int syntaxOffset, DebugId lambdaId, int closureOrdinal) { Debug.Assert(closureOrdinal >= MinClosureOrdinal); SyntaxOffset = syntaxOffset; ClosureOrdinal = closureOrdinal; LambdaId = lambdaId; }
public MethodBody( ImmutableArray <byte> ilBits, ushort maxStack, Cci.IMethodDefinition parent, DebugId methodId, ImmutableArray <Cci.ILocalDefinition> locals, SequencePointList sequencePoints, DebugDocumentProvider debugDocumentProvider, ImmutableArray <Cci.ExceptionHandlerRegion> exceptionHandlers, bool areLocalsZeroed, bool hasStackalloc, ImmutableArray <Cci.LocalScope> localScopes, bool hasDynamicLocalVariables, Cci.IImportScope importScopeOpt, ImmutableArray <LambdaDebugInfo> lambdaDebugInfo, ImmutableArray <ClosureDebugInfo> closureDebugInfo, string stateMachineTypeNameOpt, ImmutableArray <StateMachineHoistedLocalScope> stateMachineHoistedLocalScopes, ImmutableArray <EncHoistedLocalInfo> stateMachineHoistedLocalSlots, ImmutableArray <Cci.ITypeReference?> stateMachineAwaiterSlots, StateMachineStatesDebugInfo stateMachineStatesDebugInfo, StateMachineMoveNextBodyDebugInfo stateMachineMoveNextDebugInfoOpt, DynamicAnalysisMethodBodyData dynamicAnalysisDataOpt) { Debug.Assert(!locals.IsDefault); Debug.Assert(!exceptionHandlers.IsDefault); Debug.Assert(!localScopes.IsDefault); _ilBits = ilBits; _maxStack = maxStack; _parent = parent; _methodId = methodId; _locals = locals; _exceptionHandlers = exceptionHandlers; _areLocalsZeroed = areLocalsZeroed; HasStackalloc = hasStackalloc; _localScopes = localScopes; _hasDynamicLocalVariables = hasDynamicLocalVariables; _importScopeOpt = importScopeOpt; _lambdaDebugInfo = lambdaDebugInfo; _closureDebugInfo = closureDebugInfo; _stateMachineTypeNameOpt = stateMachineTypeNameOpt; _stateMachineHoistedLocalScopes = stateMachineHoistedLocalScopes; _stateMachineHoistedLocalSlots = stateMachineHoistedLocalSlots; _stateMachineAwaiterSlots = stateMachineAwaiterSlots; _stateMachineStatesDebugInfo = stateMachineStatesDebugInfo; _stateMachineMoveNextDebugInfoOpt = stateMachineMoveNextDebugInfoOpt; _dynamicAnalysisDataOpt = dynamicAnalysisDataOpt; _sequencePoints = GetSequencePoints(sequencePoints, debugDocumentProvider); }
public MethodBody( ImmutableArray <byte> ilBits, ushort maxStack, Cci.IMethodDefinition parent, DebugId methodId, ImmutableArray <Cci.ILocalDefinition> locals, SequencePointList sequencePoints, DebugDocumentProvider debugDocumentProvider, ImmutableArray <Cci.ExceptionHandlerRegion> exceptionHandlers, ImmutableArray <Cci.LocalScope> localScopes, bool hasDynamicLocalVariables, Cci.IImportScope importScopeOpt, ImmutableArray <LambdaDebugInfo> lambdaDebugInfo, ImmutableArray <ClosureDebugInfo> closureDebugInfo, string stateMachineTypeNameOpt, ImmutableArray <Cci.StateMachineHoistedLocalScope> stateMachineHoistedLocalScopes, ImmutableArray <EncHoistedLocalInfo> stateMachineHoistedLocalSlots, ImmutableArray <Cci.ITypeReference> stateMachineAwaiterSlots, Cci.AsyncMethodBodyDebugInfo asyncMethodDebugInfo) { Debug.Assert(!locals.IsDefault); Debug.Assert(!exceptionHandlers.IsDefault); Debug.Assert(!localScopes.IsDefault); _ilBits = ilBits; _asyncMethodDebugInfo = asyncMethodDebugInfo; _maxStack = maxStack; _parent = parent; _methodId = methodId; _locals = locals; _sequencePoints = sequencePoints; _debugDocumentProvider = debugDocumentProvider; _exceptionHandlers = exceptionHandlers; _localScopes = localScopes; _hasDynamicLocalVariables = hasDynamicLocalVariables; _importScopeOpt = importScopeOpt; _lambdaDebugInfo = lambdaDebugInfo; _closureDebugInfo = closureDebugInfo; _stateMachineTypeNameOpt = stateMachineTypeNameOpt; _stateMachineHoistedLocalScopes = stateMachineHoistedLocalScopes; _stateMachineHoistedLocalSlots = stateMachineHoistedLocalSlots; _stateMachineAwaiterSlots = stateMachineAwaiterSlots; }
/// <summary> /// Finds a lambda in the previous generation that corresponds to the specified syntax. /// The <paramref name="lambdaOrLambdaBodySyntax"/> is either a lambda syntax (<paramref name="isLambdaBody"/> is false), /// or lambda body syntax (<paramref name="isLambdaBody"/> is true). /// </summary> public abstract bool TryGetPreviousLambda(SyntaxNode lambdaOrLambdaBodySyntax, bool isLambdaBody, out DebugId lambdaId);
/// <summary> /// Finds a closure in the previous generation that corresponds to the specified syntax. /// </summary> /// <remarks> /// See LambdaFrame.AssertIsLambdaScopeSyntax for kinds of syntax nodes that represent closures. /// </remarks> public abstract bool TryGetPreviousClosure(SyntaxNode closureSyntax, out DebugId closureId);
public ClosureDebugInfo(int syntaxOffset, DebugId closureId) { SyntaxOffset = syntaxOffset; ClosureId = closureId; }