Browse Source

Fixed assertion error.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
440bc4f305
  1. 9
      ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs

9
ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs

@ -2529,9 +2529,11 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
} }
StoreCurrentState(foreachStatement.VariableNameToken); StoreCurrentState(foreachStatement.VariableNameToken);
resolver = resolver.AddVariable(v); resolver = resolver.AddVariable(v);
if (!resolveResultCache.ContainsKey(foreachStatement.VariableNameToken)) { if (!resolveResultCache.ContainsKey(foreachStatement.VariableNameToken)) {
StoreResult(foreachStatement.VariableNameToken, new LocalResolveResult(v)); StoreResult(foreachStatement.VariableNameToken, new LocalResolveResult(v));
} }
Scan(foreachStatement.EmbeddedStatement); Scan(foreachStatement.EmbeddedStatement);
resolver = resolver.PopBlock(); resolver = resolver.PopBlock();
return voidResult; return voidResult;
@ -3181,9 +3183,12 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
ResolveResult target; ResolveResult target;
if (memberType.IsDoubleColon && memberType.Target is SimpleType) { if (memberType.IsDoubleColon && memberType.Target is SimpleType) {
SimpleType t = (SimpleType)memberType.Target; SimpleType t = (SimpleType)memberType.Target;
StoreCurrentState(t); bool storeResult = !resolveResultCache.ContainsKey(t);
if (storeResult)
StoreCurrentState(t);
target = resolver.ResolveAlias(t.Identifier); target = resolver.ResolveAlias(t.Identifier);
StoreResult(t, target); if (storeResult)
StoreResult(t, target);
} else { } else {
target = Resolve(memberType.Target); target = Resolve(memberType.Target);
} }

Loading…
Cancel
Save