diff --git a/src/EditorFeatures/Test2/Rename/CSharp/AliasTests.vb b/src/EditorFeatures/Test2/Rename/CSharp/AliasTests.vb index 54edff5d339382985a03ca9345b304f6e1fdf3c9..8de4eeb12da9e8abb6b21943f48566c38753b30f 100644 --- a/src/EditorFeatures/Test2/Rename/CSharp/AliasTests.vb +++ b/src/EditorFeatures/Test2/Rename/CSharp/AliasTests.vb @@ -700,8 +700,8 @@ class Program , renameTo:="BarAttribute") - result.AssertLabeledSpansAre("short", "BarAttribute", RelatedLocationType.ResolvedReferenceConflict) - result.AssertLabeledSpansAre("long", "BarAttribute", RelatedLocationType.NoConflict) + result.AssertLabeledSpansAre("short", "BarAttribute()", RelatedLocationType.ResolvedReferenceConflict) + result.AssertLabeledSpansAre("long", "BarAttributeAttribute()", RelatedLocationType.NoConflict) End Using End Sub diff --git a/src/EditorFeatures/Test2/Rename/CSharp/DeclarationConflictTests.vb b/src/EditorFeatures/Test2/Rename/CSharp/DeclarationConflictTests.vb index db471d77b9d666794e4add02fe6c36d241f204e1..c9ea6d83ffdc25faea0ce3c496b971e5ad65406b 100644 --- a/src/EditorFeatures/Test2/Rename/CSharp/DeclarationConflictTests.vb +++ b/src/EditorFeatures/Test2/Rename/CSharp/DeclarationConflictTests.vb @@ -543,7 +543,7 @@ class C , renameTo:="Method") result.AssertLabeledSpansAre("first", "Method", RelatedLocationType.NoConflict) - result.AssertLabeledSpansAre("second", "C.Method", type:=RelatedLocationType.ResolvedReferenceConflict) + result.AssertLabeledSpansAre("second", "DefaultValue(C.Method)", type:=RelatedLocationType.ResolvedReferenceConflict) End Using End Sub End Class diff --git a/src/EditorFeatures/Test2/Rename/CSharp/EscapingTests.vb b/src/EditorFeatures/Test2/Rename/CSharp/EscapingTests.vb index 29b23132a66f2084f26a7366c187821b4d7fcc5e..f4e395bc39fb0c6f42b1e2d3600137cbfe657fd8 100644 --- a/src/EditorFeatures/Test2/Rename/CSharp/EscapingTests.vb +++ b/src/EditorFeatures/Test2/Rename/CSharp/EscapingTests.vb @@ -63,7 +63,7 @@ class [|$$MainAttribute|] : System.Attribute , renameTo:="ifAttribute") - result.AssertLabeledSpecialSpansAre("resolved", "ifAttribute", RelatedLocationType.ResolvedReferenceConflict) + result.AssertLabeledSpecialSpansAre("resolved", "ifAttribute()", RelatedLocationType.ResolvedReferenceConflict) End Using End Sub diff --git a/src/EditorFeatures/Test2/Rename/RenameEngineTests.vb b/src/EditorFeatures/Test2/Rename/RenameEngineTests.vb index 374a5c45e342920cddebe720967c9bb3a8c0773c..8f18ca2fe6232bddcedc47ae9d141ff48d87d969 100644 --- a/src/EditorFeatures/Test2/Rename/RenameEngineTests.vb +++ b/src/EditorFeatures/Test2/Rename/RenameEngineTests.vb @@ -6770,6 +6770,28 @@ class C End Using End Sub + + + + Public Sub RenameWithNameOfInAttribute() + Using result = RenameEngineResult.Create( + + + +class C +{ + // Rename F to Fail + static void [|F|]$$(int x) { } + + [System.Obsolete(nameof({|conflict:Fail|}))] + static void Fail() { } +} + + + , renameTo:="Fail") + result.AssertLabeledSpansAre("conflict", type:=RelatedLocationType.UnresolvedConflict) + End Using + End Sub #End Region End Class diff --git a/src/Workspaces/CSharp/Portable/Rename/CSharpRenameRewriterLanguageService.cs b/src/Workspaces/CSharp/Portable/Rename/CSharpRenameRewriterLanguageService.cs index 2bc7c5352a4c1ef86854306bd2b088deed8ebaa1..f91592e5f4e5ee5e8ab6a5557f59af4026763b55 100644 --- a/src/Workspaces/CSharp/Portable/Rename/CSharpRenameRewriterLanguageService.cs +++ b/src/Workspaces/CSharp/Portable/Rename/CSharpRenameRewriterLanguageService.cs @@ -1096,6 +1096,12 @@ private static SyntaxNode GetExpansionTarget(SyntaxToken token) return enclosingInitializer.Value; } + var attributeSyntax = token.GetAncestor(); + if (attributeSyntax != null) + { + return attributeSyntax; + } + // there seems to be no statement above this one. Let's see if we can at least get an SimpleNameSyntax return enclosingStatement ?? enclosingNameMemberCrefOrnull ?? token.GetAncestors(n => n is SimpleNameSyntax).FirstOrDefault(); }