Version Used: f29f937
Steps to Reproduce:
- Change ToolsetVersion in eng/Versions.props to
4.2.0-1.22061.4
- Change this method to the following:
/// <summary>
/// Gets all the diagnostics in the given document filtered by <see cref="DiagnosticIds"/>.
/// </summary>
public async Task<ImmutableArray<Diagnostic>> GetDocumentDiagnosticsAsync(Document document!!)
{
if (this.Project.Language != document.Project.Language)
{
return ImmutableArray<Diagnostic>.Empty;
}
var getDiagnosticsTask = State.DiagnosticProvider.GetDocumentDiagnosticsAsync(document, this.CancellationToken);
return await GetFilteredDiagnosticsAsync(getDiagnosticsTask, this.DiagnosticIds).ConfigureAwait(false);
}
- Run a build
Expected Behavior: Builds successfully.
Actual Behavior: Crash during emit:
error MSB6006: "csc.exe" exited with code -2146232797. [C:\Users\rikki\src\roslyn2\src\Workspaces\Core\Portab le\Microsoft.CodeAnalysis.Workspaces.csproj]
I attached a debugger and have a stack trace:
Microsoft.CodeAnalysis.CodeGen.LocalSlotManager.DeclareLocal(Microsoft.Cci.ITypeReference type, Microsoft.CodeAnalysis.Symbols.ILocalSymbolInternal symbol, string name, Microsoft.CodeAnalysis.SynthesizedLocalKind kind, Microsoft.CodeAnalysis.CodeGen.LocalDebugId id, System.Reflection.Metadata.LocalVariableAttributes pdbAttributes, Microsoft.CodeAnalysis.LocalSlotConstraints constraints, System.Collections.Immutable.ImmutableArray<bool> dynamicTransformFlags, System.Collections.Immutable.ImmutableArray<string> tupleElementNames, bool isSlotReusable) Line 138 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.DefineLocal(Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol local, Microsoft.CodeAnalysis.SyntaxNode syntaxNode) Line 1417 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock block) Line 638 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(Microsoft.CodeAnalysis.CSharp.BoundStatement statement) Line 31 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.CSharp.BoundStatement> statements) Line 665 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock block) Line 642 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(Microsoft.CodeAnalysis.CSharp.BoundStatement statement) Line 31 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatements(System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.CSharp.BoundStatement> statements) Line 665 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock block) Line 642 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(Microsoft.CodeAnalysis.CSharp.BoundStatement statement) Line 31 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatementList(Microsoft.CodeAnalysis.CSharp.BoundStatementList list) Line 128 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.EmitStatement(Microsoft.CodeAnalysis.CSharp.BoundStatement statement) Line 63 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.GenerateImpl() Line 280 C#
Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.Generate(out bool hasStackalloc) Line 209 C#
Microsoft.CodeAnalysis.CSharp.MethodCompiler.GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder moduleBuilder, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol method, int methodOrdinal, Microsoft.CodeAnalysis.CSharp.BoundStatement block, System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo> lambdaDebugInfo, System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo> closureDebugInfo, Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol stateMachineTypeOpt, Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator variableSlotAllocatorOpt, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics, Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider debugDocumentProvider, Microsoft.CodeAnalysis.CSharp.ImportChain importChainOpt, bool emittingPdb, bool emitTestCoverageData, System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.CodeGen.SourceSpan> dynamicAnalysisSpans, Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol.AsyncForwardEntryPoint entryPointOpt) Line 1559 C#
Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol methodSymbol, int methodOrdinal, ref Microsoft.CodeAnalysis.CSharp.Binder.ProcessedFieldInitializers processedInitializers, Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields previousSubmissionFields, Microsoft.CodeAnalysis.CSharp.TypeCompilationState compilationState) Line 1318 C#
Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol containingType) Line 529 C#
Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedTypeAsync.AnonymousMethod__0() Line 419 C#
Roslyn.Utilities.UICultureUtilities.WithCurrentUICulture.AnonymousMethod__0() Line 139 C#
It looks like we are trying to add a local that was already added. Must be an issue with param-nullchecking lowering.
Version Used: f29f937
Steps to Reproduce:
4.2.0-1.22061.4Expected Behavior: Builds successfully.
Actual Behavior: Crash during emit:
error MSB6006: "csc.exe" exited with code -2146232797. [C:\Users\rikki\src\roslyn2\src\Workspaces\Core\Portab le\Microsoft.CodeAnalysis.Workspaces.csproj]I attached a debugger and have a stack trace:
It looks like we are trying to add a local that was already added. Must be an issue with param-nullchecking lowering.