Browse Source

Fixed forum-7234: resolving of constructor calls

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2878 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 18 years ago
parent
commit
98783dc5ab
  1. 15
      src/Main/Base/Test/NRefactoryResolverTests.cs
  2. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

15
src/Main/Base/Test/NRefactoryResolverTests.cs

@ -756,6 +756,21 @@ class C : B { @@ -756,6 +756,21 @@ class C : B {
Assert.IsFalse(Refactoring.RefactoringService.IsReferenceToMember(aCtor, mrr));
}
[Test]
public void ConstructorCallInCreationContext()
{
string program = @"using System;
class A {
public A(int a) {}
}
";
MemberResolveResult mrr = Resolve<MemberResolveResult>(program, "new A(2)", 3, 0, ExpressionContext.ObjectCreation);
Assert.AreEqual("A.#ctor", mrr.ResolvedMember.FullyQualifiedName);
mrr = Resolve<MemberResolveResult>(program, "A(2)", 3, 0, ExpressionContext.ObjectCreation);
Assert.AreEqual("A.#ctor", mrr.ResolvedMember.FullyQualifiedName);
}
[Test]
public void VBIndexerCall()
{

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

@ -211,7 +211,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -211,7 +211,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (expr == null) {
return null;
}
if (expressionResult.Context.IsObjectCreation) {
if (expressionResult.Context.IsObjectCreation && !(expr is ObjectCreateExpression)) {
Expression tmp = expr;
while (tmp != null) {
if (tmp is IdentifierExpression)

Loading…
Cancel
Save