Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions src/TypeShim.Analyzers/AnalyzerReleases.Shipped.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 0 additions & 1 deletion src/TypeShim.Analyzers/AnalyzerReleases.Unshipped.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,4 @@

Rule ID | Category | Severity | Notes
--------|----------|----------|-------
TSHIM006 | Usage | Error | TypeShimAnalyzer

16 changes: 0 additions & 16 deletions src/TypeShim.Analyzers/TypeShimAnalyzer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ internal sealed class TypeShimAnalyzer : DiagnosticAnalyzer
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics =>
[
TypeShimDiagnostics.AttributeOnPublicClassOnlyRule,
TypeShimDiagnostics.NonPublicSetterRule,
TypeShimDiagnostics.NoRequiredFieldsRule,
TypeShimDiagnostics.NoOverloadsRule,
TypeShimDiagnostics.UnsupportedTypeRule,
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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)
Expand Down
9 changes: 0 additions & 9 deletions src/TypeShim.Analyzers/TypeShimDiagnostics.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Loading