Browse Source

Guard against storing the resolve result for variable name token twice

in foreach statement.
newNRvisualizers
Mike 14 years ago
parent
commit
7df3367870
  1. 2
      ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs

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

@ -2528,7 +2528,9 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
} }
StoreCurrentState(foreachStatement.VariableNameToken); StoreCurrentState(foreachStatement.VariableNameToken);
resolver = resolver.AddVariable(v); resolver = resolver.AddVariable(v);
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;

Loading…
Cancel
Save