Skip to content

Commit 3118ec7

Browse files
sharwelldotpaul
authored andcommitted
Use WellKnownTypeProvider instead of GetTypeByMetadataName
1 parent 7049a4b commit 3118ec7

108 files changed

Lines changed: 330 additions & 368 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/Microsoft.CodeAnalysis.Analyzers/CSharp/CSharpImmutableObjectMethodAnalyzer.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ public override void Initialize(AnalysisContext context)
5050

5151
context.RegisterCompilationStartAction(compilationContext =>
5252
{
53-
INamedTypeSymbol solutionSymbol = compilationContext.Compilation.GetTypeByMetadataName(SolutionFullName);
54-
INamedTypeSymbol projectSymbol = compilationContext.Compilation.GetTypeByMetadataName(ProjectFullName);
55-
INamedTypeSymbol documentSymbol = compilationContext.Compilation.GetTypeByMetadataName(DocumentFullName);
56-
INamedTypeSymbol syntaxNodeSymbol = compilationContext.Compilation.GetTypeByMetadataName(SyntaxNodeFullName);
57-
INamedTypeSymbol compilationSymbol = compilationContext.Compilation.GetTypeByMetadataName(CompilationFullName);
53+
INamedTypeSymbol solutionSymbol = compilationContext.Compilation.GetOrCreateTypeByMetadataName(SolutionFullName);
54+
INamedTypeSymbol projectSymbol = compilationContext.Compilation.GetOrCreateTypeByMetadataName(ProjectFullName);
55+
INamedTypeSymbol documentSymbol = compilationContext.Compilation.GetOrCreateTypeByMetadataName(DocumentFullName);
56+
INamedTypeSymbol syntaxNodeSymbol = compilationContext.Compilation.GetOrCreateTypeByMetadataName(SyntaxNodeFullName);
57+
INamedTypeSymbol compilationSymbol = compilationContext.Compilation.GetOrCreateTypeByMetadataName(CompilationFullName);
5858

5959
ImmutableArray<INamedTypeSymbol> immutableSymbols = ImmutableArray.Create(solutionSymbol, projectSymbol, documentSymbol, syntaxNodeSymbol, compilationSymbol);
6060
//Only register our node action if we can find the symbols for our immutable types

src/Microsoft.CodeAnalysis.Analyzers/CSharp/MetaAnalyzers/CSharpRegisterActionAnalyzer.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
using System.Collections.Generic;
44
using System.Linq;
5+
using Analyzer.Utilities.Extensions;
56
using Microsoft.CodeAnalysis.Analyzers.MetaAnalyzers;
67
using Microsoft.CodeAnalysis.CSharp.Syntax;
78
using Microsoft.CodeAnalysis.Diagnostics;
@@ -22,8 +23,8 @@ protected override RegisterActionCodeBlockAnalyzer GetCodeBlockAnalyzer(
2223
INamedTypeSymbol operationBlockStartAnalysisContext,
2324
INamedTypeSymbol symbolKind)
2425
{
25-
INamedTypeSymbol csharpSyntaxKind = compilation.GetTypeByMetadataName(CSharpSyntaxKindName);
26-
INamedTypeSymbol basicSyntaxKind = compilation.GetTypeByMetadataName(BasicSyntaxKindName);
26+
INamedTypeSymbol csharpSyntaxKind = compilation.GetOrCreateTypeByMetadataName(CSharpSyntaxKindName);
27+
INamedTypeSymbol basicSyntaxKind = compilation.GetOrCreateTypeByMetadataName(BasicSyntaxKindName);
2728
return new CSharpRegisterActionCodeBlockAnalyzer(csharpSyntaxKind, basicSyntaxKind, analysisContext, compilationStartAnalysisContext,
2829
codeBlockStartAnalysisContext, operationBlockStartAnalysisContext, symbolKind);
2930
}

src/Microsoft.CodeAnalysis.Analyzers/Core/FixAnalyzers/FixerWithFixAllAnalyzer.Fixer.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.Linq;
66
using System.Threading;
77
using System.Threading.Tasks;
8+
using Analyzer.Utilities.Extensions;
89
using Microsoft.CodeAnalysis.Analyzers.FixAnalyzers;
910
using Microsoft.CodeAnalysis.CodeActions;
1011
using Microsoft.CodeAnalysis.CodeFixes;
@@ -54,7 +55,7 @@ private static async Task<Document> AddMethodAsync(Document document, SyntaxNode
5455
var model = await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(false);
5556
var typeIsSealed = ((INamedTypeSymbol)model.GetDeclaredSymbol(classDecl)).IsSealed;
5657

57-
INamedTypeSymbol codeFixProviderSymbol = model.Compilation.GetTypeByMetadataName(FixerWithFixAllAnalyzer.CodeFixProviderMetadataName);
58+
INamedTypeSymbol codeFixProviderSymbol = model.Compilation.GetOrCreateTypeByMetadataName(FixerWithFixAllAnalyzer.CodeFixProviderMetadataName);
5859
IMethodSymbol getFixAllProviderMethod = codeFixProviderSymbol.GetMembers(FixerWithFixAllAnalyzer.GetFixAllProviderMethodName).OfType<IMethodSymbol>().First();
5960
var returnStatement = generator.ReturnStatement(generator.MemberAccessExpression(
6061
generator.IdentifierName("WellKnownFixAllProviders"), "BatchFixer"));

src/Microsoft.CodeAnalysis.Analyzers/Core/FixAnalyzers/FixerWithFixAllAnalyzer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ private void CreateAnalyzerWithinCompilation(CompilationStartAnalysisContext con
8686
{
8787
context.CancellationToken.ThrowIfCancellationRequested();
8888

89-
INamedTypeSymbol codeFixProviderSymbol = context.Compilation.GetTypeByMetadataName(CodeFixProviderMetadataName);
89+
INamedTypeSymbol codeFixProviderSymbol = context.Compilation.GetOrCreateTypeByMetadataName(CodeFixProviderMetadataName);
9090
if (codeFixProviderSymbol == null)
9191
{
9292
return;
@@ -98,7 +98,7 @@ private void CreateAnalyzerWithinCompilation(CompilationStartAnalysisContext con
9898
return;
9999
}
100100

101-
INamedTypeSymbol codeActionSymbol = context.Compilation.GetTypeByMetadataName(CodeActionMetadataName);
101+
INamedTypeSymbol codeActionSymbol = context.Compilation.GetOrCreateTypeByMetadataName(CodeActionMetadataName);
102102
if (codeActionSymbol == null)
103103
{
104104
return;

src/Microsoft.CodeAnalysis.Analyzers/Core/MetaAnalyzers/CompareSymbolsCorrectlyAnalyzer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public override void Initialize(AnalysisContext context)
4141
context.RegisterCompilationStartAction(context =>
4242
{
4343
var compilation = context.Compilation;
44-
var symbolType = compilation.GetTypeByMetadataName(s_symbolTypeFullName);
44+
var symbolType = compilation.GetOrCreateTypeByMetadataName(s_symbolTypeFullName);
4545
if (symbolType is null)
4646
{
4747
return;
@@ -203,6 +203,6 @@ private static bool IsExplicitCastToObject(IOperation operation)
203203
}
204204

205205
public static bool UseSymbolEqualityComparer(Compilation compilation)
206-
=> compilation.GetTypeByMetadataName(SymbolEqualityComparerName) is object;
206+
=> compilation.GetOrCreateTypeByMetadataName(SymbolEqualityComparerName) is object;
207207
}
208208
}

src/Microsoft.CodeAnalysis.Analyzers/Core/MetaAnalyzers/ConfigureGeneratedCodeAnalysisAnalyzer.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Diagnostics.CodeAnalysis;
55
using System.Linq;
66
using Analyzer.Utilities;
7+
using Analyzer.Utilities.Extensions;
78
using Microsoft.CodeAnalysis.Diagnostics;
89
using Microsoft.CodeAnalysis.Operations;
910

@@ -42,7 +43,7 @@ protected override DiagnosticAnalyzerSymbolAnalyzer GetDiagnosticAnalyzerSymbolA
4243
{
4344
var compilation = compilationContext.Compilation;
4445

45-
var analysisContext = compilation.GetTypeByMetadataName(AnalysisContextFullName);
46+
var analysisContext = compilation.GetOrCreateTypeByMetadataName(AnalysisContextFullName);
4647
if (analysisContext is null)
4748
{
4849
return null;

src/Microsoft.CodeAnalysis.Analyzers/Core/MetaAnalyzers/DiagnosticAnalyzerAPIUsageAnalyzer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ public override void Initialize(AnalysisContext context)
5757

5858
context.RegisterCompilationStartAction(compilationStartContext =>
5959
{
60-
if (compilationStartContext.Compilation.GetTypeByMetadataName(CodeActionMetadataName) == null)
60+
if (compilationStartContext.Compilation.GetOrCreateTypeByMetadataName(CodeActionMetadataName) == null)
6161
{
6262
// No reference to core Workspaces assembly.
6363
return;
6464
}
6565

66-
INamedTypeSymbol diagnosticAnalyzer = compilationStartContext.Compilation.GetTypeByMetadataName(DiagnosticAnalyzerCorrectnessAnalyzer.DiagnosticAnalyzerTypeFullName);
66+
INamedTypeSymbol diagnosticAnalyzer = compilationStartContext.Compilation.GetOrCreateTypeByMetadataName(DiagnosticAnalyzerCorrectnessAnalyzer.DiagnosticAnalyzerTypeFullName);
6767
if (diagnosticAnalyzer == null)
6868
{
6969
// Does not contain any diagnostic analyzers.

src/Microsoft.CodeAnalysis.Analyzers/Core/MetaAnalyzers/DiagnosticAnalyzerAttributeAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ protected override void AnalyzeDiagnosticAnalyzer(SymbolAnalysisContext symbolCo
133133
// then the analyzer is pretty likely a language-agnostic analyzer.
134134
Compilation compilation = symbolContext.Compilation;
135135
string compilationTypeNameToCheck = supportsCSharp ? CSharpCompilationFullName : BasicCompilationFullName;
136-
INamedTypeSymbol compilationType = compilation.GetTypeByMetadataName(compilationTypeNameToCheck);
136+
INamedTypeSymbol compilationType = compilation.GetOrCreateTypeByMetadataName(compilationTypeNameToCheck);
137137
if (compilationType == null)
138138
{
139139
string missingLanguage = supportsCSharp ? LanguageNames.VisualBasic : LanguageNames.CSharp;

src/Microsoft.CodeAnalysis.Analyzers/Core/MetaAnalyzers/DiagnosticAnalyzerCorrectnessAnalyzer.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
22

3+
using Analyzer.Utilities.Extensions;
34
using Microsoft.CodeAnalysis.Diagnostics;
45

56
namespace Microsoft.CodeAnalysis.Analyzers.MetaAnalyzers
@@ -53,8 +54,8 @@ public override void Initialize(AnalysisContext context)
5354

5455
context.RegisterCompilationStartAction(compilationContext =>
5556
{
56-
INamedTypeSymbol diagnosticAnalyzer = compilationContext.Compilation.GetTypeByMetadataName(DiagnosticAnalyzerTypeFullName);
57-
INamedTypeSymbol diagnosticAnalyzerAttribute = compilationContext.Compilation.GetTypeByMetadataName(DiagnosticAnalyzerAttributeFullName);
57+
INamedTypeSymbol diagnosticAnalyzer = compilationContext.Compilation.GetOrCreateTypeByMetadataName(DiagnosticAnalyzerTypeFullName);
58+
INamedTypeSymbol diagnosticAnalyzerAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(DiagnosticAnalyzerAttributeFullName);
5859

5960
if (diagnosticAnalyzer == null || diagnosticAnalyzerAttribute == null)
6061
{

src/Microsoft.CodeAnalysis.Analyzers/Core/MetaAnalyzers/DiagnosticAnalyzerFieldsAnalyzer.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,19 @@ protected override DiagnosticAnalyzerSymbolAnalyzer GetDiagnosticAnalyzerSymbolA
4848
{
4949
Compilation compilation = compilationContext.Compilation;
5050

51-
INamedTypeSymbol compilationType = compilation.GetTypeByMetadataName(s_compilationTypeFullName);
51+
INamedTypeSymbol compilationType = compilation.GetOrCreateTypeByMetadataName(s_compilationTypeFullName);
5252
if (compilationType == null)
5353
{
5454
return null;
5555
}
5656

57-
INamedTypeSymbol symbolType = compilation.GetTypeByMetadataName(s_symbolTypeFullName);
57+
INamedTypeSymbol symbolType = compilation.GetOrCreateTypeByMetadataName(s_symbolTypeFullName);
5858
if (symbolType == null)
5959
{
6060
return null;
6161
}
6262

63-
INamedTypeSymbol operationType = compilation.GetTypeByMetadataName(s_operationTypeFullName);
63+
INamedTypeSymbol operationType = compilation.GetOrCreateTypeByMetadataName(s_operationTypeFullName);
6464
if (operationType == null)
6565
{
6666
return null;

0 commit comments

Comments
 (0)