Browse Source

[Resolver] Fixed using statement.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
1ade7c4996
  1. 3
      ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs
  2. 19
      ICSharpCode.NRefactory.Tests/CSharp/Resolver/NameLookupTests.cs

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

@ -2823,6 +2823,9 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver @@ -2823,6 +2823,9 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
ResolveResult IAstVisitor<ResolveResult>.VisitUnsafeStatement(UnsafeStatement unsafeStatement)
{
resolver = resolver.PushBlock();
ScanChildren(unsafeStatement);
resolver = resolver.PopBlock();
return voidResult;
}
#endregion

19
ICSharpCode.NRefactory.Tests/CSharp/Resolver/NameLookupTests.cs

@ -970,5 +970,24 @@ class MainClass : Test @@ -970,5 +970,24 @@ class MainClass : Test
Assert.IsFalse(result.IsError);
Assert.AreEqual("Test.Foo.Bar", result.Member.FullName);
}
[Test]
public void LocalInsideUnsafeBlock()
{
string program = @"class A {
void Method() {
unsafe {
string a;
string b = $a$;
}
}
}
";
LocalResolveResult result = Resolve<LocalResolveResult>(program);
Assert.AreEqual("a", result.Variable.Name);
Assert.IsFalse(result.IsParameter);
Assert.AreEqual("System.String", result.Type.FullName);
}
}
}

Loading…
Cancel
Save