提交 284e42de 编写于 作者: L Louis Zanella

CSharpConvertAutoPropertyToFullPropertyCodeRefactoringProvider supports init accessor

上级 afd10305
...@@ -22,32 +22,34 @@ public partial class ConvertAutoPropertyToFullPropertyTests : AbstractCSharpCode ...@@ -22,32 +22,34 @@ public partial class ConvertAutoPropertyToFullPropertyTests : AbstractCSharpCode
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, TestParameters parameters) protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, TestParameters parameters)
=> new CSharpConvertAutoPropertyToFullPropertyCodeRefactoringProvider(); => new CSharpConvertAutoPropertyToFullPropertyCodeRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.ConvertAutoPropertyToFullProperty)] [Theory, Trait(Traits.Feature, Traits.Features.ConvertAutoPropertyToFullProperty)]
public async Task SimpleAutoPropertyTest() [InlineData("set")]
[InlineData("init"), WorkItem(48133, "https://github.com/dotnet/roslyn/issues/48133")]
public async Task SimpleAutoPropertyTest(string setter)
{ {
var text = @" var text = $@"
class TestClass class TestClass
{ {{
public int G[||]oo { get; set; } public int G[||]oo {{ get; {setter}; }}
} }}
"; ";
var expected = @" var expected = $@"
class TestClass class TestClass
{ {{
private int goo; private int goo;
public int Goo public int Goo
{ {{
get get
{ {{
return goo; return goo;
} }}
set {setter}
{ {{
goo = value; goo = value;
} }}
} }}
} }}
"; ";
await TestInRegularAndScriptAsync(text, expected, options: DoNotPreferExpressionBodiedAccessors); await TestInRegularAndScriptAsync(text, expected, options: DoNotPreferExpressionBodiedAccessors);
} }
......
...@@ -72,7 +72,8 @@ internal override async Task<string> GetFieldNameAsync(Document document, IPrope ...@@ -72,7 +72,8 @@ internal override async Task<string> GetFieldNameAsync(Document document, IPrope
private static (AccessorDeclarationSyntax getAccessor, AccessorDeclarationSyntax setAccessor) private static (AccessorDeclarationSyntax getAccessor, AccessorDeclarationSyntax setAccessor)
GetExistingAccessors(AccessorListSyntax accessorListSyntax) GetExistingAccessors(AccessorListSyntax accessorListSyntax)
=> (accessorListSyntax.Accessors.FirstOrDefault(a => a.IsKind(SyntaxKind.GetAccessorDeclaration)), => (accessorListSyntax.Accessors.FirstOrDefault(a => a.IsKind(SyntaxKind.GetAccessorDeclaration)),
accessorListSyntax.Accessors.FirstOrDefault(a => a.IsKind(SyntaxKind.SetAccessorDeclaration))); accessorListSyntax.Accessors.FirstOrDefault(a => a.IsKind(SyntaxKind.SetAccessorDeclaration) ||
a.IsKind(SyntaxKind.InitAccessorDeclaration)));
private static SyntaxNode GetUpdatedAccessor(DocumentOptionSet options, private static SyntaxNode GetUpdatedAccessor(DocumentOptionSet options,
SyntaxNode accessor, SyntaxNode statement) SyntaxNode accessor, SyntaxNode statement)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册