Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unreachable exception with async-foreach #27651

Closed
jcouv opened this issue Jun 8, 2018 · 1 comment
Closed

Unreachable exception with async-foreach #27651

jcouv opened this issue Jun 8, 2018 · 1 comment

Comments

@jcouv
Copy link
Member

jcouv commented Jun 8, 2018

Unexpected value 'ForEachStatement' of type 'Microsoft.CodeAnalysis.CSharp.BoundKind'

   at Microsoft.CodeAnalysis.CSharp.ExitPointsWalker.LeaveRegion() in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\ExitPointsWalker.cs:line 149
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.VisitAlways(BoundNode node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 290
   at Microsoft.CodeAnalysis.CSharp.AbstractRegionControlFlowPass.Visit(BoundNode node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractRegionControlFlowPass.cs:line 27
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.VisitStatement(BoundStatement statement) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 622
   at Microsoft.CodeAnalysis.CSharp.ControlFlowPass.VisitStatement(BoundStatement statement) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\ControlFlowPass.cs:line 230
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.VisitStatements(ImmutableArray`1 statements) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 1178
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.VisitBlock(BoundBlock node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 1170
   at Microsoft.CodeAnalysis.CSharp.BoundBlock.Accept(BoundTreeVisitor visitor) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 2372
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs:line 147
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.VisitWithStackGuard(BoundNode node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 301
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.VisitAlways(BoundNode node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 290
   at Microsoft.CodeAnalysis.CSharp.AbstractRegionControlFlowPass.Visit(BoundNode node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractRegionControlFlowPass.cs:line 27
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.VisitMethodBodies(BoundBlock blockBody, BoundBlock expressionBody) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 2815
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.VisitNonConstructorMethodBody(BoundNonConstructorMethodBody node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 2785
   at Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody.Accept(BoundTreeVisitor visitor) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs:line 6361
   at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs:line 147
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.VisitWithStackGuard(BoundNode node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 301
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.VisitAlways(BoundNode node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 290
   at Microsoft.CodeAnalysis.CSharp.AbstractRegionControlFlowPass.Visit(BoundNode node) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractRegionControlFlowPass.cs:line 27
   at Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1.Scan(Boolean& badRegion) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\PreciseAbstractFlowPass.cs:line 370
   at Microsoft.CodeAnalysis.CSharp.ControlFlowPass.Scan(Boolean& badRegion) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\ControlFlowPass.cs:line 117
   at Microsoft.CodeAnalysis.CSharp.ExitPointsWalker.Analyze(Boolean& badRegion) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\ExitPointsWalker.cs:line 60
   at Microsoft.CodeAnalysis.CSharp.ExitPointsWalker.Analyze(CSharpCompilation compilation, Symbol member, BoundNode node, BoundNode firstInRegion, BoundNode lastInRegion) in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\ExitPointsWalker.cs:line 46
   at Microsoft.CodeAnalysis.CSharp.CSharpControlFlowAnalysis.get_ExitPoints() in D:\repos\roslyn3\src\Compilers\CSharp\Portable\FlowAnalysis\ControlFlowAnalysis.cs:line 59
   at Microsoft.CodeAnalysis.ExtractMethod.SelectionValidator.IsFinalSpanSemanticallyValidSpan(SemanticModel semanticModel, TextSpan textSpan, Tuple`2 range, CancellationToken cancellationToken) in D:\repos\roslyn3\src\Features\Core\Portable\ExtractMethod\SelectionValidator.cs:line 63
   at Microsoft.CodeAnalysis.CSharp.ExtractMethod.CSharpSelectionValidator.<GetValidSelectionAsync>d__1.MoveNext() in D:\repos\roslyn3\src\Features\CSharp\Portable\ExtractMethod\CSharpSelectionValidator.cs:line 67
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at Microsoft.CodeAnalysis.ExtractMethod.AbstractExtractMethodService`3.<ExtractMethodAsync>d__2.MoveNext() in D:\repos\roslyn3\src\Features\Core\Portable\ExtractMethod\AbstractExtractMethodService.cs:line 42
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at Microsoft.CodeAnalysis.CodeRefactorings.ExtractMethod.ExtractMethodCodeRefactoringProvider.<GetCodeActionAsync>d__1.MoveNext() in D:\repos\roslyn3\src\Features\Core\Portable\CodeRefactorings\ExtractMethod\AbstractExtractMethodCodeRefactoringProvider.cs:line 61
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at Microsoft.CodeAnalysis.CodeRefactorings.ExtractMethod.ExtractMethodCodeRefactoringProvider.<ComputeRefactoringsAsync>d__0.MoveNext() in D:\repos\roslyn3\src\Features\Core\Portable\CodeRefactorings\ExtractMethod\AbstractExtractMethodCodeRefactoringProvider.cs:line 47
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
   at Microsoft.CodeAnalysis.CodeRefactorings.CodeRefactoringService.<GetRefactoringFromProviderAsync>d__8.MoveNext() in D:\repos\roslyn3\src\Features\Core\Portable\CodeRefactorings\CodeRefactoringService.cs:line 143

I've hit this in the IDE by selecting some code that includes an async-foreach.

@jcouv jcouv added this to the 16.0 milestone Jun 8, 2018
@jcouv jcouv self-assigned this Jun 8, 2018
@jcouv jcouv added the 4 - In Review A fix for the issue is submitted for review. label Jun 28, 2018
@jaredpar jaredpar added the Bug label Aug 30, 2018
@jcouv
Copy link
Member Author

jcouv commented Oct 8, 2018

Fixed by #28218

@jcouv jcouv closed this as completed Oct 8, 2018
@gafter gafter removed 4 - In Review A fix for the issue is submitted for review. labels Dec 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants