提交 865c594e 编写于 作者: M Manish Vasani

Do not report unused parameter diagnostic for parameters of MEF importing constructors

上级 d978dcfc
......@@ -941,6 +941,27 @@ void M(int [|p|])
}}");
}
[Theory, Trait(Traits.Feature, Traits.Features.CodeActionsRemoveUnusedParameters)]
[InlineData("System.Composition", "ImportingConstructorAttribute")]
[InlineData("System.ComponentModel.Composition", "ImportingConstructorAttribute")]
public async Task Parameter_ConstructorsWithSpecialAttributes(string attributeNamespace, string attributeName)
{
await TestDiagnosticMissingAsync(
$@"
namespace {attributeNamespace}
{{
public class {attributeName} : System.Attribute {{ }}
}}
class C
{{
[{attributeNamespace}.{attributeName}()]
public C(int [|p|])
{{
}}
}}");
}
[ConditionalFact(typeof(IsEnglishLocal)), Trait(Traits.Feature, Traits.Features.CodeActionsRemoveUnusedParameters)]
public async Task Parameter_DiagnosticMessages()
{
......
......@@ -159,6 +159,10 @@ private static IEnumerable<INamedTypeSymbol> GetAttributesForMethodsToIgnore(Com
// Don't flag obsolete methods.
yield return compilation.ObsoleteAttribute();
// Don't flag MEF import constructors with ImportingConstructor attribute.
yield return compilation.SystemCompositionImportingConstructorAttribute();
yield return compilation.SystemComponentModelCompositionImportingConstructorAttribute();
}
private bool IsUnusedParameterCandidate(IParameterSymbol parameter)
......
......@@ -161,5 +161,11 @@ public static INamedTypeSymbol ConditionalAttribute(this Compilation compilation
public static INamedTypeSymbol ObsoleteAttribute(this Compilation compilation)
=> compilation.GetTypeByMetadataName(typeof(ObsoleteAttribute).FullName);
public static INamedTypeSymbol SystemCompositionImportingConstructorAttribute(this Compilation compilation)
=> compilation.GetTypeByMetadataName(typeof(System.Composition.ImportingConstructorAttribute).FullName);
public static INamedTypeSymbol SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation)
=> compilation.GetTypeByMetadataName("System.ComponentModel.Composition.ImportingConstructorAttribute");
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册