提交 6e1fc764 编写于 作者: C ChuckStoner

Pass optional local allocator to LowerBodyOrInitializer (changeset 1338299)

上级 661acb6e
......@@ -804,19 +804,21 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Dim emittedBody As MethodBody = Nothing
If Not diagnosticsThisMethod.HasAnyErrors Then
Dim variableSlotAllocatorOpt = _moduleBeingBuiltOpt.TryCreateVariableSlotAllocator(method)
Dim rewrittenBody = Rewriter.LowerBodyOrInitializer(
method,
boundBody,
previousSubmissionFields:=Nothing,
compilationState:=compilationState,
diagnostics:=diagnosticsThisMethod,
variableSlotAllocatorOpt:=variableSlotAllocatorOpt,
isBodySynthesized:=True)
If Not diagnosticsThisMethod.HasAnyErrors Then
emittedBody = GenerateMethodBody(_moduleBeingBuiltOpt,
method,
rewrittenBody,
variableSlotAllocatorOpt:=Nothing,
variableSlotAllocatorOpt:=variableSlotAllocatorOpt,
debugDocumentProvider:=Nothing,
diagnostics:=diagnosticsThisMethod,
namespaceScopes:=Nothing)
......@@ -853,6 +855,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Dim method = methodWithBody.Method
Dim diagnosticsThisMethod As DiagnosticBag = DiagnosticBag.GetInstance()
Debug.Assert(_moduleBeingBuiltOpt.TryCreateVariableSlotAllocator(method) Is Nothing)
Dim emittedBody = GenerateMethodBody(_moduleBeingBuiltOpt,
method,
......@@ -1176,6 +1179,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
previousSubmissionFields,
compilationState,
diagsForCurrentMethod,
variableSlotAllocatorOpt:=Nothing,
isBodySynthesized:=True)
compilationState.AddMethodWrapper(accessor, accessor, body)
......@@ -1249,8 +1253,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
diagnostics = DiagnosticBag.GetInstance()
End If
Dim variableSlotAllocatorOpt As VariableSlotAllocator = Nothing
Dim variableSlotAllocatorOpt = If(_moduleBeingBuiltOpt Is Nothing, Nothing, _moduleBeingBuiltOpt.TryCreateVariableSlotAllocator(method))
body = Rewriter.LowerBodyOrInitializer(method,
body,
previousSubmissionFields,
......
......@@ -14,7 +14,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
previousSubmissionFields As SynthesizedSubmissionFields,
compilationState As TypeCompilationState,
diagnostics As DiagnosticBag,
<Out> Optional ByRef variableSlotAllocatorOpt As VariableSlotAllocator = Nothing,
variableSlotAllocatorOpt As VariableSlotAllocator,
Optional isBodySynthesized As Boolean = False) As BoundBlock
Debug.Assert(Not body.HasErrors)
......@@ -62,9 +62,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Return lambdaRewritten
End If
variableSlotAllocatorOpt = If(isBodySynthesized OrElse compilationState.ModuleBuilderOpt Is Nothing, Nothing,
compilationState.ModuleBuilderOpt.TryCreateVariableSlotAllocator(method))
' Rewrite Iterator methods
Dim iteratorRewritten = IteratorRewriter.Rewrite(lambdaRewritten,
method,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册