提交 a82ebd02 编写于 作者: B Balaji Soundrarajan

Get Attribute CodeElements for Get/Set

Fix #2356 Return Attributes  CodeElements for Get/Set Methods of
Properties in both C# and VB
上级 38775c26
......@@ -324,6 +324,10 @@ public override IEnumerable<SyntaxNode> GetAttributeNodes(SyntaxNode parent)
{
return GetAttributeNodes(parent.Parent);
}
else if (parent is AccessorDeclarationSyntax)
{
return GetAttributeNodes(((AccessorDeclarationSyntax)parent).AttributeLists);
}
return SpecializedCollections.EmptyEnumerable<SyntaxNode>();
}
......
......@@ -94,7 +94,10 @@ protected override string GetFullName()
public EnvDTE.CodeElements Attributes
{
get { return EmptyCollection.Create(this.State, this); }
get
{
return AttributeCollection.Create(this.State, this);
}
}
public EnvDTE.vsCMAccess Access
......
......@@ -18,6 +18,10 @@ Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel
Return codeElement.Access
End Function
Protected Overrides Function GetAttributes(codeElement As EnvDTE80.CodeFunction2) As EnvDTE.CodeElements
Return codeElement.Attributes
End Function
Protected Overrides Function GetComment(codeElement As EnvDTE80.CodeFunction2) As String
Return codeElement.Comment
End Function
......
......@@ -146,6 +146,67 @@ interface I
#End Region
#Region "Attribute Tests"
<WorkItem(2356, "https://github.com/dotnet/roslyn/issues/2356")>
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub PropertyGetAttribute()
Dim code =
<Code>
public class Class1
{
public int Property1
{
[Obsolete]
$$get
{
return 0;
}
}
}
</Code>
TestAttributes(code, IsElement("Obsolete"))
End Sub
<WorkItem(2356, "https://github.com/dotnet/roslyn/issues/2356")>
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub PropertySetAttribute()
Dim code =
<Code>
public class Class1
{
public int Property1
{
[Obsolete]
$$set
{
}
}
}
</Code>
TestAttributes(code, IsElement("Obsolete"))
End Sub
<WorkItem(2356, "https://github.com/dotnet/roslyn/issues/2356")>
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub Attribute_1()
Dim code =
<Code>
class Class2
{
[Obsolete]
void $$F()
{
}
}
</Code>
TestAttributes(code, IsElement("Obsolete"))
End Sub
#End Region
#Region "CanOverride tests"
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
......
......@@ -515,6 +515,60 @@ End Interface
#End Region
#Region "Attribute Tests"
<WorkItem(2356, "https://github.com/dotnet/roslyn/issues/2356")>
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub PropertyGetAttribute()
Dim code =
<Code>
Public Class Class1
Public Property Property1 As Integer
&lt;Obsolete&gt;
$$Get
Return 0
End Get
End Property
End Class
</Code>
TestAttributes(code, IsElement("Obsolete"))
End Sub
<WorkItem(2356, "https://github.com/dotnet/roslyn/issues/2356")>
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub PropertySetAttribute()
Dim code =
<Code>
Public Class Class1
Public Property Property1 As Integer
&lt;Obsolete&gt;
$$Set(value As Integer)
End Set
End Property
End Class
</Code>
TestAttributes(code, IsElement("Obsolete"))
End Sub
<WorkItem(2356, "https://github.com/dotnet/roslyn/issues/2356")>
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub Attribute_1()
Dim code =
<Code>
Class Program
&lt;Obsolete&gt;
Sub F$$()
End Sub
End Class
</Code>
TestAttributes(code, IsElement("Obsolete"))
End Sub
#End Region
#Region "CanOverride tests"
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册