-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Closed
Copy link
Description
Version Used: Compiler version: '4.12.0-3.24473.3 (5ef52ae)'. Language version: latest (13.0).
Steps to Reproduce:
https://godbolt.org/z/eM96s7rKo
https://godbolt.org/z/PG8fcnP8q
Expected Behavior: Error CS8178.
Actual Behavior:
csc crash:
Process terminated. System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Symbols.TypeSubstitutedLocalSymbol' to type 'Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedLocal'.
Full StackTrace
Process terminated. System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Symbols.TypeSubstitutedLocalSymbol' to type 'Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedLocal'.
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.VisitAssignmentOperator(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.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray`1 list)
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node, Boolean removeInstrumentation)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray`1 locals, Func`1 wrapped)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.VisitSequencePoint(BoundSequencePoint 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, Boolean removeInstrumentation)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray`1 locals, Func`1 wrapped)
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.GenerateMethodImplementations()
at Microsoft.CodeAnalysis.CSharp.StateMachineRewriter.Rewrite()
at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.Rewrite(BoundStatement bodyWithAwaitLifted, MethodSymbol method, Int32 methodOrdinal, ArrayBuilder`1 stateMachineStateDebugInfoBuilder, VariableSlotAllocator slotAllocatorOpt, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, AsyncStateMachine& stateMachineType)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileSynthesizedMethods(TypeCompilationState compilationState)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.<CompileNamedTypeAsync>b__0()
at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
at System.Environment.FailFast(System.String, System.Exception)
at Microsoft.CodeAnalysis.FailFast.OnFatalException(System.Exception)
at Microsoft.CodeAnalysis.ErrorReporting.FatalError.Report(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity, Boolean)
at Microsoft.CodeAnalysis.ErrorReporting.FatalError.ReportAndPropagateUnlessCanceled(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass25_0.<CompileNamedTypeAsync>b__0()
at System.Runtime.EH.FindFirstPassHandler(System.Object, UInt32, System.Runtime.StackFrameIterator ByRef, UInt32 ByRef, Byte* ByRef)
at System.Runtime.EH.DispatchEx(System.Runtime.StackFrameIterator ByRef, ExInfo ByRef)
at System.Runtime.EH.RhThrowEx(System.Object, ExInfo ByRef)
at System.Runtime.CompilerServices.CastHelpers.ChkCast_Helper(Void*, System.Object)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.VisitAssignmentOperator(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.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[[System.__Canon, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Collections.Immutable.ImmutableArray`1<System.__Canon>)
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock, Boolean)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func`1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.VisitSequencePoint(Microsoft.CodeAnalysis.CSharp.BoundSequencePoint)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(Microsoft.CodeAnalysis.CSharp.BoundNode)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[[System.__Canon, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Collections.Immutable.ImmutableArray`1<System.__Canon>)
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock, Boolean)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>, System.Func`1<Microsoft.CodeAnalysis.CSharp.BoundStatement>)
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.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.PooledObjects.ArrayBuilder`1<Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo>, Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator, Microsoft.CodeAnalysis.CSharp.TypeCompilationState, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Microsoft.CodeAnalysis.CSharp.AsyncStateMachine ByRef)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileSynthesizedMethods(Microsoft.CodeAnalysis.CSharp.TypeCompilationState)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass25_0.<CompileNamedTypeAsync>b__0()
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread)
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart()
System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Symbols.TypeSubstitutedLocalSymbol' to type 'Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedLocal'.
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.VisitAssignmentOperator(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.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.DoVisitList[T](ImmutableArray`1 list)
at Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter.VisitBlock(BoundBlock node, Boolean removeInstrumentation)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray`1 locals, Func`1 wrapped)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.Visit(BoundNode node)
at Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter.VisitSequencePoint(BoundSequencePoint 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, Boolean removeInstrumentation)
at Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter.PossibleIteratorScope(ImmutableArray`1 locals, Func`1 wrapped)
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.GenerateMethodImplementations()
at Microsoft.CodeAnalysis.CSharp.StateMachineRewriter.Rewrite()
at Microsoft.CodeAnalysis.CSharp.AsyncRewriter.Rewrite(BoundStatement bodyWithAwaitLifted, MethodSymbol method, Int32 methodOrdinal, ArrayBuilder`1 stateMachineStateDebugInfoBuilder, VariableSlotAllocator slotAllocatorOpt, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, AsyncStateMachine& stateMachineType)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileSynthesizedMethods(TypeCompilationState compilationState)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.<CompileNamedTypeAsync>b__0()Program terminated with signal: SIGSEGV
Compiler returned: 139
Looks like affected all .NET version from 6.0 to 9.0