Skip to content

Typeless tuples hit debug assert in nullable walker #35157

@333fred

Description

@333fred
class C
{
    void M()
    {
        _ = (null, 2);
    }
}

Hits this:

Details
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]       System.InvalidOperationException : 
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]       
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]       Stack Trace:
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Test\Utilities\Portable\ThrowingTraceListener.cs(24,0): at Microsoft.CodeAnalysis.ThrowingTraceListener.Fail(String message, String detailMessage)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]            at System.Diagnostics.TraceListener.Fail(String message)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]            at System.Diagnostics.TraceInternal.Fail(String message)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]            at System.Diagnostics.Debug.Assert(Boolean condition)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Binder\Semantics\Conversions\ConversionsBase.cs(1898,0): at Microsoft.CodeAnalysis.CSharp.ConversionsBase.GetImplicitTupleLiteralConversion(BoundTupleLiteral source, TypeSymbol destination, HashSet`1& useSiteDiagnostics)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Binder\Semantics\Conversions\ConversionsBase.cs(958,0): at Microsoft.CodeAnalysis.CSharp.ConversionsBase.ClassifyImplicitTupleLiteralConversion(BoundTupleLiteral source, TypeSymbol destination, HashSet`1& useSiteDiagnostics)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Binder\Semantics\Conversions\ConversionsBase.cs(848,0): at Microsoft.CodeAnalysis.CSharp.ConversionsBase.ClassifyImplicitBuiltInConversionFromExpression(BoundExpression sourceExpression, TypeSymbol source, TypeSymbol destination, HashSet`1& useSiteDiagnostics)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Binder\Semantics\Conversions\ConversionsBase.cs(89,0): at Microsoft.CodeAnalysis.CSharp.ConversionsBase.ClassifyImplicitConversionFromExpression(BoundExpression sourceExpression, TypeSymbol destination, HashSet`1& useSiteDiagnostics)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs(3592,0): at Microsoft.CodeAnalysis.CSharp.NullableWalker.GenerateConversion(Conversions conversions, BoundExpression sourceExpression, TypeSymbol sourceType, TypeSymbol destinationType, Boolean fromExplicitCast, Boolean extensionMethodThisArgument)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs(4303,0): at Microsoft.CodeAnalysis.CSharp.NullableWalker.ApplyConversion(BoundExpression node, BoundExpression operandOpt, Conversion conversion, TypeWithAnnotations targetTypeWithNullability, TypeWithState operandType, Boolean checkConversion, Boolean fromExplicitCast, Boolean useLegacyWarnings, AssignmentKind assignmentKind, ParameterSymbol target, Boolean reportTopLevelWarnings, Boolean reportRemainingWarnings, Boolean extensionMethodThisArgument, Optional`1 stateForLambda, Boolean trackMembers, Location location)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs(3814,0): at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitOptionalImplicitConversion(BoundExpression expr, TypeWithAnnotations targetTypeOpt, Boolean useLegacyWarnings, Boolean trackMembers, AssignmentKind assignmentKind)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs(4744,0): at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitAssignmentOperator(BoundAssignmentOperator node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs(1506,0): at Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator.Accept(BoundTreeVisitor visitor)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs(145,0): at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(329,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitExpressionWithoutStackGuard(BoundExpression node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs(1483,0): at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitExpressionWithoutStackGuard(BoundExpression node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs(223,0): at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(BoundExpression node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs(204,0): at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionWithStackGuard(Int32& recursionDepth, BoundExpression node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(321,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitWithStackGuard(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(309,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitAlways(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(284,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.Visit(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs(784,0): at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitRvalue(BoundExpression node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(1101,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitExpressionStatement(BoundExpressionStatement node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs(2986,0): at Microsoft.CodeAnalysis.CSharp.BoundExpressionStatement.Accept(BoundTreeVisitor visitor)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs(145,0): at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(324,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitWithStackGuard(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(309,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitAlways(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(284,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.Visit(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(613,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitStatement(BoundStatement statement)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs(1536,0): at Microsoft.CodeAnalysis.CSharp.NullableWalker.VisitStatement(BoundStatement statement)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(1089,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitStatements(ImmutableArray`1 statements)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(1081,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitBlock(BoundBlock node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs(2636,0): at Microsoft.CodeAnalysis.CSharp.BoundBlock.Accept(BoundTreeVisitor visitor)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\BoundTree\BoundTreeVisitors.cs(145,0): at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.Visit(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(324,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitWithStackGuard(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(309,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.VisitAlways(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(284,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.Visit(BoundNode node)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(367,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.Scan(Boolean& badRegion)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs(370,0): at Microsoft.CodeAnalysis.CSharp.NullableWalker.Scan(Boolean& badRegion)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\AbstractFlowPass.cs(390,0): at Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`1.Analyze(Boolean& badRegion, Optional`1 initialState)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.81]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs(495,0): at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(CSharpCompilation compilation, Symbol symbol, BoundNode node, Conversions conversions, DiagnosticBag diagnostics, Boolean useMethodSignatureParameterTypes, MethodSymbol methodSignatureOpt, ArrayBuilder`1 returnTypes, VariableState initialState, Dictionary`2 analyzedNullabilityMapOpt)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\NullableWalker.cs(385,0): at Microsoft.CodeAnalysis.CSharp.NullableWalker.Analyze(CSharpCompilation compilation, MethodSymbol method, BoundNode node, DiagnosticBag diagnostics)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\DefiniteAssignment.cs(381,0): at Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass.Analyze(CSharpCompilation compilation, MethodSymbol member, BoundNode node, DiagnosticBag diagnostics, Boolean requireOutParamsAssigned)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\FlowAnalysisPass.cs(133,0): at Microsoft.CodeAnalysis.CSharp.FlowAnalysisPass.Analyze(CSharpCompilation compilation, MethodSymbol method, BoundBlock block, DiagnosticBag diagnostics)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\FlowAnalysis\FlowAnalysisPass.cs(42,0): at Microsoft.CodeAnalysis.CSharp.FlowAnalysisPass.Rewrite(MethodSymbol method, BoundBlock block, DiagnosticBag diagnostics, Boolean hasTrailingExpression, Boolean originalBodyNested)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Compiler\MethodCompiler.cs(1015,0): at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Compiler\MethodCompiler.cs(498,0): at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Compiler\MethodCompiler.cs(388,0): at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass21_0.<CompileNamedTypeAsTask>b__0()
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\Core\Portable\InternalUtilities\UICultureUtilities.cs(136,0): at Roslyn.Utilities.UICultureUtilities.<>c__DisplayClass5_0.<WithCurrentUICulture>b__0()
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]            at System.Threading.Tasks.Task.InnerInvoke()
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]            at System.Threading.Tasks.Task.Execute()
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         --- End of stack trace from previous location where exception was thrown ---
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]            at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]            at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]            at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Compiler\MethodCompiler.cs(303,0): at Microsoft.CodeAnalysis.CSharp.MethodCompiler.WaitForWorkers()
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Compiler\MethodCompiler.cs(144,0): at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethodBodies(CSharpCompilation compilation, PEModuleBuilder moduleBeingBuiltOpt, Boolean emittingPdb, Boolean emitTestCoverageData, Boolean hasDeclarationErrors, DiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Compilation\CSharpCompilation.cs(2334,0): at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnosticsForAllMethodBodies(DiagnosticBag diagnostics, CancellationToken cancellationToken)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Compilation\CSharpCompilation.cs(2303,0): at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnostics(CompilationStage stage, Boolean includeEarlierStages, DiagnosticBag diagnostics, CancellationToken cancellationToken)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Compilation\CSharpCompilation.cs(2218,0): at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnostics(CompilationStage stage, Boolean includeEarlierStages, CancellationToken cancellationToken)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Portable\Compilation\CSharpCompilation.cs(2212,0): at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnostics(CancellationToken cancellationToken)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Test\Utilities\Portable\Diagnostics\DiagnosticExtensions.cs(99,0): at Microsoft.CodeAnalysis.DiagnosticExtensions.VerifyDiagnostics[TCompilation](TCompilation c, DiagnosticDescription[] expected)
[4/19/2019 15:58:37 Informational] [xUnit.net 00:00:09.82]         C:\Users\frsilb\Documents\git\roslyn\src\Compilers\CSharp\Test\Semantic\Semantics\NullableReferenceTypesTests.cs(46349,0): at Microsoft.CodeAnalysis.CSharp.UnitTests.Semantics.NullableReferenceTypesTests.TupleTypeInference_08()

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions