Skip to content

ArgumentOutOfRangeException from CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer in AspNetCore solution  #36715

@Pilchie

Description

@Pilchie

Version Used:
16.2 Preview 2

Steps to Reproduce:

  1. Clone https://github.com/aspnet/AspNetCore and install dependencies
  2. Enable full solution analysis.
  3. Run restore.cmd
  4. Open src\MusicStore\MusicStore.sln
  5. Wait

Expected Behavior:
No AD0001 failure

Actual Behavior:

Severity    Code    Description Project File    Line    Suppression State   Detail Description
Error   AD0001  Analyzer 'Microsoft.CodeAnalysis.CSharp.RemoveUnusedParametersAndValues.CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer' threw an exception of type 'System.ArgumentOutOfRangeException' with message 'Specified argument was out of the range of valid values.
Parameter name: localFunction'. Microsoft.AspNetCore.Mvc.RazorPages     1   Active  Analyzer 'Microsoft.CodeAnalysis.CSharp.RemoveUnusedParametersAndValues.CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer' threw the following exception:
'Exception occurred with following context:
Compilation: Microsoft.AspNetCore.Mvc.RazorPages
ISymbol: ApplyConventions (Method)
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: localFunction
   at Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphExtensions.GetLocalFunctionControlFlowGraphInScope(ControlFlowGraph controlFlowGraph, IMethodSymbol localFunction, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.FlowAnalysis.SymbolUsageAnalysis.SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.AddDescendantOperationsInRange(ControlFlowGraph cfg, Int32 firstBlockOrdinal, Int32 lastBlockOrdinal, PooledHashSet`1 operationsBuilder, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.FlowAnalysis.SymbolUsageAnalysis.SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.GetOrCreateSymbolWritesInBlockRange(Int32 firstBlockOrdinal, Int32 lastBlockOrdinal, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.FlowAnalysis.SymbolUsageAnalysis.SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.HandleCatchOrFilterOrFinallyInitialization(BasicBlock basicBlock, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.FlowAnalysis.SymbolUsageAnalysis.SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.GetOrCreateBlockAnalysisData(BasicBlock basicBlock, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.FlowAnalysis.SymbolUsageAnalysis.SymbolUsageAnalysis.DataFlowAnalyzer.SetCurrentAnalysisData(BasicBlock basicBlock, BasicBlockAnalysisData data, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.FlowAnalysis.CustomDataFlowAnalysis`1.RunCore(ImmutableArray`1 blocks, DataFlowAnalyzer`1 analyzer, Int32 firstBlockOrdinal, Int32 lastBlockOrdinal, TBlockAnalysisData initialAnalysisData, ArrayBuilder`1 unreachableBlocksToVisit, SortedSet`1 outOfRangeBlocksToVisit, PooledDictionary`2 continueDispatchAfterFinally, PooledHashSet`1 dispatchedExceptionsFromRegions, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.FlowAnalysis.CustomDataFlowAnalysis`1.<RunCore>g__StepThroughSingleFinally|1_2(ControlFlowRegion finally, TBlockAnalysisData& currentAnalysisData, <>c__DisplayClass1_0& )
   at Microsoft.CodeAnalysis.FlowAnalysis.CustomDataFlowAnalysis`1.<RunCore>g__StepThroughFinally|1_1(ControlFlowRegion region, Int32 destinationOrdinal, TBlockAnalysisData& currentAnalysisData, <>c__DisplayClass1_0& )
   at Microsoft.CodeAnalysis.FlowAnalysis.CustomDataFlowAnalysis`1.<RunCore>g__FollowBranch|1_0(BasicBlock current, ControlFlowBranch branch, TBlockAnalysisData currentAnalsisData, <>c__DisplayClass1_0& )
   at Microsoft.CodeAnalysis.FlowAnalysis.CustomDataFlowAnalysis`1.RunCore(ImmutableArray`1 blocks, DataFlowAnalyzer`1 analyzer, Int32 firstBlockOrdinal, Int32 lastBlockOrdinal, TBlockAnalysisData initialAnalysisData, ArrayBuilder`1 unreachableBlocksToVisit, SortedSet`1 outOfRangeBlocksToVisit, PooledDictionary`2 continueDispatchAfterFinally, PooledHashSet`1 dispatchedExceptionsFromRegions, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.FlowAnalysis.CustomDataFlowAnalysis`1.Run(ControlFlowGraph controlFlowGraph, DataFlowAnalyzer`1 analyzer, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.FlowAnalysis.SymbolUsageAnalysis.SymbolUsageAnalysis.DataFlowAnalyzer.RunAnalysis(ControlFlowGraph cfg, ISymbol owningSymbol, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.RemoveUnusedParametersAndValues.AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.AnalyzeUnusedValueAssignments(OperationBlockAnalysisContext context, Boolean isComputingUnusedParams, PooledHashSet`1 symbolUsageResultsBuilder, Boolean& hasBlockWithAllUsedSymbolWrites)
   at Microsoft.CodeAnalysis.RemoveUnusedParametersAndValues.AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.AnalyzeOperationBlockEnd(OperationBlockAnalysisContext context)
   at Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.<>c__55`2.<ExecuteBlockActions>b__55_1(ValueTuple`2 data)
   at Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.ExecuteAndCatchIfThrows_NoLock[TArg](DiagnosticAnalyzer analyzer, Action`1 analyze, TArg argument, Nullable`1 info)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions