From 9ab76512012e5ee4b0389d168ef8b83e02e14c5e Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Mon, 2 Oct 2017 20:57:54 +0200 Subject: [PATCH] Fix #895: Wrong decompilation of references to inner struct in class. --- .../CSharp/Transforms/IntroduceUsingDeclarations.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceUsingDeclarations.cs b/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceUsingDeclarations.cs index 409b4e55d..eda5781bf 100644 --- a/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceUsingDeclarations.cs +++ b/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceUsingDeclarations.cs @@ -149,18 +149,21 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms astBuilder = CreateAstBuilder(currentContext); base.VisitNamespaceDeclaration(namespaceDeclaration); } finally { + astBuilder = CreateAstBuilder(previousContext); context.Pop(); } } public override void VisitTypeDeclaration(TypeDeclaration typeDeclaration) { - var currentContext = context.Peek().WithCurrentTypeDefinition(typeDeclaration.GetSymbol() as ITypeDefinition); + var previousContext = context.Peek(); + var currentContext = previousContext.WithCurrentTypeDefinition(typeDeclaration.GetSymbol() as ITypeDefinition); context.Push(currentContext); try { astBuilder = CreateAstBuilder(currentContext); base.VisitTypeDeclaration(typeDeclaration); } finally { + astBuilder = CreateAstBuilder(previousContext); context.Pop(); } }