Skip to content

Commit 6a09280

Browse files
Update to using unbound nameof(X<>) expressions (#78731)
2 parents a7fa681 + 772bcc9 commit 6a09280

File tree

30 files changed

+66
-66
lines changed

30 files changed

+66
-66
lines changed

src/Analyzers/CSharp/Analyzers/UseCollectionExpression/CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ internal sealed partial class CSharpUseCollectionExpressionForBuilderDiagnosticA
2727
EnforceOnBuildValues.UseCollectionExpressionForBuilder)
2828
{
2929
private const string CreateBuilderName = nameof(ImmutableArray.CreateBuilder);
30-
private const string GetInstanceName = nameof(ArrayBuilder<int>.GetInstance);
30+
private const string GetInstanceName = nameof(ArrayBuilder<>.GetInstance);
3131

3232
protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType)
3333
=> context.RegisterSyntaxNodeAction(context => AnalyzeInvocationExpression(context, expressionType), SyntaxKind.InvocationExpression);
@@ -117,7 +117,7 @@ void FadeOutCode(SyntaxNodeAnalysisContext context, AnalysisResult analysisResul
117117
return null;
118118

119119
if (memberAccessExpression.Name.Identifier.ValueText == GetInstanceName &&
120-
memberAccessExpression.Expression is not GenericNameSyntax { Identifier.ValueText: nameof(ArrayBuilder<int>) })
120+
memberAccessExpression.Expression is not GenericNameSyntax { Identifier.ValueText: nameof(ArrayBuilder<>) })
121121
{
122122
return null;
123123
}
@@ -217,12 +217,12 @@ identifierName.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAcc
217217
memberAccess.Expression == identifierName &&
218218
memberAccess.Parent is InvocationExpressionSyntax { ArgumentList.Arguments.Count: 0 } invocationExpression &&
219219
memberAccess.Name.Identifier.ValueText
220-
is nameof(ImmutableArray<int>.Builder.ToImmutable)
221-
or nameof(ImmutableArray<int>.Builder.MoveToImmutable)
222-
or nameof(ImmutableArray<int>.Builder.ToArray)
223-
or nameof(ArrayBuilder<int>.ToImmutableAndClear)
224-
or nameof(ArrayBuilder<int>.ToImmutableAndFree)
225-
or nameof(ArrayBuilder<int>.ToArrayAndFree)
220+
is nameof(ImmutableArray<>.Builder.ToImmutable)
221+
or nameof(ImmutableArray<>.Builder.MoveToImmutable)
222+
or nameof(ImmutableArray<>.Builder.ToArray)
223+
or nameof(ArrayBuilder<>.ToImmutableAndClear)
224+
or nameof(ArrayBuilder<>.ToImmutableAndFree)
225+
or nameof(ArrayBuilder<>.ToArrayAndFree)
226226
or nameof(Enumerable.ToList))
227227
{
228228
return invocationExpression;

src/Analyzers/CSharp/Analyzers/UseCollectionExpression/CSharpUseCollectionExpressionForFluentDiagnosticAnalyzer.cs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,24 @@ internal sealed partial class CSharpUseCollectionExpressionForFluentDiagnosticAn
4242
private static readonly ImmutableArray<string> s_suffixes =
4343
[
4444
nameof(Array),
45-
nameof(Span<int>),
46-
nameof(ReadOnlySpan<int>),
47-
nameof(System.Collections.Generic.List<int>),
48-
nameof(HashSet<int>),
49-
nameof(LinkedList<int>),
50-
nameof(Queue<int>),
51-
nameof(SortedSet<int>),
52-
nameof(Stack<int>),
53-
nameof(ICollection<int>),
54-
nameof(IReadOnlyCollection<int>),
55-
nameof(IList<int>),
56-
nameof(IReadOnlyList<int>),
57-
nameof(ImmutableArray<int>),
58-
nameof(ImmutableHashSet<int>),
59-
nameof(ImmutableList<int>),
60-
nameof(ImmutableQueue<int>),
61-
nameof(ImmutableSortedSet<int>),
62-
nameof(ImmutableStack<int>),
45+
nameof(Span<>),
46+
nameof(ReadOnlySpan<>),
47+
nameof(System.Collections.Generic.List<>),
48+
nameof(HashSet<>),
49+
nameof(LinkedList<>),
50+
nameof(Queue<>),
51+
nameof(SortedSet<>),
52+
nameof(Stack<>),
53+
nameof(ICollection<>),
54+
nameof(IReadOnlyCollection<>),
55+
nameof(IList<>),
56+
nameof(IReadOnlyList<>),
57+
nameof(ImmutableArray<>),
58+
nameof(ImmutableHashSet<>),
59+
nameof(ImmutableList<>),
60+
nameof(ImmutableQueue<>),
61+
nameof(ImmutableSortedSet<>),
62+
nameof(ImmutableStack<>),
6363
nameof(System.Collections.Immutable),
6464
];
6565

src/Analyzers/CSharp/Analyzers/UseCollectionExpression/CSharpUseCollectionExpressionForNewDiagnosticAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ private void AnalyzeBaseObjectCreationExpression(
5353

5454
var symbol = semanticModel.GetSymbolInfo(objectCreationExpression, cancellationToken).Symbol;
5555
if (symbol is not IMethodSymbol { MethodKind: MethodKind.Constructor, Parameters: [var constructorParameter] } ||
56-
constructorParameter.Type.Name != nameof(IEnumerable<int>))
56+
constructorParameter.Type.Name != nameof(IEnumerable<>))
5757
{
5858
return;
5959
}

src/Analyzers/CSharp/Analyzers/UseCollectionExpression/UseCollectionExpressionHelpers.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,11 +193,11 @@ bool IsSafeConversionWhenTypesDoNotMatch(out bool changesSemantics)
193193
var convertedType = originalTypeInfo.ConvertedType;
194194

195195
var convertedToReadOnlySpan =
196-
convertedType.Name == nameof(ReadOnlySpan<int>) &&
196+
convertedType.Name == nameof(ReadOnlySpan<>) &&
197197
convertedType.OriginalDefinition.Equals(compilation.ReadOnlySpanOfTType());
198198

199199
var convertedToSpan =
200-
convertedType.Name == nameof(Span<int>) &&
200+
convertedType.Name == nameof(Span<>) &&
201201
convertedType.OriginalDefinition.Equals(compilation.SpanOfTType());
202202

203203
// ReadOnlySpan<X> x = stackalloc[] ...
@@ -206,7 +206,7 @@ bool IsSafeConversionWhenTypesDoNotMatch(out bool changesSemantics)
206206
// restrictive than Span<X>
207207
var isSpanToReadOnlySpan =
208208
convertedToReadOnlySpan &&
209-
type.Name == nameof(Span<int>) &&
209+
type.Name == nameof(Span<>) &&
210210
type.OriginalDefinition.Equals(compilation.SpanOfTType()) &&
211211
convertedType.GetTypeArguments()[0].Equals(type.GetTypeArguments()[0]);
212212
if (isSpanToReadOnlySpan)
@@ -264,7 +264,7 @@ bool IsSafeConversionWhenTypesDoNotMatch(out bool changesSemantics)
264264
// disallow converting those types to ensure semantics are preserved. We do this even though
265265
// allowSemanticsChange is true because this will basically be certain to break semantics, as opposed to
266266
// the more common case where semantics may change slightly, but likely not in a way that breaks code.
267-
if (type.Name is nameof(ObservableCollection<int>) or nameof(ReadOnlyObservableCollection<int>))
267+
if (type.Name is nameof(ObservableCollection<>) or nameof(ReadOnlyObservableCollection<>))
268268
return false;
269269

270270
// If the original expression was creating a set, but is being assigned to one of the well known
@@ -933,7 +933,7 @@ bool IsCompatibleSignatureAndArguments(
933933
{
934934
Type: INamedTypeSymbol
935935
{
936-
Name: nameof(IEnumerable<int>),
936+
Name: nameof(IEnumerable<>),
937937
TypeArguments: [ITypeParameterSymbol { TypeParameterKind: TypeParameterKind.Method }]
938938
} enumerableType
939939
}] &&
@@ -980,7 +980,7 @@ originalCreateMethod.Parameters is [
980980
{
981981
Type: INamedTypeSymbol
982982
{
983-
Name: nameof(Span<int>) or nameof(ReadOnlySpan<int>),
983+
Name: nameof(Span<>) or nameof(ReadOnlySpan<>),
984984
TypeArguments: [ITypeParameterSymbol { TypeParameterKind: TypeParameterKind.Method }]
985985
} spanType
986986
}])

src/Analyzers/CSharp/Analyzers/UseIndexOrRangeOperator/CSharpUseRangeOperatorDiagnosticAnalyzer.InfoCache.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ private MemberInfo ComputeMemberInfo(IMethodSymbol sliceLikeMethod, bool require
158158
// Also, look to see if the type has a `.Slice(int start, int length)` method.
159159
// This is also a method the compiler knows to look for when a user writes `x[a..b]`
160160
var actualSliceMethod =
161-
sliceLikeMethod.ContainingType.GetMembers(nameof(Span<int>.Slice))
161+
sliceLikeMethod.ContainingType.GetMembers(nameof(Span<>.Slice))
162162
.OfType<IMethodSymbol>()
163163
.FirstOrDefault(s => IsTwoArgumentSliceLikeMethod(s));
164164
if (actualSliceMethod != null)

src/Analyzers/CSharp/CodeFixes/MakeMethodAsynchronous/CSharpMakeMethodAsynchronousCodeFixProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,13 +131,13 @@ private static TypeSyntax FixMethodReturnType(
131131
if (IsIEnumerable(returnType, knownTypes) && IsIterator(methodSymbol, cancellationToken))
132132
{
133133
newReturnType = knownTypes.IAsyncEnumerableOfTType is null
134-
? MakeGenericType(nameof(IAsyncEnumerable<int>), methodSymbol.ReturnType)
134+
? MakeGenericType(nameof(IAsyncEnumerable<>), methodSymbol.ReturnType)
135135
: knownTypes.IAsyncEnumerableOfTType.Construct(methodSymbol.ReturnType.GetTypeArguments()[0]).GenerateTypeSyntax();
136136
}
137137
else if (IsIEnumerator(returnType, knownTypes) && IsIterator(methodSymbol, cancellationToken))
138138
{
139139
newReturnType = knownTypes.IAsyncEnumeratorOfTType is null
140-
? MakeGenericType(nameof(IAsyncEnumerator<int>), methodSymbol.ReturnType)
140+
? MakeGenericType(nameof(IAsyncEnumerator<>), methodSymbol.ReturnType)
141141
: knownTypes.IAsyncEnumeratorOfTType.Construct(methodSymbol.ReturnType.GetTypeArguments()[0]).GenerateTypeSyntax();
142142
}
143143
else if (IsIAsyncEnumerableOrEnumerator(returnType, knownTypes))

src/Analyzers/CSharp/CodeFixes/UseUtf8StringLiteral/UseUtf8StringLiteralCodeFixProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ private static ExpressionSyntax CreateUtf8String(SyntaxTriviaList leadingTrivia,
206206
MemberAccessExpression(
207207
SyntaxKind.SimpleMemberAccessExpression,
208208
stringLiteral,
209-
IdentifierName(nameof(ReadOnlySpan<byte>.ToArray))))
209+
IdentifierName(nameof(ReadOnlySpan<>.ToArray))))
210210
.WithTrailingTrivia(trailingTrivia);
211211
}
212212
}

src/Analyzers/Core/Analyzers/UseCoalesceExpression/AbstractUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ private void AnalyzeSyntax(SyntaxNodeAnalysisContext context)
8080
syntaxFacts.GetPartsOfMemberAccessExpression(conditionMemberAccess, out var conditionExpression, out var conditionSimpleName);
8181
syntaxFacts.GetNameAndArityOfSimpleName(conditionSimpleName, out var conditionName, out _);
8282

83-
if (conditionName != nameof(Nullable<int>.HasValue))
83+
if (conditionName != nameof(Nullable<>.HasValue))
8484
return;
8585

8686
var whenPartToCheck = notHasValueExpression ? whenFalseNodeLow : whenTrueNodeLow;
@@ -90,7 +90,7 @@ private void AnalyzeSyntax(SyntaxNodeAnalysisContext context)
9090
syntaxFacts.GetPartsOfMemberAccessExpression(whenPartMemberAccess, out var whenPartExpression, out var whenPartSimpleName);
9191
syntaxFacts.GetNameAndArityOfSimpleName(whenPartSimpleName, out var whenPartName, out _);
9292

93-
if (whenPartName != nameof(Nullable<int>.Value))
93+
if (whenPartName != nameof(Nullable<>.Value))
9494
return;
9595

9696
if (!syntaxFacts.AreEquivalent(conditionExpression, whenPartExpression))

src/Analyzers/Core/Analyzers/UseCollectionInitializer/UpdateExpressionState.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ internal readonly struct UpdateExpressionState<
2626
{
2727
private static readonly ImmutableArray<(string name, bool isLinq)> s_multiAddNames =
2828
[
29-
(nameof(List<int>.AddRange), isLinq: false),
29+
(nameof(List<>.AddRange), isLinq: false),
3030
(nameof(Enumerable.Concat), isLinq: true),
3131
(nameof(Enumerable.Append), isLinq: true),
3232
];

src/Analyzers/Core/Analyzers/UseNullPropagation/AbstractUseNullPropagationDiagnosticAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ internal static class UseNullPropagationHelpers
2222
public static bool IsSystemNullableValueProperty([NotNullWhen(true)] ISymbol? symbol)
2323
=> symbol is
2424
{
25-
Name: nameof(Nullable<int>.Value),
25+
Name: nameof(Nullable<>.Value),
2626
ContainingType.OriginalDefinition.SpecialType: SpecialType.System_Nullable_T,
2727
};
2828
}

0 commit comments

Comments
 (0)