Looks like bug Roslyn, but it compiles locally. (.NET 6 SDK)
Maybe something with Analyzers (it should emit warning CS0168: The variable 'oce' is declared but never used).
using System;
using System.Threading.Tasks;
[assembly: SharpLab.Runtime.NoILRewriting]
// bool catchEx = true;
try { await default(ValueTask); }
// ↓↓↓ delete this name
catch (OperationCanceledException oce) when (
false is var catchEx &&
( (Func<bool>) (() => {
// ↓↓↓ or this line
catchEx.ToString();
return false; }) )()
)
{ }
//catch (Exception) when (catchEx) { }
Stack trace
System.InvalidOperationException: Unexpected value 'Dup' of type 'Microsoft.CodeAnalysis.CSharp.BoundKind'
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitCatchBlock(BoundCatchBlock catchBlock) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 1034
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitTryStatement(BoundTryStatement statement, Boolean emitCatchesOnly) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 838
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(ImmutableArray`1 statements) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 665
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(BoundBlock block) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 632
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(ImmutableArray`1 statements) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 665
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(BoundBlock block) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 632
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(ImmutableArray`1 statements) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 665
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(BoundBlock block) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 632
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitTryStatement(BoundTryStatement statement, Boolean emitCatchesOnly) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 823
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(ImmutableArray`1 statements) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 665
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(BoundBlock block) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 632
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatementAndCountInstructions(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 121
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitSequencePointStatement(BoundSequencePoint node) in /_/src/Compilers/CSharp/Portable/CodeGen/CodeGenerator.cs:line 366
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(ImmutableArray`1 statements) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 665
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(BoundBlock block) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 632
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.GenerateImpl() in /_/src/Compilers/CSharp/Portable/CodeGen/CodeGenerator.cs:line 305
at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.Generate(Int32& asyncCatchHandlerOffset, ImmutableArray`1& asyncYieldPoints, ImmutableArray`1& asyncResumePoints, Boolean& hasStackAlloc) in /_/src/Compilers/CSharp/Portable/CodeGen/CodeGenerator.cs:line 223
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.GenerateMethodBody(PEModuleBuilder moduleBuilder, MethodSymbol method, Int32 methodOrdinal, BoundStatement block, ImmutableArray`1 lambdaDebugInfo, ImmutableArray`1 closureDebugInfo, ImmutableArray`1 stateMachineStateDebugInfos, StateMachineTypeSymbol stateMachineTypeOpt, VariableSlotAllocator variableSlotAllocatorOpt, BindingDiagnosticBag diagnostics, DebugDocumentProvider debugDocumentProvider, ImportChain importChainOpt, Boolean emittingPdb, Boolean emitTestCoverageData, ImmutableArray`1 dynamicAnalysisSpans, AsyncForwardEntryPoint entryPointOpt) in /_/src/Compilers/CSharp/Portable/Compiler/MethodCompiler.cs:line 1641
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileSynthesizedMethods(TypeCompilationState compilationState) in /_/src/Compilers/CSharp/Portable/Compiler/MethodCompiler.cs:line 754
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType) in /_/src/Compilers/CSharp/Portable/Compiler/MethodCompiler.cs:line 653
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.b__0() in /_/src/Compilers/CSharp/Portable/Compiler/MethodCompiler.cs:line 430
at Roslyn.Utilities.UICultureUtilities.<>c__DisplayClass5_0.b__0() in /_/src/Compilers/Core/Portable/InternalUtilities/UICultureUtilities.cs:line 141
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.WaitForWorkers() in /_/src/Compilers/CSharp/Portable/Compiler/MethodCompiler.cs:line 335
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethodBodies(CSharpCompilation compilation, PEModuleBuilder moduleBeingBuiltOpt, Boolean emittingPdb, Boolean emitTestCoverageData, Boolean hasDeclarationErrors, Boolean emitMethodBodies, BindingDiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken) in /_/src/Compilers/CSharp/Portable/Compiler/MethodCompiler.cs:line 129
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CompileMethods(CommonPEModuleBuilder moduleBuilder, Boolean emittingPdb, Boolean emitMetadataOnly, Boolean emitTestCoverageData, DiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken) in /_/src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs:line 3253
at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream metadataPEStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, RebuildData rebuildData, CompilationTestData testData, CancellationToken cancellationToken) in /_/src/Compilers/Core/Portable/Compilation/Compilation.cs:line 2900
at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, Stream metadataPEStream, RebuildData rebuildData, CancellationToken cancellationToken) in /_/src/Compilers/Core/Portable/Compilation/Compilation.cs:line 2767
at SharpLab.Server.Compilation.Compiler.TryCompileToStreamAsync(MemoryStream assemblyStream, MemoryStream symbolStream, IWorkSession session, IList`1 diagnostics, CancellationToken cancellationToken) in D:\a\SharpLab\SharpLab\!roslyn-branches\dotnet-main\sharplab\source\Server\Compilation\Compiler.cs:line 52
at SharpLab.Server.MirrorSharp.SlowUpdate.ProcessAsync(IWorkSession session, IList`1 diagnostics, CancellationToken cancellationToken) in D:\a\SharpLab\SharpLab\!roslyn-branches\dotnet-main\sharplab\source\Server\MirrorSharp\SlowUpdate.cs:line 139
at MirrorSharp.Internal.Handlers.SlowUpdateHandler.ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) in D:\a\SharpLab\SharpLab\!roslyn-branches\dotnet-main\sharplab\source\#external\mirrorsharp\Common\Internal\Handlers\SlowUpdateHandler.cs:line 39
at MirrorSharp.Internal.Connection.ReceiveAndProcessInternalAsync(CancellationToken cancellationToken) in D:\a\SharpLab\SharpLab\!roslyn-branches\dotnet-main\sharplab\source\#external\mirrorsharp\Common\Internal\Connection.cs:line 118
at MirrorSharp.Internal.Connection.ReceiveAndProcessAsync(CancellationToken cancellationToken) in D:\a\SharpLab\SharpLab\!roslyn-branches\dotnet-main\sharplab\source\#external\mirrorsharp\Common\Internal\Connection.cs:line 73
Looks like bug Roslyn, but it compiles locally. (.NET 6 SDK) Maybe something with Analyzers (it should emit
warning CS0168: The variable 'oce' is declared but never used
).Stack trace
System.InvalidOperationException: Unexpected value 'Dup' of type 'Microsoft.CodeAnalysis.CSharp.BoundKind' at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitCatchBlock(BoundCatchBlock catchBlock) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 1034 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitTryStatement(BoundTryStatement statement, Boolean emitCatchesOnly) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 838 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(ImmutableArray`1 statements) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 665 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(BoundBlock block) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 632 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(ImmutableArray`1 statements) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 665 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(BoundBlock block) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 632 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(ImmutableArray`1 statements) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 665 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(BoundBlock block) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 632 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitTryStatement(BoundTryStatement statement, Boolean emitCatchesOnly) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 823 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(ImmutableArray`1 statements) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 665 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(BoundBlock block) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 632 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatementAndCountInstructions(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 121 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitSequencePointStatement(BoundSequencePoint node) in /_/src/Compilers/CSharp/Portable/CodeGen/CodeGenerator.cs:line 366 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(ImmutableArray`1 statements) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 665 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(BoundBlock block) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 632 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(BoundStatement statement) in /_/src/Compilers/CSharp/Portable/CodeGen/EmitStatement.cs:line 99 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.GenerateImpl() in /_/src/Compilers/CSharp/Portable/CodeGen/CodeGenerator.cs:line 305 at Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.Generate(Int32& asyncCatchHandlerOffset, ImmutableArray`1& asyncYieldPoints, ImmutableArray`1& asyncResumePoints, Boolean& hasStackAlloc) in /_/src/Compilers/CSharp/Portable/CodeGen/CodeGenerator.cs:line 223 at Microsoft.CodeAnalysis.CSharp.MethodCompiler.GenerateMethodBody(PEModuleBuilder moduleBuilder, MethodSymbol method, Int32 methodOrdinal, BoundStatement block, ImmutableArray`1 lambdaDebugInfo, ImmutableArray`1 closureDebugInfo, ImmutableArray`1 stateMachineStateDebugInfos, StateMachineTypeSymbol stateMachineTypeOpt, VariableSlotAllocator variableSlotAllocatorOpt, BindingDiagnosticBag diagnostics, DebugDocumentProvider debugDocumentProvider, ImportChain importChainOpt, Boolean emittingPdb, Boolean emitTestCoverageData, ImmutableArray`1 dynamicAnalysisSpans, AsyncForwardEntryPoint entryPointOpt) in /_/src/Compilers/CSharp/Portable/Compiler/MethodCompiler.cs:line 1641 at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileSynthesizedMethods(TypeCompilationState compilationState) in /_/src/Compilers/CSharp/Portable/Compiler/MethodCompiler.cs:line 754 at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType) in /_/src/Compilers/CSharp/Portable/Compiler/MethodCompiler.cs:line 653 at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.