Microsoft.CodeAnalysis.CSharp.EditAndContinue.UnitTests.EditAndContinueTests.OutVar_InSwitchExpression FAILED:
Exception type: 'System.ArgumentException', number: '0', parent: '-1'
Exception message:
An item with the same key has already been added.
Exception stacktrace
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at Microsoft.CodeAnalysis.Emit.EncVariableSlotAllocator..ctor(SymbolMatcher symbolMap, Func`2 syntaxMapOpt, IMethodSymbolInternal previousTopLevelMethod, DebugId methodId, ImmutableArray`1 previousLocals, IReadOnlyDictionary`2 lambdaMapOpt, IReadOnlyDictionary`2 closureMapOpt, String stateMachineTypeNameOpt, Int32 hoistedLocalSlotCount, IReadOnlyDictionary`2 hoistedLocalSlotsOpt, Int32 awaiterCount, IReadOnlyDictionary`2 awaiterMapOpt, LambdaSyntaxFacts lambdaSyntaxFacts)
at Microsoft.CodeAnalysis.Emit.DefinitionMap`1.TryCreateVariableSlotAllocator(EmitBaseline baseline, Compilation compilation, IMethodSymbolInternal method, IMethodSymbol topLevelMethod, DiagnosticBag diagnostics)
at Microsoft.CodeAnalysis.CSharp.Emit.PEDeltaAssemblyBuilder.TryCreateVariableSlotAllocator(MethodSymbol method, MethodSymbol topLevelMethod, DiagnosticBag diagnostics)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.LowerBodyOrInitializer(MethodSymbol method, Int32 methodOrdinal, BoundStatement body, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState, Boolean instrumentForDynamicAnalysis, DebugDocumentProvider debugDocumentProvider, ImmutableArray`1& dynamicAnalysisSpans, DiagnosticBag diagnostics, VariableSlotAllocator& lazyVariableSlotAllocator, ArrayBuilder`1 lambdaDebugInfoBuilder, ArrayBuilder`1 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.VisitNamedType(NamedTypeSymbol symbol, TypeCompilationState arg)
at Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol.Accept[TArgument,TResult](CSharpSymbolVisitor`2 visitor, TArgument argument)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamespace(NamespaceSymbol symbol)
at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethodBodies(CSharpCompilation compilation, PEModuleBuilder moduleBeingBuiltOpt, Boolean emittingPdb, Boolean emitTestCoverageData, Boolean hasDeclarationErrors, DiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CompileMethods(CommonPEModuleBuilder moduleBuilder, Boolean emittingPdb, Boolean emitMetadataOnly, Boolean emitTestCoverageData, DiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.Compilation.Compile(CommonPEModuleBuilder moduleBuilder, Boolean emittingPdb, DiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.CSharp.Emit.EmitHelpers.EmitDifference(CSharpCompilation compilation, EmitBaseline baseline, IEnumerable`1 edits, Func`2 isAddedSymbol, Stream metadataStream, Stream ilStream, Stream pdbStream, ICollection`1 updatedMethods, CompilationTestData testData, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.EmitDifference(EmitBaseline baseline, IEnumerable`1 edits, Func`2 isAddedSymbol, Stream metadataStream, Stream ilStream, Stream pdbStream, ICollection`1 updatedMethods, CompilationTestData testData, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.Test.Utilities.CompilationExtensions.EmitDifference(Compilation compilation, EmitBaseline baseline, ImmutableArray`1 edits, IEnumerable`1 allAddedSymbols, CompilationTestData testData)
at Microsoft.CodeAnalysis.CSharp.EditAndContinue.UnitTests.EditAndContinueTests.OutVar_InSwitchExpression()
In #37025, I have added
OutVar_InSwitchExpressiontosrc/Compilers/CSharp/Test/Emit/Emit/EditAndContinue/EditAndContinueTests.cs
It raises the following crash: