From 4feb508d7f9505edf5b83b4dff08c210b631ad75 Mon Sep 17 00:00:00 2001 From: Dustin Campbell Date: Tue, 29 Sep 2015 07:37:10 -0700 Subject: [PATCH] Specify correct ComDefaultInterface for other Code Model types --- .../InternalElements/CodeAccessorFunction.cs | 2 +- .../InternalElements/CodeAttribute.cs | 2 +- .../InternalElements/CodeDelegate.cs | 2 +- .../CodeModel/InternalElements/CodeEnum.cs | 1 - .../InternalElements/CodeFunction.cs | 2 +- .../InternalElements/CodeInterface.cs | 2 +- .../InternalElements/CodeParameter.cs | 2 +- .../InternalElements/CodeProperty.cs | 2 +- .../CodeModel/InternalElements/CodeStruct.cs | 2 +- .../InternalElements/CodeVariable.cs | 2 +- .../CodeModel/AbstractCodeElementTests`1.vb | 15 ++++++++++++ .../CSharp/CodeAccessorFunctionTests.vb | 22 +++++++++++++++-- .../CodeModel/CSharp/CodeAttributeTests.vb | 18 ++++++++++++++ .../Test/CodeModel/CSharp/CodeClassTests.vb | 24 +++++++------------ .../CodeModel/CSharp/CodeDelegateTests.vb | 17 +++++++++++++ .../Test/CodeModel/CSharp/CodeEnumTests.vb | 18 ++++++++++++++ .../Test/CodeModel/CSharp/CodeEventTests.vb | 19 +++++++++++++++ .../CodeModel/CSharp/CodeFunctionTests.vb | 20 ++++++++++++++++ .../Test/CodeModel/CSharp/CodeImportTests.vb | 16 ++++++++++++- .../CodeModel/CSharp/CodeInterfaceTests.vb | 18 ++++++++++++++ .../CodeModel/CSharp/CodeNamespaceTests.vb | 17 +++++++++++++ .../CodeModel/CSharp/CodeParameterTests.vb | 19 ++++++++++++++- .../CodeModel/CSharp/CodePropertyTests.vb | 20 ++++++++++++++++ .../Test/CodeModel/CSharp/CodeStructTests.vb | 19 +++++++++++++++ .../CodeModel/CSharp/CodeVariableTests.vb | 19 +++++++++++++++ 25 files changed, 270 insertions(+), 30 deletions(-) diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAccessorFunction.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAccessorFunction.cs index b85585399e6..187737f3bd6 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAccessorFunction.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAccessorFunction.cs @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeFunction))] + [ComDefaultInterface(typeof(EnvDTE80.CodeFunction2))] public sealed partial class CodeAccessorFunction : AbstractCodeElement, EnvDTE.CodeFunction, EnvDTE80.CodeFunction2 { internal static EnvDTE.CodeFunction Create(CodeModelState state, AbstractCodeMember parent, MethodKind kind) diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAttribute.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAttribute.cs index 907ffaa98a9..bc6c6968952 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAttribute.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAttribute.cs @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeAttribute))] + [ComDefaultInterface(typeof(EnvDTE80.CodeAttribute2))] public sealed class CodeAttribute : AbstractCodeElement, ICodeElementContainer, EnvDTE.CodeAttribute, EnvDTE80.CodeAttribute2 { internal static EnvDTE.CodeAttribute Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeDelegate.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeDelegate.cs index 57a4fe2442f..6dd89c5a6ef 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeDelegate.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeDelegate.cs @@ -8,7 +8,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeDelegate))] + [ComDefaultInterface(typeof(EnvDTE80.CodeDelegate2))] public sealed partial class CodeDelegate : AbstractCodeType, ICodeElementContainer, EnvDTE.CodeDelegate, EnvDTE80.CodeDelegate2 { internal static EnvDTE.CodeDelegate Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeEnum.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeEnum.cs index 422b56afbff..ce9050037cf 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeEnum.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeEnum.cs @@ -2,7 +2,6 @@ using System.Runtime.InteropServices; using Microsoft.VisualStudio.LanguageServices.Implementation.Interop; -using Microsoft.VisualStudio.LanguageServices.Implementation.Utilities; namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeFunction.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeFunction.cs index 582cd160a53..8cc87195f0e 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeFunction.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeFunction.cs @@ -12,7 +12,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeFunction))] + [ComDefaultInterface(typeof(EnvDTE80.CodeFunction2))] public partial class CodeFunction : AbstractCodeMember, ICodeElementContainer, ICodeElementContainer, EnvDTE.CodeFunction, EnvDTE80.CodeFunction2, IMethodXML, IMethodXML2 { internal static EnvDTE.CodeFunction Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeInterface.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeInterface.cs index af064b7bb0d..ce2082ac483 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeInterface.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeInterface.cs @@ -7,7 +7,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeInterface))] + [ComDefaultInterface(typeof(EnvDTE80.CodeInterface2))] public sealed class CodeInterface : AbstractCodeType, EnvDTE.CodeInterface, EnvDTE80.CodeInterface2 { internal static EnvDTE.CodeInterface Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeParameter.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeParameter.cs index b099a5a3dbc..a68d12e8866 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeParameter.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeParameter.cs @@ -12,7 +12,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeParameter))] + [ComDefaultInterface(typeof(EnvDTE80.CodeParameter2))] public sealed class CodeParameter : AbstractCodeElement, EnvDTE.CodeParameter, EnvDTE80.CodeParameter2 { internal static EnvDTE.CodeParameter Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeProperty.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeProperty.cs index b2d0d7ff8cc..3cf1f631f69 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeProperty.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeProperty.cs @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeProperty))] + [ComDefaultInterface(typeof(EnvDTE80.CodeProperty2))] public sealed partial class CodeProperty : AbstractCodeMember, ICodeElementContainer, ICodeElementContainer, EnvDTE.CodeProperty, EnvDTE80.CodeProperty2 { internal static EnvDTE.CodeProperty Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeStruct.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeStruct.cs index dab9492a878..02b64128fa9 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeStruct.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeStruct.cs @@ -8,7 +8,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeStruct))] + [ComDefaultInterface(typeof(EnvDTE80.CodeStruct2))] public sealed class CodeStruct : AbstractCodeType, EnvDTE.CodeStruct, EnvDTE80.CodeStruct2 { internal static EnvDTE.CodeStruct Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeVariable.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeVariable.cs index 68f39be8819..9a5f236c2dc 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeVariable.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeVariable.cs @@ -8,7 +8,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeVariable))] + [ComDefaultInterface(typeof(EnvDTE80.CodeVariable2))] public sealed class CodeVariable : AbstractCodeMember, EnvDTE.CodeVariable, EnvDTE80.CodeVariable2 { internal static EnvDTE.CodeVariable Create( diff --git a/src/VisualStudio/Core/Test/CodeModel/AbstractCodeElementTests`1.vb b/src/VisualStudio/Core/Test/CodeModel/AbstractCodeElementTests`1.vb index cf33f5875f6..8d7b47f1844 100644 --- a/src/VisualStudio/Core/Test/CodeModel/AbstractCodeElementTests`1.vb +++ b/src/VisualStudio/Core/Test/CodeModel/AbstractCodeElementTests`1.vb @@ -363,6 +363,21 @@ Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel Throw New NotSupportedException End Sub + Protected Sub TestPropertyDescriptors(code As XElement, ParamArray expectedPropertyNames As String()) + Using state = CreateCodeModelTestState(GetWorkspaceDefinition(code)) + Dim codeElement = state.GetCodeElementAtCursor(Of TCodeElement)() + Assert.NotNull(codeElement) + + Dim propertyDescriptors = ComponentModel.TypeDescriptor.GetProperties(codeElement) + Dim propertyNames = propertyDescriptors _ + .OfType(Of ComponentModel.PropertyDescriptor) _ + .Select(Function(pd) pd.Name) _ + .ToArray() + + Assert.Equal(expectedPropertyNames, propertyNames) + End Using + End Sub + Protected Sub TestElement(code As XElement, expected As Action(Of TCodeElement)) Using state = CreateCodeModelTestState(GetWorkspaceDefinition(code)) Dim codeElement = state.GetCodeElementAtCursor(Of TCodeElement)() diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAccessorFunctionTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAccessorFunctionTests.vb index d604426256f..7c4d5ceabe9 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAccessorFunctionTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAccessorFunctionTests.vb @@ -1,8 +1,6 @@ ' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -Imports System.Runtime.InteropServices Imports Microsoft.CodeAnalysis -Imports Microsoft.CodeAnalysis.Text Imports Roslyn.Test.Utilities Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp @@ -57,6 +55,26 @@ class C #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class C +{ + int P { $$get { return 42; } } +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "FunctionKind", "Type", "Parameters", "Access", "IsOverloaded", + "IsShared", "MustImplement", "Overloads", "Attributes", "DocComment", "Comment", + "CanOverride", "OverrideKind", "IsGeneric"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAttributeTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAttributeTests.vb index efb8fef02a0..bcba5e63343 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAttributeTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAttributeTests.vb @@ -1008,6 +1008,24 @@ class C { } End Sub #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +[$$System.CLSCompliant(true)] +class C +{ +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Value", "Target", "Arguments"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeClassTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeClassTests.vb index 7639d4c2412..57406551535 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeClassTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeClassTests.vb @@ -3791,13 +3791,6 @@ partial class Foo Public Sub TypeDescriptor_GetProperties() - Dim expectedPropertyNames = {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", - "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", - "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes", - "DocComment", "Comment", "DerivedTypes", "ImplementedInterfaces", "IsAbstract", - "ClassKind", "PartialClasses", "DataTypeKind", "Parts", "InheritanceKind", "IsGeneric", - "IsShared"} - Dim code = class $$C @@ -3805,16 +3798,15 @@ class $$C } - TestElement(code, - Sub(codeClass) - Dim propertyDescriptors = ComponentModel.TypeDescriptor.GetProperties(codeClass) - Dim propertyNames = propertyDescriptors _ - .OfType(Of ComponentModel.PropertyDescriptor) _ - .Select(Function(pd) pd.Name) _ - .ToArray() + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes", + "DocComment", "Comment", "DerivedTypes", "ImplementedInterfaces", "IsAbstract", + "ClassKind", "PartialClasses", "DataTypeKind", "Parts", "InheritanceKind", "IsGeneric", + "IsShared"} - Assert.Equal(expectedPropertyNames, propertyNames) - End Sub) + TestPropertyDescriptors(code, expectedPropertyNames) End Sub diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeDelegateTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeDelegateTests.vb index 777a7468c1e..0285c2f2082 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeDelegateTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeDelegateTests.vb @@ -367,6 +367,23 @@ delegate void D(); #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +delegate void $$D(); + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", + "IsCodeType", "InfoLocation", "Children", "Language", "StartPoint", + "EndPoint", "ExtenderNames", "ExtenderCATID", "Parent", "Namespace", + "Bases", "Members", "Access", "Attributes", "DocComment", "Comment", + "DerivedTypes", "BaseClass", "Type", "Parameters", "IsGeneric"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEnumTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEnumTests.vb index e3aeb422457..a85818c65d1 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEnumTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEnumTests.vb @@ -567,6 +567,24 @@ enum Bar End Sub #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +enum $$E +{ +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes", + "DocComment", "Comment", "DerivedTypes"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEventTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEventTests.vb index ff3ec3c4d79..1a503dbe39e 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEventTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEventTests.vb @@ -887,6 +887,25 @@ class C #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class C +{ + event System.EventHandler $$E; +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Access", "Attributes", "DocComment", "Comment", "Adder", + "Remover", "Thrower", "IsPropertyStyleEvent", "Type", "OverrideKind", "IsShared"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeFunctionTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeFunctionTests.vb index 73252d31f1a..6311423706d 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeFunctionTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeFunctionTests.vb @@ -2660,6 +2660,26 @@ class C #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class C +{ + void $$M() { } +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "FunctionKind", "Type", "Parameters", "Access", "IsOverloaded", + "IsShared", "MustImplement", "Overloads", "Attributes", "DocComment", "Comment", + "CanOverride", "OverrideKind", "IsGeneric"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Private Function GetExtensionMethodExtender(codeElement As EnvDTE80.CodeFunction2) As ICSExtensionMethodExtender Return CType(codeElement.Extender(ExtenderNames.ExtensionMethod), ICSExtensionMethodExtender) End Function diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeImportTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeImportTests.vb index b4f1c222e7f..3bdf97d0c2b 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeImportTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeImportTests.vb @@ -2,7 +2,6 @@ Imports System.Runtime.InteropServices Imports Microsoft.CodeAnalysis -Imports Microsoft.CodeAnalysis.Text Imports Roslyn.Test.Utilities Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp @@ -74,6 +73,21 @@ namespace Bar #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +using $$System; + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Namespace", "Alias", "Parent"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeInterfaceTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeInterfaceTests.vb index 41e54c7f9d6..63684ec3b38 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeInterfaceTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeInterfaceTests.vb @@ -411,6 +411,24 @@ interface Bar End Sub #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +interface $$I +{ +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes", + "DocComment", "Comment", "DerivedTypes", "IsGeneric", "DataTypeKind", "Parts"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeNamespaceTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeNamespaceTests.vb index da425dc000b..66a490f2080 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeNamespaceTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeNamespaceTests.vb @@ -53,6 +53,23 @@ namespace N$$ IsElement("C3", EnvDTE.vsCMElement.vsCMElementClass)) End Sub + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +namespace $$N +{ +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Members", "DocComment", "Comment"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeParameterTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeParameterTests.vb index 19c045599db..1b782bce8b3 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeParameterTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeParameterTests.vb @@ -1,7 +1,6 @@ ' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. Imports Microsoft.CodeAnalysis -Imports Microsoft.CodeAnalysis.Text Imports Roslyn.Test.Utilities Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp @@ -575,6 +574,24 @@ delegate void Foo(byte?[,] i) { } #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class C +{ + void M(int $$p) { } +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Type", "Attributes", "DocComment", "ParameterKind", "DefaultValue"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodePropertyTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodePropertyTests.vb index 330976a44af..af625e30dae 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodePropertyTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodePropertyTests.vb @@ -1450,6 +1450,26 @@ class C #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class C +{ + int $$P { get { return 42; } } +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Type", "Getter", "Setter", "Access", "Attributes", + "DocComment", "Comment", "Parameters", "IsGeneric", "OverrideKind", "IsShared", + "IsDefault", "Parent2", "ReadWrite"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Private Function GetAutoImplementedPropertyExtender(codeElement As EnvDTE80.CodeProperty2) As ICSAutoImplementedPropertyExtender Return CType(codeElement.Extender(ExtenderNames.AutoImplementedProperty), ICSAutoImplementedPropertyExtender) End Function diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeStructTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeStructTests.vb index 36604238849..c35463c9107 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeStructTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeStructTests.vb @@ -515,6 +515,25 @@ struct Bar End Sub #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +struct $$S +{ +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes", + "DocComment", "Comment", "DerivedTypes", "ImplementedInterfaces", "IsAbstract", + "IsGeneric", "DataTypeKind", "Parts"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeVariableTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeVariableTests.vb index c649c16de0f..34b6a792049 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeVariableTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeVariableTests.vb @@ -2005,6 +2005,25 @@ class C #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class S +{ + int $$x; +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "InitExpression", "Type", "Access", "IsConstant", "Attributes", + "DocComment", "Comment", "IsShared", "ConstKind", "IsGeneric"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp -- GitLab