From 6e1fc764f6868483442c2f2640085d2c3f7ba42f Mon Sep 17 00:00:00 2001 From: ChuckStoner Date: Thu, 18 Sep 2014 16:35:05 -0700 Subject: [PATCH] Pass optional local allocator to LowerBodyOrInitializer (changeset 1338299) --- .../VisualBasic/Portable/Compilation/MethodCompiler.vb | 9 ++++++--- Src/Compilers/VisualBasic/Portable/Lowering/Rewriter.vb | 5 +---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Src/Compilers/VisualBasic/Portable/Compilation/MethodCompiler.vb b/Src/Compilers/VisualBasic/Portable/Compilation/MethodCompiler.vb index b6955d759dd..e1decee51d2 100644 --- a/Src/Compilers/VisualBasic/Portable/Compilation/MethodCompiler.vb +++ b/Src/Compilers/VisualBasic/Portable/Compilation/MethodCompiler.vb @@ -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, diff --git a/Src/Compilers/VisualBasic/Portable/Lowering/Rewriter.vb b/Src/Compilers/VisualBasic/Portable/Lowering/Rewriter.vb index daf591c86f7..530d8a48519 100644 --- a/Src/Compilers/VisualBasic/Portable/Lowering/Rewriter.vb +++ b/Src/Compilers/VisualBasic/Portable/Lowering/Rewriter.vb @@ -14,7 +14,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic previousSubmissionFields As SynthesizedSubmissionFields, compilationState As TypeCompilationState, diagnostics As DiagnosticBag, - 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, -- GitLab