From cbdb381862d220e7c4b514921a158b71392cc104 Mon Sep 17 00:00:00 2001 From: yuske Date: Fri, 26 Sep 2014 18:01:49 +0400 Subject: [PATCH 1/3] Made uniformity output path in all projects --- ...harpCode.NRefactory.CSharp.AstVerifier.csproj | 8 ++++---- .../ICSharpCode.NRefactory.Cecil.csproj | 12 ++++++++---- ...CSharpCode.NRefactory.ConsistencyCheck.csproj | 4 ++++ .../ICSharpCode.NRefactory.GtkDemo.csproj | 8 ++++---- .../ICSharpCode.NRefactory.IKVM.csproj | 16 ++++++++-------- 5 files changed, 28 insertions(+), 20 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp.AstVerifier/ICSharpCode.NRefactory.CSharp.AstVerifier.csproj b/ICSharpCode.NRefactory.CSharp.AstVerifier/ICSharpCode.NRefactory.CSharp.AstVerifier.csproj index c31f1197e..56a6eadb0 100644 --- a/ICSharpCode.NRefactory.CSharp.AstVerifier/ICSharpCode.NRefactory.CSharp.AstVerifier.csproj +++ b/ICSharpCode.NRefactory.CSharp.AstVerifier/ICSharpCode.NRefactory.CSharp.AstVerifier.csproj @@ -14,7 +14,7 @@ true full false - bin\Debug\ + ..\bin\Debug\ DEBUG; prompt 4 @@ -23,7 +23,7 @@ none false - bin\Release\ + ..\bin\Release\ prompt 4 true @@ -32,7 +32,7 @@ true full false - bin\net_4_5_Debug\ + ..\bin\net_4_5_Debug\ DEBUG; prompt 4 @@ -42,7 +42,7 @@ none false - bin\net_4_5_Release\ + ..\bin\net_4_5_Release\ prompt 4 true diff --git a/ICSharpCode.NRefactory.Cecil/ICSharpCode.NRefactory.Cecil.csproj b/ICSharpCode.NRefactory.Cecil/ICSharpCode.NRefactory.Cecil.csproj index 2475b0abb..b80fdb591 100644 --- a/ICSharpCode.NRefactory.Cecil/ICSharpCode.NRefactory.Cecil.csproj +++ b/ICSharpCode.NRefactory.Cecil/ICSharpCode.NRefactory.Cecil.csproj @@ -23,39 +23,43 @@ true full false - bin\Debug + ..\bin\Debug\ prompt 4 false v4.0 + ..\bin\Debug\ICSharpCode.NRefactory.Cecil.xml PdbOnly True - bin\Release + ..\bin\Release\ prompt 4 false v4.0 + ..\bin\Release\ICSharpCode.NRefactory.Cecil.xml true full false - bin\Debug + ..\bin\net_4_5_Debug\ prompt 4 false v4.5 + ..\bin\net_4_5_Debug\ICSharpCode.NRefactory.Cecil.xml full true - bin\Release + ..\bin\net_4_5_Release\ prompt 4 false v4.5 + ..\bin\net_4_5_Release\ICSharpCode.NRefactory.Cecil.xml DEBUG; diff --git a/ICSharpCode.NRefactory.ConsistencyCheck/ICSharpCode.NRefactory.ConsistencyCheck.csproj b/ICSharpCode.NRefactory.ConsistencyCheck/ICSharpCode.NRefactory.ConsistencyCheck.csproj index c26c29252..b2a9c9506 100644 --- a/ICSharpCode.NRefactory.ConsistencyCheck/ICSharpCode.NRefactory.ConsistencyCheck.csproj +++ b/ICSharpCode.NRefactory.ConsistencyCheck/ICSharpCode.NRefactory.ConsistencyCheck.csproj @@ -70,15 +70,19 @@ v4.0 + ..\bin\Debug\ v4.0 + ..\bin\Release\ v4.5 + ..\bin\net_4_5_Debug\ v4.5 + ..\bin\net_4_5_Release\ diff --git a/ICSharpCode.NRefactory.GtkDemo/ICSharpCode.NRefactory.GtkDemo.csproj b/ICSharpCode.NRefactory.GtkDemo/ICSharpCode.NRefactory.GtkDemo.csproj index 255831256..d2b02a4b3 100644 --- a/ICSharpCode.NRefactory.GtkDemo/ICSharpCode.NRefactory.GtkDemo.csproj +++ b/ICSharpCode.NRefactory.GtkDemo/ICSharpCode.NRefactory.GtkDemo.csproj @@ -14,7 +14,7 @@ true full false - bin\Debug + ..\bin\Debug\ DEBUG; prompt 4 @@ -23,7 +23,7 @@ none false - bin\Release + ..\bin\Release\ prompt 4 false @@ -32,7 +32,7 @@ true full false - bin\Debug + ..\bin\net_4_5_Debug\ DEBUG; prompt 4 @@ -42,7 +42,7 @@ none false - bin\Release + ..\bin\net_4_5_Release\ prompt 4 false diff --git a/ICSharpCode.NRefactory.IKVM/ICSharpCode.NRefactory.IKVM.csproj b/ICSharpCode.NRefactory.IKVM/ICSharpCode.NRefactory.IKVM.csproj index 3932c463f..433b3f10d 100644 --- a/ICSharpCode.NRefactory.IKVM/ICSharpCode.NRefactory.IKVM.csproj +++ b/ICSharpCode.NRefactory.IKVM/ICSharpCode.NRefactory.IKVM.csproj @@ -16,41 +16,41 @@ true full false - bin\Debug + ..\bin\Debug\ DEBUG; prompt 4 false - v4.0 + v4.0 full true - bin\Release + ..\bin\Release\ prompt 4 false - v4.0 + v4.0 true full false - bin\Debug + ..\bin\net_4_5_Debug\ DEBUG; prompt 4 false - v4.5 + v4.5 full true - bin\Release + ..\bin\net_4_5_Release\ prompt 4 false - v4.5 + v4.5 From 878496df0a5f9539de9cc758879f43ba837d32d4 Mon Sep 17 00:00:00 2001 From: yuske Date: Fri, 26 Sep 2014 19:26:36 +0400 Subject: [PATCH 2/3] Updated HintPath to new version nunit.framework.dll from Cecil repo --- .../ICSharpCode.NRefactory.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ICSharpCode.NRefactory.Tests/ICSharpCode.NRefactory.Tests.csproj b/ICSharpCode.NRefactory.Tests/ICSharpCode.NRefactory.Tests.csproj index 4f089f7d1..56d73401c 100644 --- a/ICSharpCode.NRefactory.Tests/ICSharpCode.NRefactory.Tests.csproj +++ b/ICSharpCode.NRefactory.Tests/ICSharpCode.NRefactory.Tests.csproj @@ -87,7 +87,7 @@ - ..\..\cecil\Test\libs\nunit-2.5.10\nunit.framework.dll + ..\..\cecil\Test\libs\nunit-2.6.2\nunit.framework.dll From 62c7b728ae7e309b95b241e35ab18b487bfcccc5 Mon Sep 17 00:00:00 2001 From: Mikhail Scherbakov Date: Thu, 16 Oct 2014 02:56:10 +0400 Subject: [PATCH 3/3] Fixed member lookup in static context --- .../Resolver/MemberLookup.cs | 4 ++- .../CSharp/Analysis/NullValueAnalysisTests.cs | 2 -- .../CSharp/Resolver/MemberLookupTests.cs | 29 +++++++++++++++++++ .../Documentation/CSharpCrefLookupTests.cs | 1 + 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Resolver/MemberLookup.cs b/ICSharpCode.NRefactory.CSharp/Resolver/MemberLookup.cs index 0bb00cd26..0744fbbaf 100644 --- a/ICSharpCode.NRefactory.CSharp/Resolver/MemberLookup.cs +++ b/ICSharpCode.NRefactory.CSharp/Resolver/MemberLookup.cs @@ -348,10 +348,12 @@ public ResolveResult Lookup(ResolveResult targetResolveResult, string name, ILis Predicate nestedTypeFilter = delegate(ITypeDefinition entity) { return entity.Name == name && IsAccessible(entity, allowProtectedAccess); }; + bool isStaticContext = targetResolveResult is TypeResolveResult; Predicate memberFilter = delegate(IUnresolvedMember entity) { // NOTE: Atm destructors can be looked up with 'Finalize' return entity.SymbolKind != SymbolKind.Indexer && - entity.SymbolKind != SymbolKind.Operator && + entity.SymbolKind != SymbolKind.Operator && + (!isStaticContext || entity.IsStatic) && entity.Name == name; }; diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Analysis/NullValueAnalysisTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Analysis/NullValueAnalysisTests.cs index e15cad4a8..2e22d6691 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/Analysis/NullValueAnalysisTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/Analysis/NullValueAnalysisTests.cs @@ -945,7 +945,6 @@ class TestClass int M() { return 0; } string TestMethod() { - object o = TestClass.i; object p = i; object q = M(); object m = this[0]; @@ -959,7 +958,6 @@ string TestMethod() var lastStatement = method.Body.Statements.Last(); - Assert.AreEqual(NullValueStatus.DefinitelyNotNull, analysis.GetVariableStatusAfterStatement(lastStatement, "o")); Assert.AreEqual(NullValueStatus.DefinitelyNotNull, analysis.GetVariableStatusAfterStatement(lastStatement, "p")); Assert.AreEqual(NullValueStatus.DefinitelyNotNull, analysis.GetVariableStatusAfterStatement(lastStatement, "q")); Assert.AreEqual(NullValueStatus.DefinitelyNotNull, analysis.GetVariableStatusAfterStatement(lastStatement, "m")); diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/MemberLookupTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/MemberLookupTests.cs index fbf186135..5dc9d13ba 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/MemberLookupTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/MemberLookupTests.cs @@ -208,6 +208,35 @@ public void M() { Assert.AreEqual("Test.F", rr.Member.FullName); Assert.IsInstanceOf(rr.TargetResult); } + + [Test] + public void InstanceMethodCallInStaticContext() + { + string program = @"using System; +class Test { + void F() {} + public void M() { + $Test.F()$; + } +}"; + var rr = Resolve(program); + } + + [Test] + public void ConstField() + { + string program = @"using System; +class Test { + const int C = 1; + public int M() { + return $Test.C$; + } +}"; + var rr = Resolve(program); + Assert.AreEqual("Test.C", rr.Member.FullName); + Assert.IsInstanceOf(rr.TargetResult); + } + [Test] public void TestOuterTemplateParameter() diff --git a/ICSharpCode.NRefactory.Tests/Documentation/CSharpCrefLookupTests.cs b/ICSharpCode.NRefactory.Tests/Documentation/CSharpCrefLookupTests.cs index 3d6cb9be7..c831620ee 100644 --- a/ICSharpCode.NRefactory.Tests/Documentation/CSharpCrefLookupTests.cs +++ b/ICSharpCode.NRefactory.Tests/Documentation/CSharpCrefLookupTests.cs @@ -138,6 +138,7 @@ public void Overloaded() } [Test] + [Ignore("Test should be method with no associated instance expression. C# 5.0 spec §7.6.4")] public void MethodInGenericInterface() { Assert.AreEqual("M:IGeneric`2.Test``1(``0[0:,0:]@)",