Version Used:
.NET SDK (reflecting any global.json):
Version: 5.0.201
Commit: a09bd5c86c
Runtime Environment:
OS Name: Windows
OS Version: 10.0.18363
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\5.0.201\
Host (useful for support):
Version: 5.0.4
Commit: f27d337295
.NET SDKs installed:
3.1.101 [C:\Program Files\dotnet\sdk]
5.0.201 [C:\Program Files\dotnet\sdk]
Steps to Reproduce:
- Write async method which will try to assign ref-return with switch expression that have await in branch
- Build in debug mode
Note: Also works with ref indexers (ref int this[x] => ...)
using System.Threading.Tasks;
namespace RoslynCrush
{
class Program
{
static async Task Main(string[] args)
{
GetRef() = 3 switch
{
3 => await Task.FromResult(5),
_ => 5,
};
}
static ref int GetRef() => ref value;
static int value = 0;
}
}
Expected Behavior:
error CS8178: 'await' cannot be used in an expression containing a call to 'Program.GetRef()' because it returns by reference should be raised
Actual Behavior:
Program crushes with System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Syntax.SwitchExpressionSyntax' to type 'Microsoft.CodeAnalysis.CSharp.Syntax.AwaitExpressionSyntax'.
stacktrace
Application: csc.exe
Framework Version: v4.0.30319
Description: The application requested process termination through System.Environment.FailFast(string message).
Message: System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Syntax.SwitchExpressionSyntax' to type 'Microsoft.CodeAnalysis.CSharp.Syntax.AwaitExpressionSyntax'.
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.HoistRefInitialization(SynthesizedLocal local, BoundAssignmentOperator node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.VisitExpressionWithoutStackGuard(BoundExpression node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(BoundExpression node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Int32& recursionDepth, BoundExpression node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.VisitExpressionStatement(BoundExpressionStatement node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray1 list) at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.<>c__DisplayClass41_0.<VisitBlock>b__0() at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray1 locals, Func1 wrapped) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.VisitSequencePoint(BoundSequencePoint node) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray1 list)
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray1 locals, Func1 wrapped)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.VisitTryStatement(BoundTryStatement node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray1 list) at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.<>c__DisplayClass41_0.<VisitBlock>b__0() at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray1 locals, Func1 wrapped) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray1 list)
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray1 locals, Func1 wrapped)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray1 list) at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.<>c__DisplayClass41_0.<VisitBlock>b__0() at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray1 locals, Func1 wrapped) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.VisitBody(BoundStatement body) at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.GenerateMoveNext(BoundStatement body, MethodSymbol moveNextMethod) at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.GenerateMoveNext(SynthesizedImplementationMethod moveNextMethod) at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.GenerateMethodImplementations() at Microsoft.CodeAnalysis.CSharp.StateMachineRewriter.Rewrite() at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.Rewrite(BoundStatement bodyWithAwaitLifted, MethodSymbol method, Int32 methodOrdinal, VariableSlotAllocator slotAllocatorOpt, TypeCompilationState compilationState, DiagnosticBag diagnostics, AsyncStateMachine& stateMachineType) at Microsoft.CodeAnalysis.CSharp.MethodCompiler.LowerBodyOrInitializer(MethodSymbol method, Int32 methodOrdinal, BoundStatement body, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState, Boolean instrumentForDynamicAnalysis, DebugDocumentProvider debugDocumentProvider, ImmutableArray1& dynamicAnalysisSpans, DiagnosticBag diagnostics, VariableSlotAllocator& lazyVariableSlotAllocator, ArrayBuilder1 lambdaDebugInfoBuilder, ArrayBuilder1 closureDebugInfoBuilder, StateMachineTypeSymbol& stateMachineTypeOpt)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass22_0.b__0()
Stack:
at System.Environment.FailFast(System.String, System.Exception)
at Microsoft.CodeAnalysis.FailFast.OnFatalException(System.Exception)
at Microsoft.CodeAnalysis.FatalError.ReportAndPropagateUnlessCanceled(System.Exception)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass22_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.HoistRefInitialization(Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedLocal, Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.VisitExpressionWithoutStackGuard(Microsoft.CodeAnalysis.CSharp.BoundExpression)
at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundExpression)
at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Int32 ByRef, Microsoft.CodeAnalysis.CSharp.BoundExpression)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.VisitExpressionStatement(Microsoft.CodeAnalysis.CSharp.BoundExpressionStatement)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter+<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.VisitSequencePoint(Microsoft.CodeAnalysis.CSharp.BoundSequencePoint)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter+<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.VisitTryStatement(Microsoft.CodeAnalysis.CSharp.BoundTryStatement)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter+<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter+<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter+<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.VisitBody(Microsoft.CodeAnalysis.CSharp.BoundStatement)
at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.GenerateMoveNext(Microsoft.CodeAnalysis.CSharp.BoundStatement, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol)
at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.GenerateMoveNext(Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedImplementationMethod)
at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.GenerateMethodImplementations()
at Microsoft.CodeAnalysis.CSharp.StateMachineRewriter.Rewrite()
at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.Rewrite(Microsoft.CodeAnalysis.CSharp.BoundStatement, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator, Microsoft.CodeAnalysis.CSharp.TypeCompilationState, Microsoft.CodeAnalysis.DiagnosticBag, Microsoft.CodeAnalysis.CSharp.AsyncStateMachine ByRef)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.LowerBodyOrInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, Microsoft.CodeAnalysis.CSharp.BoundStatement, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields, Microsoft.CodeAnalysis.CSharp.TypeCompilationState, Boolean, Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider, System.Collections.Immutable.ImmutableArray1<Microsoft.CodeAnalysis.CodeGen.SourceSpan> ByRef, Microsoft.CodeAnalysis.DiagnosticBag, Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator ByRef, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1<Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo>, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1<Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo>, Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol ByRef)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, ProcessedFieldInitializers ByRef, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields, Microsoft.CodeAnalysis.CSharp.TypeCompilationState)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass22_0.b__0()
at Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass5_0.b__0()
at System.Threading.Tasks.Task.Execute()
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean)
at System.Threading.ThreadPoolWorkQueue.Dispatch()
Version Used:
Steps to Reproduce:
Note: Also works with ref indexers (
ref int this[x] => ...)Expected Behavior:
error CS8178: 'await' cannot be used in an expression containing a call to 'Program.GetRef()' because it returns by referenceshould be raisedActual Behavior:
Program crushes with
System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Syntax.SwitchExpressionSyntax' to type 'Microsoft.CodeAnalysis.CSharp.Syntax.AwaitExpressionSyntax'.stacktrace
Application: csc.exe
Framework Version: v4.0.30319
Description: The application requested process termination through System.Environment.FailFast(string message).
Message: System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Syntax.SwitchExpressionSyntax' to type 'Microsoft.CodeAnalysis.CSharp.Syntax.AwaitExpressionSyntax'.
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.HoistRefInitialization(SynthesizedLocal local, BoundAssignmentOperator node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.VisitExpressionWithoutStackGuard(BoundExpression node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(BoundExpression node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Int32& recursionDepth, BoundExpression node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.VisitExpressionStatement(BoundExpressionStatement node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray
1 list) at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.<>c__DisplayClass41_0.<VisitBlock>b__0() at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray1 locals, Func1 wrapped) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.VisitSequencePoint(BoundSequencePoint node) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray1 list)at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray
1 locals, Func1 wrapped)at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.VisitTryStatement(BoundTryStatement node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray
1 list) at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.<>c__DisplayClass41_0.<VisitBlock>b__0() at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray1 locals, Func1 wrapped) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray1 list)at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray
1 locals, Func1 wrapped)at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray
1 list) at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.<>c__DisplayClass41_0.<VisitBlock>b__0() at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray1 locals, Func1 wrapped) at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node) at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.VisitBody(BoundStatement body) at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.GenerateMoveNext(BoundStatement body, MethodSymbol moveNextMethod) at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.GenerateMoveNext(SynthesizedImplementationMethod moveNextMethod) at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.GenerateMethodImplementations() at Microsoft.CodeAnalysis.CSharp.StateMachineRewriter.Rewrite() at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.Rewrite(BoundStatement bodyWithAwaitLifted, MethodSymbol method, Int32 methodOrdinal, VariableSlotAllocator slotAllocatorOpt, TypeCompilationState compilationState, DiagnosticBag diagnostics, AsyncStateMachine& stateMachineType) at Microsoft.CodeAnalysis.CSharp.MethodCompiler.LowerBodyOrInitializer(MethodSymbol method, Int32 methodOrdinal, BoundStatement body, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState, Boolean instrumentForDynamicAnalysis, DebugDocumentProvider debugDocumentProvider, ImmutableArray1& dynamicAnalysisSpans, DiagnosticBag diagnostics, VariableSlotAllocator& lazyVariableSlotAllocator, ArrayBuilder1 lambdaDebugInfoBuilder, ArrayBuilder1 closureDebugInfoBuilder, StateMachineTypeSymbol& stateMachineTypeOpt)at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass22_0.b__0()
Stack:
at System.Environment.FailFast(System.String, System.Exception)
at Microsoft.CodeAnalysis.FailFast.OnFatalException(System.Exception)
at Microsoft.CodeAnalysis.FatalError.ReportAndPropagateUnlessCanceled(System.Exception)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass22_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.HoistRefInitialization(Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedLocal, Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.VisitExpressionWithoutStackGuard(Microsoft.CodeAnalysis.CSharp.BoundExpression)
at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundExpression)
at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Int32 ByRef, Microsoft.CodeAnalysis.CSharp.BoundExpression)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.VisitExpressionStatement(Microsoft.CodeAnalysis.CSharp.BoundExpressionStatement)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter+<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray
1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.VisitSequencePoint(Microsoft.CodeAnalysis.CSharp.BoundSequencePoint)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter+<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray
1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.VisitTryStatement(Microsoft.CodeAnalysis.CSharp.BoundTryStatement)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter+<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray
1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter+<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray
1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter+<>c__DisplayClass41_0.b__0()
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray
1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriterWithStackGuard.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.VisitBody(Microsoft.CodeAnalysis.CSharp.BoundStatement)
at Microsoft.CodeAnalysis.CSharp.AsyncMethodToStateMachineRewriter.GenerateMoveNext(Microsoft.CodeAnalysis.CSharp.BoundStatement, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol)
at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.GenerateMoveNext(Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedImplementationMethod)
at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.GenerateMethodImplementations()
at Microsoft.CodeAnalysis.CSharp.StateMachineRewriter.Rewrite()
at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.Rewrite(Microsoft.CodeAnalysis.CSharp.BoundStatement, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator, Microsoft.CodeAnalysis.CSharp.TypeCompilationState, Microsoft.CodeAnalysis.DiagnosticBag, Microsoft.CodeAnalysis.CSharp.AsyncStateMachine ByRef)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.LowerBodyOrInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, Microsoft.CodeAnalysis.CSharp.BoundStatement, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields, Microsoft.CodeAnalysis.CSharp.TypeCompilationState, Boolean, Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider, System.Collections.Immutable.ImmutableArray
1<Microsoft.CodeAnalysis.CodeGen.SourceSpan> ByRef, Microsoft.CodeAnalysis.DiagnosticBag, Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator ByRef, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1<Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo>, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1<Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo>, Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol ByRef)at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32, ProcessedFieldInitializers ByRef, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields, Microsoft.CodeAnalysis.CSharp.TypeCompilationState)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass22_0.b__0()
at Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass5_0.b__0()
at System.Threading.Tasks.Task.Execute()
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean)
at System.Threading.ThreadPoolWorkQueue.Dispatch()