Skip to content

Fix operation kind for tuple equality#26235

Merged
jcouv merged 3 commits intodotnet:features/optestfrom
jcouv:tuple-equality
Apr 19, 2018
Merged

Fix operation kind for tuple equality#26235
jcouv merged 3 commits intodotnet:features/optestfrom
jcouv:tuple-equality

Conversation

@jcouv
Copy link
Copy Markdown
Member

@jcouv jcouv commented Apr 18, 2018

No description provided.

@jcouv jcouv added this to the 15.8 milestone Apr 18, 2018
@jcouv jcouv self-assigned this Apr 18, 2018
@jcouv jcouv requested a review from a team as a code owner April 18, 2018 18:29
@jcouv
Copy link
Copy Markdown
Member Author

jcouv commented Apr 18, 2018

FYI @AlekseyTs @jaredpar It looks like there is another failure (Microsoft.CodeAnalysis.CSharp.UnitTests.CodeGen.CodeGenDeconstructTests.ShortDiscardDisallowedInForeach).

@AlekseyTs
Copy link
Copy Markdown
Contributor

It looks like there is another failure (Microsoft.CodeAnalysis.CSharp.UnitTests.CodeGen.CodeGenDeconstructTests.ShortDiscardDisallowedInForeach).

 	Roslyn.Test.Utilities.dll!Microsoft.CodeAnalysis.ThrowingTraceListener.Fail(string message, string detailMessage) Line 24	C#
 	System.dll!System.Diagnostics.TraceListener.Fail(string message)	Unknown
 	System.dll!System.Diagnostics.TraceInternal.Fail(string message)	Unknown
 	System.dll!System.Diagnostics.Debug.Assert(bool condition)	Unknown
>	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.BoundDiscardExpression.ExpressionSymbol.get() Line 29	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.Operations.CSharpOperationFactory.CreateDiscardExpressionOperation(Microsoft.CodeAnalysis.CSharp.BoundDiscardExpression boundNode) Line 1938	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.Operations.CSharpOperationFactory.CreateInternal(Microsoft.CodeAnalysis.CSharp.BoundNode boundNode) Line 249	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.Operations.CSharpOperationFactory.Create.AnonymousMethod__3_0(Microsoft.CodeAnalysis.CSharp.BoundNode n) Line 43	C#
 	mscorlib.dll!System.Collections.Concurrent.ConcurrentDictionary<Microsoft.CodeAnalysis.CSharp.BoundNode, Microsoft.CodeAnalysis.IOperation>.GetOrAdd(Microsoft.CodeAnalysis.CSharp.BoundNode key, System.Func<Microsoft.CodeAnalysis.CSharp.BoundNode, Microsoft.CodeAnalysis.IOperation> valueFactory)	Unknown
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.Operations.CSharpOperationFactory.Create(Microsoft.CodeAnalysis.CSharp.BoundNode boundNode) Line 43	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.Operations.CSharpOperationFactory.CreateBoundForEachStatementOperation.AnonymousMethod__1() Line 1474	C#
 	mscorlib.dll!System.Lazy<Microsoft.CodeAnalysis.IOperation>.CreateValue()	Unknown
 	mscorlib.dll!System.Lazy<Microsoft.CodeAnalysis.IOperation>.LazyInitValue()	Unknown
 	mscorlib.dll!System.Lazy<Microsoft.CodeAnalysis.IOperation>.Value.get()	Unknown
 	Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.Operations.LazyForEachLoopStatement.LoopControlVariable.get() Line 2229	C#
 	Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.Operations.BaseForEachLoopStatement.Children.get() Line 2142	C#
 	Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.Operations.OperationExtensions.Descendants(Microsoft.CodeAnalysis.IOperation operation, bool includeSelf) Line 77	C#
 	System.Core.dll!System.Linq.Enumerable.FirstOrDefault<Microsoft.CodeAnalysis.IOperation>(System.Collections.Generic.IEnumerable<Microsoft.CodeAnalysis.IOperation> source, System.Func<Microsoft.CodeAnalysis.IOperation, bool> predicate)	Unknown
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.GetOperationWorker(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 1010	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel.GetOperationWorker(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 186	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel.GetOperationCore(Microsoft.CodeAnalysis.SyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 469	C#
 	Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.SemanticModel.GetOperation(Microsoft.CodeAnalysis.SyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 77	C#
 	Roslyn.Test.Utilities.dll!Microsoft.CodeAnalysis.Test.Utilities.CompilationExtensions.ValidateIOperations(System.Func<Microsoft.CodeAnalysis.Compilation> createCompilation) Line 282	C#
 	Roslyn.Compilers.CSharp.Test.Utilities.dll!Microsoft.CodeAnalysis.CSharp.Test.Utilities.CSharpTestBase.CreateEmptyCompilation(Microsoft.CodeAnalysis.CSharp.Test.Utilities.CSharpTestSource source, System.Collections.Generic.IEnumerable<Microsoft.CodeAnalysis.MetadataReference> references, Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions options, Microsoft.CodeAnalysis.CSharp.CSharpParseOptions parseOptions, string assemblyName, string sourceFileName) Line 426	C#
 	Roslyn.Compilers.CSharp.Test.Utilities.dll!Microsoft.CodeAnalysis.CSharp.Test.Utilities.CSharpTestBase.CreateCompilation(Microsoft.CodeAnalysis.CSharp.Test.Utilities.CSharpTestSource source, System.Collections.Generic.IEnumerable<Microsoft.CodeAnalysis.MetadataReference> references, Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions options, Microsoft.CodeAnalysis.CSharp.CSharpParseOptions parseOptions, Roslyn.Test.Utilities.TargetFramework targetFramework, string assemblyName, string sourceFileName) Line 400	C#
 	Roslyn.Compilers.CSharp.Emit.UnitTests.dll!Microsoft.CodeAnalysis.CSharp.UnitTests.CodeGen.CodeGenDeconstructTests.ShortDiscardDisallowedInForeach() Line 6596	C#
        public override Symbol ExpressionSymbol
        {
            get
            {
                Debug.Assert((object)this.Type != null);
                return new DiscardSymbol(this.Type);
            }
        }

@jaredpar
Copy link
Copy Markdown
Member

thanks @jcouv. That takes us down to one failure. Does the remaining failure look easy? If not I will just suppress it for the ioperation run for now and focus on getting this into a state where we can merge to master.

@jcouv
Copy link
Copy Markdown
Member Author

jcouv commented Apr 18, 2018

@jaredpar I just pushed a fix for the remaining failure.

@jaredpar
Copy link
Copy Markdown
Member

@jcouv awesome thanks!

Copy link
Copy Markdown
Contributor

@AlekseyTs AlekseyTs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (iteration 2). It would be good to expand Microsoft.CodeAnalysis.CSharp.UnitTests.CodeGen.CodeGenDeconstructTests.ShortDiscardDisallowedInForeach unit test to getting DiscardSymbol through SemanticModel as well as getting an IOperation node for it.

@jcouv jcouv merged commit a3c983e into dotnet:features/optest Apr 19, 2018
@jcouv jcouv deleted the tuple-equality branch April 19, 2018 13:34
@jcouv
Copy link
Copy Markdown
Member Author

jcouv commented Apr 19, 2018

@AlekseyTs @jaredpar Merged the two test fixes (windows_debug_ioperation_unit32_prtest was green).
What's next?

jaredpar pushed a commit to jaredpar/roslyn that referenced this pull request May 15, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants