提交 40ded3c5 编写于 作者: S Sam Harwell

Fix tests for declaration name completion and parameter name analysis

上级 2bec98e8
......@@ -31,7 +31,7 @@ class C
new SymbolKindOrTypeKind(MethodKind.Ordinary));
await VerifyNoModifiers(markup);
await VerifyTypeName(markup, "int");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -120,7 +120,7 @@ void goo()
new SymbolKindOrTypeKind(MethodKind.LocalFunction));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "int");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -139,7 +139,7 @@ void goo()
new SymbolKindOrTypeKind(SymbolKind.Local));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "int");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -159,7 +159,7 @@ void goo()
new SymbolKindOrTypeKind(MethodKind.LocalFunction));
await VerifyModifiers(markup, new DeclarationModifiers(isReadOnly: true));
await VerifyTypeName(markup, "int");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -178,7 +178,7 @@ void goo()
new SymbolKindOrTypeKind(SymbolKind.Local));
await VerifyModifiers(markup, new DeclarationModifiers(isReadOnly: true));
await VerifyTypeName(markup, "int");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -197,7 +197,7 @@ void M()
new SymbolKindOrTypeKind(SymbolKind.Local));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "int");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -216,7 +216,7 @@ void M()
new SymbolKindOrTypeKind(SymbolKind.Local));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "int");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -235,7 +235,7 @@ void M()
new SymbolKindOrTypeKind(SymbolKind.Local));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "int");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -254,7 +254,7 @@ void M()
new SymbolKindOrTypeKind(SymbolKind.Local));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "int");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -273,7 +273,7 @@ void M()
new SymbolKindOrTypeKind(SymbolKind.Local));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "int");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -290,7 +290,7 @@ class C
new SymbolKindOrTypeKind(SymbolKind.Parameter));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "global::C");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -307,7 +307,7 @@ class C
new SymbolKindOrTypeKind(SymbolKind.Parameter));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "global::C");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -324,7 +324,7 @@ class C
new SymbolKindOrTypeKind(SymbolKind.Parameter));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "string");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -341,7 +341,7 @@ class C
new SymbolKindOrTypeKind(SymbolKind.Parameter));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "string");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -359,7 +359,7 @@ class C
new SymbolKindOrTypeKind(SymbolKind.Parameter));
await VerifyModifiers(markup, new DeclarationModifiers());
await VerifyTypeName(markup, "global::System.Collections.Generic.List<string>");
await VerifyAccessibility(markup, Accessibility.NotApplicable);
await VerifyAccessibility(markup, null);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......@@ -795,7 +795,7 @@ private async Task VerifyModifiers(string markup, DeclarationModifiers modifiers
Assert.Equal(modifiers, result.Modifiers);
}
private async Task VerifyAccessibility(string markup, Accessibility accessibility)
private async Task VerifyAccessibility(string markup, Accessibility? accessibility)
{
var result = await GetResultsAsync(markup);
Assert.Equal(accessibility, result.DeclaredAccessibility);
......
......@@ -142,6 +142,11 @@ public async Task TestPascalCaseSymbol_NoneAndDefaultSymbolKinds(string camelCas
[InlineData("int [|m|];", "int M;", SymbolKind.Field, Accessibility.Private)]
[InlineData("event System.EventHandler [|m|];", "event System.EventHandler M;", SymbolKind.Event, Accessibility.Private)]
[InlineData("void Outer(int [|m|]) {}", "void Outer(int M) {}", SymbolKind.Parameter, Accessibility.Private)]
[InlineData("void Outer() { void Inner(int [|m|]) {} }", "void Outer() { void Inner(int M) {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
[InlineData("void Outer() { System.Action<int> action = [|m|] => {} }", "void Outer() { System.Action<int> action = M => {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
[InlineData("void Outer() { System.Action<int> action = ([|m|]) => {} }", "void Outer() { System.Action<int> action = (M) => {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
[InlineData("void Outer() { System.Action<int> action = (int [|m|]) => {} }", "void Outer() { System.Action<int> action = (int M) => {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
[InlineData("void Outer() { System.Action<int> action = delegate (int [|m|]) {} }", "void Outer() { System.Action<int> action = delegate (int M) {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
[InlineData("void Outer() { int [|m|]; }", "void Outer() { int M; }", SymbolKind.Local, Accessibility.NotApplicable)]
[WorkItem(20907, "https://github.com/dotnet/roslyn/issues/20907")]
public async Task TestPascalCaseSymbol_ExpectedSymbolAndAccessibility(string camelCaseSymbol, string pascalCaseSymbol, object symbolKind, Accessibility accessibility)
......
......@@ -16,6 +16,7 @@ internal sealed class CSharpNamingStyleDiagnosticAnalyzer : NamingStyleDiagnosti
SyntaxKind.CatchDeclaration,
SyntaxKind.SingleVariableDesignation,
SyntaxKind.LocalFunctionStatement,
SyntaxKind.Parameter,
SyntaxKind.TypeParameter);
}
}
......@@ -34,10 +34,9 @@ protected NamingStyleDiagnosticAnalyzerBase()
SymbolKind.Method,
SymbolKind.NamedType,
SymbolKind.Namespace,
SymbolKind.Property,
SymbolKind.Parameter);
SymbolKind.Property);
// Workaround: RegisterSymbolAction doesn't work with locals, local functions, or type parameters.
// Workaround: RegisterSymbolAction doesn't work with locals, local functions, parameters, or type parameters.
// see https://github.com/dotnet/roslyn/issues/14061
protected abstract ImmutableArray<TLanguageKindEnum> SupportedSyntaxKinds { get; }
......
......@@ -13,6 +13,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Diagnostics.Analyzers
ImmutableArray.Create(
SyntaxKind.ModifiedIdentifier,
SyntaxKind.CatchStatement,
SyntaxKind.Parameter,
SyntaxKind.TypeParameter)
End Class
End Namespace
......@@ -35,9 +35,17 @@ private static Accessibility GetAccessibility(ISymbol symbol)
case SymbolKind.TypeParameter:
continue;
case SymbolKind.Method when ((IMethodSymbol)currentSymbol).MethodKind == MethodKind.LocalFunction:
// Always treat local functions as 'local'
return Accessibility.NotApplicable;
case SymbolKind.Method:
switch (((IMethodSymbol)currentSymbol).MethodKind)
{
case MethodKind.AnonymousFunction:
case MethodKind.LocalFunction:
// Always treat anonymous and local functions as 'local'
return Accessibility.NotApplicable;
default:
return currentSymbol.DeclaredAccessibility;
}
default:
return currentSymbol.DeclaredAccessibility;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册