From af5ae57e898d3fbeb2e89c12ce322fb6377ee841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Thu, 15 Sep 2011 10:18:49 +0200 Subject: [PATCH] Added type case for resolvenode at location. --- .../Resolver/ResolveAtLocation.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.NRefactory.CSharp/Resolver/ResolveAtLocation.cs b/ICSharpCode.NRefactory.CSharp/Resolver/ResolveAtLocation.cs index aa6bffb7bc..adc2d572f7 100644 --- a/ICSharpCode.NRefactory.CSharp/Resolver/ResolveAtLocation.cs +++ b/ICSharpCode.NRefactory.CSharp/Resolver/ResolveAtLocation.cs @@ -36,7 +36,15 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver if (node == null) return null; AstNode resolvableNode; - if (node is Identifier) { + if (node is AstType) { + resolvableNode = node; + if (resolvableNode.Parent is ComposedType) { + while (resolvableNode.Parent is ComposedType) + resolvableNode = resolvableNode.Parent; + //node is preffered over the resolvable node. Which shouldn't be done in the case of nullables, arrays etc. + node = resolvableNode; + } + } else if (node is Identifier) { resolvableNode = node.Parent; } else if (node.NodeType == NodeType.Token) { if (node.Parent is ConstructorInitializer) {