Browse Source

[CodeActions] Fixed implement abstract members bug.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
a2e370fe2d
  1. 6
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/ImplementInterfaceAction.cs
  2. 27
      ICSharpCode.NRefactory.Tests/CSharp/CodeActions/ImplementAbstractMembersTest.cs

6
ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/ImplementInterfaceAction.cs

@ -101,7 +101,11 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring @@ -101,7 +101,11 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
decl.Modifiers = Modifiers.None;
decl.AddChild(builder.ConvertType(member.DeclaringType), EntityDeclaration.PrivateImplementationTypeRole);
} else {
decl.Modifiers = Modifiers.Public;
if (member.IsProtected) {
decl.Modifiers = Modifiers.Protected;
} else {
decl.Modifiers = Modifiers.Public;
}
}
return decl;
}

27
ICSharpCode.NRefactory.Tests/CSharp/CodeActions/ImplementAbstractMembersTest.cs

@ -55,6 +55,33 @@ class Foo : Simple @@ -55,6 +55,33 @@ class Foo : Simple
}
#endregion
}
");
}
[Test()]
public void TestProtectedMembers()
{
Test<ImplementAbstractMembersAction>(@"abstract class Simple {
protected abstract string ServiceName { get; }
}
class Foo : $Simple
{
}
", @"abstract class Simple {
protected abstract string ServiceName { get; }
}
class Foo : Simple
{
#region implemented abstract members of Simple
protected override string ServiceName {
get {
throw new System.NotImplementedException ();
}
}
#endregion
}
");
}

Loading…
Cancel
Save