Skip to content
This repository was archived by the owner on Oct 4, 2021. It is now read-only.
This repository was archived by the owner on Oct 4, 2021. It is now read-only.

Slow RefactoringEssentials analyzers #4334

@Therzok

Description

@Therzok

FieldCanBeMadeReadOnly - dotnet/roslyn#19067

  0.94%   <Analyze>b__0  •  1,199 ms  •  RefactoringEssentials.CSharp.Diagnostics.FieldCanBeMadeReadOnlyAnalyzer+<>c__DisplayClass4_0.<Analyze>b__0(SyntaxTreeAnalysisContext)
    0.87%   GetSymbolInfo  •  1,103 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpExtensions.GetSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)
  ► 0.06%   IsAltered  •  74 ms  •  RefactoringEssentials.CSharp.Diagnostics.FieldCanBeMadeReadOnlyAnalyzer.IsAltered(SemanticModel, MemberDeclarationSyntax, ISymbol, CancellationToken, out Boolean)
  ► 0.00%   MoveNext  •  4.6 ms  •  System.Linq.Enumerable+<SelectManyIterator>d__17`2.MoveNext()
    0.00%   [Unknown]  •  3.6 ms
    0.00%   IsWrittenTo  •  2.8 ms  •  RefactoringEssentials.ExpressionSyntaxExtensions.IsWrittenTo(ExpressionSyntax)
    0.00%   GetConstantValue  •  2.8 ms  •  Microsoft.CodeAnalysis.SemanticModel.GetConstantValue(SyntaxNode, CancellationToken)
    0.00%   MoveNext  •  1.2 ms  •  System.Linq.Enumerable+<OfTypeIterator>d__93`1.MoveNext()
  ► 0.00%   GetMembersFromAllParts  •  1.0 ms  •  RefactoringEssentials.ClassDeclarationSyntaxExtensions.GetMembersFromAllParts(ClassDeclarationSyntax, SemanticModel)
    0.00%   OfType  •  1.0 ms  •  System.Linq.Enumerable.OfType(IEnumerable)
    0.00%   ThrowIfCancellationRequested  •  0.1 ms  •  System.Threading.CancellationToken.ThrowIfCancellationRequested()
    0.00%   clr.dll  •  0.0000002 ms
  ► 0.00%   GetReturnType  •  0.0000002 ms  •  RefactoringEssentials.SymbolExtensions.GetReturnType(ISymbol)
    0.00%   get_Symbol  •  0.0000002 ms  •  Microsoft.CodeAnalysis.SymbolInfo.get_Symbol()
    0.00%   ReportDiagnostic  •  0.0000002 ms  •  Microsoft.CodeAnalysis.Diagnostics.SyntaxTreeAnalysisContext.ReportDiagnostic(Diagnostic)
    0.00%   GetEnumerator  •  0.0000002 ms  •  System.Linq.Enumerable+<SelectManyIterator>d__17`2.GetEnumerator()

UnusedParameter - Use DFA here?

  0.71%   <Analyze>b__0  •  900 ms  •  RefactoringEssentials.CSharp.Diagnostics.UnusedParameterAnalyzer+<>c__DisplayClass4_0.<Analyze>b__0(SyntaxTreeAnalysisContext)
    0.54%   Visit  •  692 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker.Visit(SyntaxNode)
      0.50%   Accept  •  639 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.IdentifierNameSyntax.Accept(CSharpSyntaxVisitor)
      ► 0.49%   GetSymbolInfo  •  627 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpExtensions.GetSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)
      ► 0.00%   VisitIdentifierName  •  5.5 ms  •  RefactoringEssentials.CSharp.Diagnostics.UnusedParameterAnalyzer+GetDelgateUsagesVisitor.VisitIdentifierName(IdentifierNameSyntax)
      ► 0.00%   DefaultVisit  •  4.0 ms  •  Microsoft.CodeAnalysis.CSharp.LocalBinderFactory.DefaultVisit(SyntaxNode)
        0.00%   clr.dll  •  2.0 ms
      ► 0.00%   VisitIdentifierName  •  1.0 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor.VisitIdentifierName(IdentifierNameSyntax)
    ► 0.01%   Accept  •  13 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax.Accept(CSharpSyntaxVisitor)
      0.01%   [Unknown]  •  7.2 ms
    ► 0.00%   Accept  •  5.0 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  4.8 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.InvocationExpressionSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  2.7 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionStatementSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  2.6 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  2.2 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.ContinueStatementSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  1.9 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  1.7 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  1.6 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  1.5 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.TryStatementSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  1.2 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.CatchClauseSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  1.1 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.AssignmentExpressionSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  1.1 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax.Accept(CSharpSyntaxVisitor)
      0.00%   VisitExpressionStatement  •  1.0 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor.VisitExpressionStatement(ExpressionStatementSyntax)
      0.00%   VisitOmittedArraySizeExpression  •  0.8 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor.VisitOmittedArraySizeExpression(OmittedArraySizeExpressionSyntax)
      0.00%   VisitArgumentList  •  0.7 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor.VisitArgumentList(ArgumentListSyntax)
    ► 0.00%   Accept  •  0.7 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  0.6 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.ReturnStatementSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   VisitForEachStatement  •  0.0000005 ms  •  Microsoft.CodeAnalysis.CSharp.LocalBinderFactory.VisitForEachStatement(ForEachStatementSyntax)
    ► 0.00%   Accept  •  0.0000002 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   Accept  •  0.0000002 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.AccessorDeclarationSyntax.Accept(CSharpSyntaxVisitor)
    ► 0.00%   VisitParenthesizedLambdaExpression  •  0.0000002 ms  •  Microsoft.CodeAnalysis.CSharp.LocalBinderFactory.VisitParenthesizedLambdaExpression(ParenthesizedLambdaExpressionSyntax)
    0.16%   Visit  •  206 ms  •  RefactoringEssentials.CSharp.Diagnostics.UnusedParameterAnalyzer+NodeAnalyzer.Visit(SyntaxNode)
      0.16%   Visit  •  205 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker.Visit(SyntaxNode)
        0.13%   VisitMethodDeclaration  •  162 ms  •  RefactoringEssentials.CSharp.Diagnostics.UnusedParameterAnalyzer+NodeAnalyzer.VisitMethodDeclaration(MethodDeclarationSyntax)
          0.11%   GetSymbolInfo  •  134 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpExtensions.GetSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)
        ► 0.01%   Analyze  •  16 ms  •  RefactoringEssentials.CSharp.Diagnostics.UnusedParameterAnalyzer+NodeAnalyzer.Analyze(SeparatedSyntaxList, IEnumerable, SyntaxKind)
          0.00%   GetDeclaredSymbol  •  5.4 ms  •  Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel.GetDeclaredSymbol(BaseMethodDeclarationSyntax, CancellationToken)
          0.00%   Contains  •  2.0 ms  •  System.Collections.Generic.List`1.Contains(!0)
        ► 0.00%   ExplicitInterfaceImplementations  •  1.2 ms  •  RefactoringEssentials.SymbolExtensions.ExplicitInterfaceImplementations(ISymbol)
          0.00%   FindImplementationForInterfaceMember  •  1.0 ms  •  Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.FindImplementationForInterfaceMember(ISymbol)
          0.00%   [Unknown]  •  0.004 ms
        ► 0.00%   Any  •  0.0000002 ms  •  System.Linq.Enumerable.Any(IEnumerable, Func)
          0.00%   GetEnumerator  •  0.0000002 ms  •  Microsoft.CodeAnalysis.SyntaxTokenList.GetEnumerator()
      ► 0.02%   VisitAnonymousMethodExpression  •  27 ms  •  RefactoringEssentials.CSharp.Diagnostics.UnusedParameterAnalyzer+NodeAnalyzer.VisitAnonymousMethodExpression(AnonymousMethodExpressionSyntax)
      ► 0.00%   VisitConstructorDeclaration  •  2.9 ms  •  RefactoringEssentials.CSharp.Diagnostics.UnusedParameterAnalyzer+NodeAnalyzer.VisitConstructorDeclaration(ConstructorDeclarationSyntax)
      ► 0.00%   VisitBlock  •  0.8 ms  •  RefactoringEssentials.CSharp.Diagnostics.UnusedParameterAnalyzer+NodeAnalyzer.VisitBlock(BlockSyntax)
      0.00%   clr.dll  •  1.0 ms
    0.00%   Contains  •  1.3 ms  •  System.Linq.Enumerable.Contains(IEnumerable, !!0)
    0.00%   [Unknown]  •  0.0000005 ms
  ► 0.00%   [Truncated callstack]  •  0.0000002 ms
  ► 0.00%   IsFromGeneratedCode  •  0.0000002 ms  •  RefactoringEssentials.GeneratedCodeRecognition.IsFromGeneratedCode(SemanticModel, CancellationToken)

ReplaceWithSingleCallToCount - IInvocationOperation to avoid binding?

  0.58%   <Initialize>b__3_0  •  736 ms  •  RefactoringEssentials.CSharp.Diagnostics.ReplaceWithSingleCallToCountAnalyzer+<>c.<Initialize>b__3_0(SyntaxNodeAnalysisContext)
  ► 0.55%   GetSymbolInfo  •  695 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpExtensions.GetSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)
  ► 0.03%   TryGetDiagnostic  •  39 ms  •  RefactoringEssentials.CSharp.Diagnostics.ReplaceWithSingleCallToCountAnalyzer.TryGetDiagnostic(SyntaxNodeAnalysisContext, out Diagnostic)
    0.00%   [Unknown]  •  1.3 ms
    0.00%   HasPredicateVersion  •  0.7 ms  •  RefactoringEssentials.CSharp.Diagnostics.ReplaceWithSingleCallToCountAnalyzer.HasPredicateVersion(IMethodSymbol)

RedundantToStringCall - IInvocationOperation to avoid binding?

  0.44%   AnalyzeInvocationExpression  •  561 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantToStringCallAnalyzer.AnalyzeInvocationExpression(SyntaxNodeAnalysisContext)
    0.39%   CheckFormattingCall  •  499 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantToStringCallAnalyzer.CheckFormattingCall(SyntaxNodeAnalysisContext, InvocationExpressionSyntax, ISymbol)
      0.39%   TryGetFormattingParameters  •  491 ms  •  RefactoringEssentials.FormatStringHelper.TryGetFormattingParameters(SemanticModel, InvocationExpressionSyntax, out ExpressionSyntax, out IList, Func, CancellationToken)
        0.37%   GetSymbolInfoCore  •  470 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel.GetSymbolInfoCore(SyntaxNode, CancellationToken)
      ► 0.01%   Any  •  12 ms  •  System.Linq.Enumerable.Any(IEnumerable, Func)
        0.00%   GetMembers  •  6.0 ms  •  Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol.GetMembers(String)
        0.00%   get_ContainingType  •  1.2 ms  •  Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol.get_ContainingType()
        0.00%   clr.dll  •  0.000001 ms
        0.00%   OfType  •  0.0000007 ms  •  System.Collections.Immutable.ImmutableArray`1.OfType()
      0.00%   clr.dll  •  1.2 ms
      0.00%   get_Name  •  1.0 ms  •  Microsoft.CodeAnalysis.CSharp.Symbol.get_Name()
      0.00%   Add  •  0.0000002 ms  •  System.Collections.Generic.List`1.Add(!0)
  ► 0.03%   CheckAutomaticToStringCallers  •  39 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantToStringCallAnalyzer.CheckAutomaticToStringCallers(SyntaxNodeAnalysisContext, InvocationExpressionSyntax, ISymbol)
  ► 0.01%   CheckTargetedObject  •  16 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantToStringCallAnalyzer.CheckTargetedObject(SyntaxNodeAnalysisContext, InvocationExpressionSyntax, ISymbol)
    0.00%   [Unknown]  •  3.1 ms
    0.00%   clr.dll  •  1.1 ms
    0.00%   get_Expression  •  1.0 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax.get_Expression()

RedundantUnsafeContextAnalyzer - Smarter syntax node action? IOperation? Avoid binding every IdentifierName?

  0.42%   <Initialize>b__1  •  536 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantUnsafeContextAnalyzer+<>c__DisplayClass3_0.<Initialize>b__1(SyntaxTreeAnalysisContext)
    0.42%   Visit  •  536 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker.Visit(SyntaxNode)
      0.42%   VisitClassDeclaration  •  535 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantUnsafeContextAnalyzer+GatherVisitor.VisitClassDeclaration(ClassDeclarationSyntax)
        0.42%   VisitClassDeclaration  •  535 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor.VisitClassDeclaration(ClassDeclarationSyntax)
          0.42%   DefaultVisit  •  535 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker.DefaultVisit(SyntaxNode)
            0.42%   Visit  •  535 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker.Visit(SyntaxNode)
              0.39%   Accept  •  500 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.IdentifierNameSyntax.Accept(CSharpSyntaxVisitor)
              ► 0.37%   GetSymbolInfo  •  465 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpExtensions.GetSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)
              ► 0.03%   VisitIdentifierName  •  32 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantUnsafeContextAnalyzer+GatherVisitor.VisitIdentifierName(IdentifierNameSyntax)
              ► 0.00%   VisitIdentifierName  •  2.9 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor.VisitIdentifierName(IdentifierNameSyntax)
              0.01%   [Unknown]  •  7.0 ms
            ► 0.00%   VisitSimpleLambdaExpression  •  5.9 ms  •  Microsoft.CodeAnalysis.CSharp.LocalBinderFactory.VisitSimpleLambdaExpression(SimpleLambdaExpressionSyntax)
            ► 0.00%   Accept  •  5.1 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax.Accept(CSharpSyntaxVisitor)
            ► 0.00%   Accept  •  3.5 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax.Accept(CSharpSyntaxVisitor)
            ► 0.00%   Accept  •  3.3 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.ObjectCreationExpressionSyntax.Accept(CSharpSyntaxVisitor)
            ► 0.00%   Accept  •  2.2 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax.Accept(CSharpSyntaxVisitor)
              0.00%   Accept  •  1.4 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax.Accept(CSharpSyntaxVisitor)
            ► 0.00%   Accept  •  1.4 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax.Accept(CSharpSyntaxVisitor)
            ► 0.00%   Accept  •  1.0 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.TryStatementSyntax.Accept(CSharpSyntaxVisitor)
            ► 0.00%   Accept  •  1.0 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.LiteralExpressionSyntax.Accept(CSharpSyntaxVisitor)
            ► 0.00%   Accept  •  1.0 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.CatchClauseSyntax.Accept(CSharpSyntaxVisitor)
            ► 0.00%   Accept  •  0.7 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionStatementSyntax.Accept(CSharpSyntaxVisitor)
            ► 0.00%   Accept  •  0.0000002 ms  •  Microsoft.CodeAnalysis.CSharp.Syntax.WhileStatementSyntax.Accept(CSharpSyntaxVisitor)
    0.00%   Contains  •  0.5 ms  •  System.Linq.Enumerable.Contains(IEnumerable, !!0)

RedundantIfElseBlockAnalyzer - Maybe here check if the last statement in the matching if is a jump statement

  0.08%   <Initialize>b__3_0  •  106 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantIfElseBlockAnalyzer+<>c.<Initialize>b__3_0(SyntaxNodeAnalysisContext)
    0.08%   TryGetDiagnostic  •  106 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantIfElseBlockAnalyzer.TryGetDiagnostic(SyntaxNodeAnalysisContext, out Diagnostic)
      0.06%   ElseIsRedundantControlFlow  •  73 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantIfElseBlockAnalyzer.ElseIsRedundantControlFlow(IfStatementSyntax, SyntaxNodeAnalysisContext)
        0.06%   AnalyzeControlFlow  •  73 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpExtensions.AnalyzeControlFlow(SemanticModel, StatementSyntax)
          0.06%   AnalyzeControlFlow  •  73 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel.AnalyzeControlFlow(StatementSyntax)
            0.06%   AnalyzeControlFlow  •  73 ms  •  Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel.AnalyzeControlFlow(StatementSyntax, StatementSyntax)
            ► 0.06%   RegionAnalysisContext  •  73 ms  •  Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel.RegionAnalysisContext(StatementSyntax, StatementSyntax)
              0.00%   clr.dll  •  0.0000002 ms
      0.01%   get_EndPointIsReachable  •  19 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpControlFlowAnalysis.get_EndPointIsReachable()
    ► 0.01%   HasConflictingNames  •  14 ms  •  RefactoringEssentials.CSharp.Diagnostics.RedundantIfElseBlockAnalyzer.HasConflictingNames(SyntaxNodeAnalysisContext, IfStatementSyntax)

FROM HERE ON smaller values:
Local variable hides member - Roslyn implemented one in 15.7 dotnet/roslyn#19067

  0.07%   <Initialize>b__3_0  •  83 ms  •  RefactoringEssentials.CSharp.Diagnostics.LocalVariableHidesMemberAnalyzer+<>c.<Initialize>b__3_0(SyntaxNodeAnalysisContext)
    0.07%   TryGetDiagnostic  •  83 ms  •  RefactoringEssentials.CSharp.Diagnostics.LocalVariableHidesMemberAnalyzer.TryGetDiagnostic(SyntaxNodeAnalysisContext, out Diagnostic)
      0.04%   LookupSymbols  •  56 ms  •  Microsoft.CodeAnalysis.SemanticModel.LookupSymbols(Int32, INamespaceOrTypeSymbol, String, Boolean)
      0.02%   GetDeclaredSymbol  •  25 ms  •  Microsoft.CodeAnalysis.ModelExtensions.GetDeclaredSymbol(SemanticModel, SyntaxNode, CancellationToken)
    ► 0.00%   FirstOrDefault  •  2.9 ms  •  System.Linq.ImmutableArrayExtensions.FirstOrDefault(ImmutableArray, Func)
      0.00%   clr.dll  •  0.0000005 ms

AccessToStaticMemberViaDerivedType

  0.05%   <Initialize>b__3_0  •  69 ms  •  RefactoringEssentials.CSharp.Diagnostics.AccessToStaticMemberViaDerivedTypeAnalyzer+<>c.<Initialize>b__3_0(SyntaxNodeAnalysisContext)
  ► 0.05%   GetSymbolInfo  •  62 ms  •  Microsoft.CodeAnalysis.CSharp.CSharpExtensions.GetSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)
  ► 0.00%   TryGetDiagnostic  •  5.2 ms  •  RefactoringEssentials.CSharp.Diagnostics.AccessToStaticMemberViaDerivedTypeAnalyzer.TryGetDiagnostic(SyntaxNodeAnalysisContext, out Diagnostic)

VS bug #591648

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions