提交 03758376 编写于 作者: A acasey

VB Expression Compiler

Port EEMethodSymbol to VB and eliminate EEParameterSymbol from both languages (just use SynthesizedParameterSymbol).

Bonus: Fix a couple typos. (changeset 1277348)
上级 bc8536c3
...@@ -117,7 +117,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ...@@ -117,7 +117,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Private Sub New( Private Sub New(
topMethod As MethodSymbol, topMethod As MethodSymbol,
currentMethid As MethodSymbol, currentMethod As MethodSymbol,
compilationState As TypeCompilationState, compilationState As TypeCompilationState,
previousSubmissionFields As SynthesizedSubmissionFields, previousSubmissionFields As SynthesizedSubmissionFields,
generateDebugInfo As Boolean, generateDebugInfo As Boolean,
...@@ -125,7 +125,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ...@@ -125,7 +125,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
flags As RewritingFlags flags As RewritingFlags
) )
Me.topMethod = topMethod Me.topMethod = topMethod
Me.currentMethodOrLambda = currentMethid Me.currentMethodOrLambda = currentMethod
Me.globalGenerateDebugInfo = generateDebugInfo Me.globalGenerateDebugInfo = generateDebugInfo
Me.emitModule = compilationState.EmitModule Me.emitModule = compilationState.EmitModule
Me.compilationState = compilationState Me.compilationState = compilationState
...@@ -136,7 +136,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ...@@ -136,7 +136,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Private Shared Function RewriteNode(node As BoundNode, Private Shared Function RewriteNode(node As BoundNode,
topMethod As MethodSymbol, topMethod As MethodSymbol,
currentMethid As MethodSymbol, currentMethod As MethodSymbol,
compilationState As TypeCompilationState, compilationState As TypeCompilationState,
previousSubmissionFields As SynthesizedSubmissionFields, previousSubmissionFields As SynthesizedSubmissionFields,
generateDebugInfo As Boolean, generateDebugInfo As Boolean,
...@@ -148,7 +148,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ...@@ -148,7 +148,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Debug.Assert(node Is Nothing OrElse Not node.HasErrors, "node has errors") Debug.Assert(node Is Nothing OrElse Not node.HasErrors, "node has errors")
Dim rewriter = New LocalRewriter(topMethod, currentMethid, compilationState, previousSubmissionFields, generateDebugInfo, diagnostics, flags) Dim rewriter = New LocalRewriter(topMethod, currentMethod, compilationState, previousSubmissionFields, generateDebugInfo, diagnostics, flags)
#If DEBUG Then #If DEBUG Then
If rewrittenNodes IsNot Nothing Then If rewrittenNodes IsNot Nothing Then
...@@ -197,12 +197,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ...@@ -197,12 +197,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
diagnostics As DiagnosticBag, diagnostics As DiagnosticBag,
<Out()> ByRef rewrittenNodes As HashSet(Of BoundNode), <Out()> ByRef rewrittenNodes As HashSet(Of BoundNode),
<Out()> ByRef hasLambdas As Boolean, <Out()> ByRef hasLambdas As Boolean,
<Out()> ByRef symbolsCapturedWithoutCtor As ISet(Of Symbol), <Out()> ByRef symbolsCapturedWithoutCopyCtor As ISet(Of Symbol),
Optional flags As RewritingFlags = RewritingFlags.Default, Optional flags As RewritingFlags = RewritingFlags.Default,
Optional currentMethod As MethodSymbol = Nothing) As BoundBlock Optional currentMethod As MethodSymbol = Nothing) As BoundBlock
Debug.Assert(rewrittenNodes Is Nothing) Debug.Assert(rewrittenNodes Is Nothing)
Return DirectCast(RewriteNode(node, topMethod, If(currentMethod, topMethod), compilationState, previousSubmissionFields, generateDebugInfo, diagnostics, rewrittenNodes, hasLambdas, symbolsCapturedWithoutCtor, flags), BoundBlock) Return DirectCast(RewriteNode(node, topMethod, If(currentMethod, topMethod), compilationState, previousSubmissionFields, generateDebugInfo, diagnostics, rewrittenNodes, hasLambdas, symbolsCapturedWithoutCopyCtor, flags), BoundBlock)
End Function End Function
Public Shared Function Rewrite(node As BoundExpression, Public Shared Function Rewrite(node As BoundExpression,
......
...@@ -217,7 +217,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic ...@@ -217,7 +217,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Method.ContainingType, Method.ContainingType,
Me.Method, Me.Method,
If(isMeOfClosureType, If(isMeOfClosureType,
GeneratedNames.MakeStateMachineCaptiredClosureMeName(typeName), GeneratedNames.MakeStateMachineCapturedClosureMeName(typeName),
GeneratedNames.MakeStateMachineCapturedMeName()), GeneratedNames.MakeStateMachineCapturedMeName()),
Accessibility.Friend), Accessibility.Friend),
parameter) parameter)
......
...@@ -150,7 +150,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols ...@@ -150,7 +150,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
''' <summary> ''' <summary>
''' Generates the name of a state machine field name for captured me reference of lambda closure ''' Generates the name of a state machine field name for captured me reference of lambda closure
''' </summary> ''' </summary>
Public Shared Function MakeStateMachineCaptiredClosureMeName(closureName As String) As String Public Shared Function MakeStateMachineCapturedClosureMeName(closureName As String) As String
Return StringConstants.LiftedNonLocalPrefix & closureName Return StringConstants.LiftedNonLocalPrefix & closureName
End Function End Function
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册