You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Steps to Reproduce:
I don't have an exact case as the crash happened during rewriting some code and I haven't been able to reproduce it yet.
The code was somewhat similar to:
var a = new List<int>();
var b = new List<int>();
foreach ((int x, int y, int z) in
a.Zip(
b.Join(b,
e => e,
e => e,
(s, t) => (s, t)),
(f, g) => (f, g.s, g.t)))
{
}
Expected Behavior:
No exception.
Actual Behavior:
System.InvalidOperationException : Unexpected value 'UnsetConversionKind' of type 'Microsoft.CodeAnalysis.CSharp.ConversionKind'
at Microsoft.CodeAnalysis.CSharp.ConversionKindExtensions.IsImplicitConversion(ConversionKind conversionKind)
at Microsoft.CodeAnalysis.CSharp.Conversion.get_IsExplicit()
at Microsoft.CodeAnalysis.CSharp.Utilities.SpeculationAnalyzer.ConversionsAreCompatible(Conversion originalConversion,Conversion newConversion)
at Microsoft.CodeAnalysis.CSharp.Utilities.SpeculationAnalyzer.ForEachConversionsAreCompatible(SemanticModel originalModel,CommonForEachStatementSyntax originalForEach,SemanticModel newModel,CommonForEachStatementSyntax newForEach)
at Microsoft.CodeAnalysis.Shared.Utilities.AbstractSpeculationAnalyzer`7.ReplacementBreaksForEachStatement(TForEachStatementSyntax forEachStatement,TForEachStatementSyntax newForEachStatement)
at Microsoft.CodeAnalysis.Shared.Utilities.AbstractSpeculationAnalyzer`7.ReplacementChangesSemanticsForNode(SyntaxNode currentOriginalNode,SyntaxNode currentReplacedNode,SyntaxNode previousOriginalNode,SyntaxNode previousReplacedNode)
at Microsoft.CodeAnalysis.Shared.Utilities.AbstractSpeculationAnalyzer`7.ReplacementChangesSemantics(SyntaxNode currentOriginalNode,SyntaxNode currentReplacedNode,SyntaxNode originalRoot,Boolean skipVerificationForCurrentNode)
at Microsoft.CodeAnalysis.Shared.Utilities.AbstractSpeculationAnalyzer`7.ReplacementChangesSemantics()
at Microsoft.CodeAnalysis.CSharp.Extensions.ExpressionSyntaxExtensions.CanReplaceWithReducedName(NameSyntax name,TypeSyntax reducedName,SemanticModel semanticModel,CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.CSharp.Extensions.ExpressionSyntaxExtensions.TryReduce(NameSyntax name,SemanticModel semanticModel,TypeSyntax& replacementNode,TextSpan& issueSpan,OptionSet optionSet,CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.CSharp.Extensions.ExpressionSyntaxExtensions.TryReduceExplicitName(ExpressionSyntax expression,SemanticModel semanticModel,TypeSyntax& replacementNode,TextSpan& issueSpan,OptionSet optionSet,CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.CSharp.Extensions.ExpressionSyntaxExtensions.TryReduceOrSimplifyExplicitName(ExpressionSyntax expression,SemanticModel semanticModel,ExpressionSyntax& replacementNode,TextSpan& issueSpan,OptionSet optionSet,CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.CSharp.Simplification.CSharpNameReducer.SimplifyName(SyntaxNode node,SemanticModel semanticModel,OptionSet optionSet,CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.CSharp.Simplification.AbstractCSharpReducer.AbstractReductionRewriter.SimplifyNode[TNode](TNode node,SyntaxNode newNode,SyntaxNode parentNode,Func`5 simplifier)
at Microsoft.CodeAnalysis.CSharp.Simplification.AbstractCSharpReducer.AbstractReductionRewriter.SimplifyExpression[TExpression](TExpression expression,SyntaxNode newNode,Func`5 simplifier)
at Microsoft.CodeAnalysis.CSharp.Simplification.CSharpNameReducer.Rewriter.VisitAliasQualifiedName(AliasQualifiedNameSyntax node)
at Microsoft.CodeAnalysis.CSharp.Syntax.AliasQualifiedNameSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitMemberAccessExpression(MemberAccessExpressionSyntax node)
at Microsoft.CodeAnalysis.CSharp.Simplification.CSharpNameReducer.Rewriter.VisitMemberAccessExpression(MemberAccessExpressionSyntax node)
at Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitMemberAccessExpression(MemberAccessExpressionSyntax node)
at Microsoft.CodeAnalysis.CSharp.Simplification.CSharpNameReducer.Rewriter.VisitMemberAccessExpression(MemberAccessExpressionSyntax node)
at Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node)
at Microsoft.CodeAnalysis.CSharp.Simplification.AbstractCSharpReducer.AbstractReductionRewriter.VisitInvocationExpression(InvocationExpressionSyntax node)
at Microsoft.CodeAnalysis.CSharp.Syntax.InvocationExpressionSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitArgument(ArgumentSyntax node)
at Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitListElement[TNode](TNode node)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitList[TNode](SeparatedSyntaxList`1 list)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitArgumentList(ArgumentListSyntax node)
at Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node)
at Microsoft.CodeAnalysis.CSharp.Simplification.AbstractCSharpReducer.AbstractReductionRewriter.VisitInvocationExpression(InvocationExpressionSyntax node)
at Microsoft.CodeAnalysis.CSharp.Syntax.InvocationExpressionSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitForEachVariableStatement(ForEachVariableStatementSyntax node)
at Microsoft.CodeAnalysis.CSharp.Syntax.ForEachVariableStatementSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node)
at Microsoft.CodeAnalysis.CSharp.Simplification.AbstractCSharpReducer.AbstractReductionRewriter.VisitNodeOrToken(SyntaxNodeOrToken nodeOrToken,SemanticModel semanticModel,Boolean simplifyAllDescendants)
at async Microsoft.CodeAnalysis.Simplification.AbstractSimplificationService`3.<>c__DisplayClass10_1.<ReduceAsync>b__0[TExpressionSyntax,TStatementSyntax,TCrefSyntax](<Unknown Parameters>)
at async Microsoft.CodeAnalysis.Simplification.AbstractSimplificationService`3.ReduceAsyncInternal[TExpressionSyntax,TStatementSyntax,TCrefSyntax](<Unknown Parameters>)
at async Microsoft.CodeAnalysis.Simplification.AbstractSimplificationService`3.ReduceAsync[TExpressionSyntax,TStatementSyntax,TCrefSyntax](<Unknown Parameters>)
at async Microsoft.CodeAnalysis.Simplification.Simplifier.ReduceAsync(<Unknown Parameters>)
at async Microsoft.CodeAnalysis.ExtractMethod.MethodExtractor.CodeGenerator`3.GenerateAsync[TStatement,TExpression,TNodeUnderContainer](<Unknown Parameters>)
at async Microsoft.CodeAnalysis.ExtractMethod.MethodExtractor.ExtractMethodAsync(<Unknown Parameters>)
at async Microsoft.CodeAnalysis.ExtractMethod.AbstractExtractMethodService`3.ExtractMethodAsync[TValidator,TExtractor,TResult](<Unknown Parameters>)
at async Microsoft.CodeAnalysis.CodeRefactorings.ExtractMethod.ExtractMethodCodeRefactoringProvider.GetCodeActionAsync(<Unknown Parameters>)
at async Microsoft.CodeAnalysis.CodeRefactorings.ExtractMethod.ExtractMethodCodeRefactoringProvider.ComputeRefactoringsAsync(<Unknown Parameters>)
at async Microsoft.CodeAnalysis.CodeRefactorings.CodeRefactoringService.GetRefactoringFromProviderAsync(<Unknown Parameters>)
at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)
Version Used:
Visual Studio 16.1.0 Preview 1.0
Steps to Reproduce:
I don't have an exact case as the crash happened during rewriting some code and I haven't been able to reproduce it yet.
The code was somewhat similar to:
Expected Behavior:
No exception.
Actual Behavior:
It looks like https://github.com/dotnet/roslyn/blob/master/src/Compilers/CSharp/Portable/Binder/Semantics/Conversions/ConversionKindExtensions.cs is missing a case for
UnsetConversionKind
after that enum was added in #33648.The text was updated successfully, but these errors were encountered: