Skip to content

Commit 9934902

Browse files
authored
Clean up route tooling for components (#50651)
1 parent b091143 commit 9934902

File tree

2 files changed

+2
-95
lines changed

2 files changed

+2
-95
lines changed

src/Framework/AspNetCoreAnalyzers/src/Analyzers/Infrastructure/RoutePattern/RoutePatternOptions.cs

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,12 @@ internal sealed class RoutePatternOptions
77
{
88
private RoutePatternOptions() { }
99
public bool SupportTokenReplacement { get; private set; }
10-
public bool SupportComplexSegments { get; private set; }
11-
public bool SupportDefaultValues { get; private set; }
12-
public bool SupportTwoAsteriskCatchAll { get; private set; }
13-
public char[]? AdditionalInvalidParameterCharacters { get; private set; }
1410

15-
public static readonly RoutePatternOptions DefaultRoute = new RoutePatternOptions
16-
{
17-
SupportComplexSegments = true,
18-
SupportDefaultValues = true,
19-
SupportTwoAsteriskCatchAll = true,
20-
};
11+
public static readonly RoutePatternOptions DefaultRoute = new RoutePatternOptions();
12+
public static readonly RoutePatternOptions ComponentsRoute = new RoutePatternOptions();
2113

2214
public static readonly RoutePatternOptions MvcAttributeRoute = new RoutePatternOptions
2315
{
24-
SupportComplexSegments = true,
25-
SupportDefaultValues = true,
26-
SupportTwoAsteriskCatchAll = true,
2716
SupportTokenReplacement = true,
2817
};
29-
30-
public static readonly RoutePatternOptions ComponentsRoute = new RoutePatternOptions
31-
{
32-
SupportComplexSegments = true,
33-
SupportDefaultValues = true,
34-
SupportTwoAsteriskCatchAll = true,
35-
};
3618
}

src/Framework/AspNetCoreAnalyzers/src/Analyzers/Infrastructure/RoutePattern/RoutePatternParser.cs

Lines changed: 0 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -77,71 +77,10 @@ private RoutePatternTree ParseTree()
7777
ValidateNoConsecutiveSeparators(root, diagnostics);
7878
ValidateCatchAllParameters(root, diagnostics);
7979
ValidateParameterParts(root, diagnostics, routeParameters);
80-
ValidateAdditionalInvalidParameterCharacters(root, diagnostics, _routePatternOptions);
81-
ValidateComplexSegments(root, diagnostics, _routePatternOptions);
8280

8381
return new RoutePatternTree(_lexer.Text, root, diagnostics.ToImmutable(), routeParameters.ToImmutable());
8482
}
8583

86-
private static void ValidateComplexSegments(RoutePatternCompilationUnit root, ImmutableArray<EmbeddedDiagnostic>.Builder diagnostics, RoutePatternOptions routePatternOptions)
87-
{
88-
if (routePatternOptions.SupportComplexSegments)
89-
{
90-
return;
91-
}
92-
93-
foreach (var part in root)
94-
{
95-
if (part.TryGetNode(RoutePatternKind.Segment, out var segmentNode))
96-
{
97-
if (segmentNode.ChildCount > 1)
98-
{
99-
var message = $"Complex segment is not supported.";
100-
diagnostics.Add(new EmbeddedDiagnostic(message, segmentNode.GetFullSpan()!.Value));
101-
}
102-
}
103-
}
104-
}
105-
106-
private static void ValidateAdditionalInvalidParameterCharacters(RoutePatternCompilationUnit root, ImmutableArray<EmbeddedDiagnostic>.Builder diagnostics, RoutePatternOptions routePatternOptions)
107-
{
108-
if (routePatternOptions.AdditionalInvalidParameterCharacters == null)
109-
{
110-
return;
111-
}
112-
113-
foreach (var part in root)
114-
{
115-
if (part.TryGetNode(RoutePatternKind.Segment, out var segmentNode))
116-
{
117-
foreach (var segmentPart in segmentNode)
118-
{
119-
if (segmentPart.TryGetNode(RoutePatternKind.Parameter, out var parameterNode))
120-
{
121-
foreach (var parameterPart in parameterNode)
122-
{
123-
if (parameterPart.TryGetNode(RoutePatternKind.ParameterName, out var parameterNameNode))
124-
{
125-
var parameterNameToken = ((RoutePatternNameParameterPartNode)parameterNameNode).ParameterNameToken;
126-
if (!parameterNameToken.IsMissing)
127-
{
128-
var name = parameterNameToken.Value!.ToString();
129-
var invalidCharacter = name.IndexOfAny(routePatternOptions.AdditionalInvalidParameterCharacters);
130-
131-
if (invalidCharacter != -1)
132-
{
133-
var message = $"The character '{name[invalidCharacter]}' in parameter segment '{parameterNode}' is not allowed.";
134-
diagnostics.Add(new EmbeddedDiagnostic(message, parameterNameNode.GetSpan()));
135-
}
136-
}
137-
}
138-
}
139-
}
140-
}
141-
}
142-
}
143-
}
144-
14584
private static void ValidateStart(RoutePatternCompilationUnit root, IList<EmbeddedDiagnostic> diagnostics)
14685
{
14786
if (root.ChildCount > 1 &&
@@ -567,12 +506,6 @@ private ImmutableArray<RoutePatternParameterPartNode> ParseParameterParts()
567506
RoutePatternKind.AsteriskToken,
568507
VirtualCharSequence.FromBounds(firstAsteriskToken.VirtualChars, _currentToken.VirtualChars));
569508

570-
if (!_routePatternOptions.SupportTwoAsteriskCatchAll)
571-
{
572-
asterisksToken = asterisksToken.AddDiagnosticIfNone(
573-
new EmbeddedDiagnostic("A catch-all parameter may only have one '*' at the beginning of the segment.", asterisksToken.GetFullSpan()!.Value));
574-
}
575-
576509
parts.Add(new RoutePatternCatchAllParameterPartNode(asterisksToken));
577510
ConsumeCurrentToken();
578511
}
@@ -629,14 +562,6 @@ private RoutePatternDefaultValueParameterPartNode ParseDefaultValue()
629562
var equalsToken = _currentToken;
630563
var defaultValue = _lexer.TryScanDefaultValue() ?? CreateMissingToken(RoutePatternKind.DefaultValueToken);
631564

632-
if (!_routePatternOptions.SupportDefaultValues)
633-
{
634-
equalsToken = equalsToken.AddDiagnosticIfNone(
635-
new EmbeddedDiagnostic(
636-
"A parameter with a default value isn't supported.",
637-
EmbeddedSyntaxHelpers.GetSpan(equalsToken, defaultValue)));
638-
}
639-
640565
ConsumeCurrentToken();
641566
var node = new RoutePatternDefaultValueParameterPartNode(equalsToken, defaultValue);
642567
return node;

0 commit comments

Comments
 (0)