From 18222aab2eecbd2e65e14cb511bee8f1abc5ce3c Mon Sep 17 00:00:00 2001 From: Joakim Antonsson Date: Fri, 22 Jul 2016 09:45:31 +0200 Subject: [PATCH] Added LambdaDisplayClass to GeneratedNameKind --- .../Portable/Symbols/SynthesizedSymbols/GeneratedNameKind.vb | 5 ++++- .../Source/ExpressionCompiler/CompilationContext.vb | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Compilers/VisualBasic/Portable/Symbols/SynthesizedSymbols/GeneratedNameKind.vb b/src/Compilers/VisualBasic/Portable/Symbols/SynthesizedSymbols/GeneratedNameKind.vb index 0c6d5f4b357..b328b7f321f 100644 --- a/src/Compilers/VisualBasic/Portable/Symbols/SynthesizedSymbols/GeneratedNameKind.vb +++ b/src/Compilers/VisualBasic/Portable/Symbols/SynthesizedSymbols/GeneratedNameKind.vb @@ -22,6 +22,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols AnonymousType LambdaCacheField + LambdaDisplayClass End Enum Partial Friend Class GeneratedNames @@ -38,7 +39,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols Return GeneratedNameKind.HoistedUserVariableField ElseIf name.StartsWith(StringConstants.IteratorCurrentFieldName, StringComparison.Ordinal) Then Return GeneratedNameKind.IteratorCurrentField - ElseIf name.StartsWith(StringConstants.IteratorInitialThreadIdName, StringComparison.Ordinal) + ElseIf name.StartsWith(StringConstants.IteratorInitialThreadIdName, StringComparison.Ordinal) Then Return GeneratedNameKind.IteratorInitialThreadIdField ElseIf name.StartsWith(StringConstants.IteratorParameterProxyPrefix, StringComparison.Ordinal) Then Return GeneratedNameKind.IteratorParameterProxyField @@ -48,6 +49,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols Return GeneratedNameKind.StateMachineHoistedUserVariableField ElseIf name.StartsWith(AnonymousTypeTemplateNamePrefix, StringComparison.Ordinal) Then Return GeneratedNameKind.AnonymousType + ElseIf name.StartsWith(StringConstants.DisplayClassPrefix, StringComparison.Ordinal) Then + Return GeneratedNameKind.LambdaDisplayClass ElseIf name.Equals(StringConstants.It, StringComparison.Ordinal) OrElse name.Equals(StringConstants.It1, StringComparison.Ordinal) OrElse name.Equals(StringConstants.It2, StringComparison.Ordinal) Then diff --git a/src/ExpressionEvaluator/VisualBasic/Source/ExpressionCompiler/CompilationContext.vb b/src/ExpressionEvaluator/VisualBasic/Source/ExpressionCompiler/CompilationContext.vb index 8ea6781b171..5c8d58cc044 100644 --- a/src/ExpressionEvaluator/VisualBasic/Source/ExpressionCompiler/CompilationContext.vb +++ b/src/ExpressionEvaluator/VisualBasic/Source/ExpressionCompiler/CompilationContext.vb @@ -1288,7 +1288,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator Debug.Assert((variableKind = DisplayClassVariableKind.Parameter) OrElse (variableKind = DisplayClassVariableKind.Me)) - If variableKind = DisplayClassVariableKind.Parameter AndAlso instance.Type.Name.StartsWith(StringConstants.DisplayClassPrefix, StringComparison.Ordinal) Then + If variableKind = DisplayClassVariableKind.Parameter AndAlso GeneratedNames.GetKind(instance.Type.Name) = GeneratedNameKind.LambdaDisplayClass Then displayClassVariablesBuilder(variableName) = instance.ToVariable(variableName, variableKind, field) End If -- GitLab