From 440bc4f305d71255c8bf92205e35dabd64832923 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Fri, 10 Feb 2012 11:08:30 +0100 Subject: [PATCH] Fixed assertion error. --- ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs b/ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs index 2d93b6dd28..5b8976775e 100644 --- a/ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs +++ b/ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs @@ -2529,9 +2529,11 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver } StoreCurrentState(foreachStatement.VariableNameToken); resolver = resolver.AddVariable(v); + if (!resolveResultCache.ContainsKey(foreachStatement.VariableNameToken)) { StoreResult(foreachStatement.VariableNameToken, new LocalResolveResult(v)); } + Scan(foreachStatement.EmbeddedStatement); resolver = resolver.PopBlock(); return voidResult; @@ -3181,9 +3183,12 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver ResolveResult target; if (memberType.IsDoubleColon && memberType.Target is SimpleType) { SimpleType t = (SimpleType)memberType.Target; - StoreCurrentState(t); + bool storeResult = !resolveResultCache.ContainsKey(t); + if (storeResult) + StoreCurrentState(t); target = resolver.ResolveAlias(t.Identifier); - StoreResult(t, target); + if (storeResult) + StoreResult(t, target); } else { target = Resolve(memberType.Target); }