diff --git a/src/TypeShim.Analyzers/AnalyzerReleases.Shipped.md b/src/TypeShim.Analyzers/AnalyzerReleases.Shipped.md index 77bd58de..cd04cf1c 100644 --- a/src/TypeShim.Analyzers/AnalyzerReleases.Shipped.md +++ b/src/TypeShim.Analyzers/AnalyzerReleases.Shipped.md @@ -8,10 +8,9 @@ Rule ID | Category | Severity | Notes --------|----------|----------|------- TSHIM005 | TypeChecking | Error | TypeShimAnalyzer -TSHIM006 | Design | Warning | TypeShimAnalyzer +TSHIM006 | Usage | Error | TypeShimAnalyzer TSHIM007 | TypeChecking | Error | TypeShimAnalyzer TSHIM008 | Usage | Error | TypeShimAnalyzer TSHIM009 | Usage | Error | TypeShimAnalyzer -TSHIM010 | Usage | Info | TypeShimAnalyzer TSHIM011 | Usage | Error | TypeShimAnalyzer TSHIM012 | Usage | Error | TypeShimAnalyzer \ No newline at end of file diff --git a/src/TypeShim.Analyzers/AnalyzerReleases.Unshipped.md b/src/TypeShim.Analyzers/AnalyzerReleases.Unshipped.md index c55f079e..bebfc94d 100644 --- a/src/TypeShim.Analyzers/AnalyzerReleases.Unshipped.md +++ b/src/TypeShim.Analyzers/AnalyzerReleases.Unshipped.md @@ -5,5 +5,4 @@ Rule ID | Category | Severity | Notes --------|----------|----------|------- -TSHIM006 | Usage | Error | TypeShimAnalyzer diff --git a/src/TypeShim.Analyzers/TypeShimAnalyzer.cs b/src/TypeShim.Analyzers/TypeShimAnalyzer.cs index 8ca82624..8da40150 100644 --- a/src/TypeShim.Analyzers/TypeShimAnalyzer.cs +++ b/src/TypeShim.Analyzers/TypeShimAnalyzer.cs @@ -17,7 +17,6 @@ internal sealed class TypeShimAnalyzer : DiagnosticAnalyzer public override ImmutableArray SupportedDiagnostics => [ TypeShimDiagnostics.AttributeOnPublicClassOnlyRule, - TypeShimDiagnostics.NonPublicSetterRule, TypeShimDiagnostics.NoRequiredFieldsRule, TypeShimDiagnostics.NoOverloadsRule, TypeShimDiagnostics.UnsupportedTypeRule, @@ -77,7 +76,6 @@ private static void AnalyzeMembers(SymbolAnalysisContext context, INamedTypeSymb CheckMethodParameterType(context, method, parameter); break; case IPropertySymbol prop: - CheckInstancePropertySetterAccessibility(context, prop); CheckPropertyType(context, prop); break; case IFieldSymbol field: @@ -135,20 +133,6 @@ private static void CheckPropertyType(SymbolAnalysisContext context, IPropertySy } } - private static void CheckInstancePropertySetterAccessibility(SymbolAnalysisContext context, IPropertySymbol property) - { - if (property.IsStatic || property.IsIndexer || property.SetMethod is not IMethodSymbol setter) - return; - - Accessibility propertyAccessibility = property.DeclaredAccessibility is Accessibility.NotApplicable ? Accessibility.Private : property.DeclaredAccessibility; - Accessibility setterAccessibility = setter.DeclaredAccessibility is Accessibility.NotApplicable ? propertyAccessibility : setter.DeclaredAccessibility; - if (setterAccessibility is Accessibility.Public) - return; - - string propertyName = property.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat); - context.ReportDiagnostic(Diagnostic.Create(TypeShimDiagnostics.NonPublicSetterRule, LocationFinder.GetDefaultLocation(property), propertyName)); - } - private static void CheckInstanceFieldRequiredness(SymbolAnalysisContext context, IFieldSymbol field) { if (field.IsStatic || field.IsConst || field.IsImplicitlyDeclared) diff --git a/src/TypeShim.Analyzers/TypeShimDiagnostics.cs b/src/TypeShim.Analyzers/TypeShimDiagnostics.cs index e90dceff..e1103e31 100644 --- a/src/TypeShim.Analyzers/TypeShimDiagnostics.cs +++ b/src/TypeShim.Analyzers/TypeShimDiagnostics.cs @@ -51,15 +51,6 @@ internal static class TypeShimDiagnostics isEnabledByDefault: true, description: "TypeShim does not support fields (yet), they're mostly ignored but required fields are banned to prevent invalid constructor initializers from being generated."); - internal static readonly DiagnosticDescriptor NonPublicSetterRule = new( - id: "TSHIM010", - title: "Non-public set/init will be skipped in 'Initializer' generation", - messageFormat: "Property '{0}' has a non-public set/init, it will not be available in the TypeScript constructor of class '{1}'", - category: "Usage", - defaultSeverity: DiagnosticSeverity.Info, - isEnabledByDefault: true, - description: "TypeShim generates initializer objects to use in conjuction with constructors and for automatic JSObject mapping. Properties with non-public set/init's are excluded from this feature."); - internal static readonly DiagnosticDescriptor NoRequiredFieldsRule = new( id: "TSHIM011", title: "Required fields are not supported",