Stack overflow in analyzer during build.
Create a new project, copy the content below into a c# file und hit "build".
No stack overflow exception.
What happened instead of what you expected.
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Linq.ImmutableArrayExtensions.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Generic.IEqualityComparer`1<System.__Canon>)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.SpanHelpers.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef, System.__Canon ByRef, Int32)
0>Microsoft.CSharp.Core.targets(84,5): Error : at MessagePack.SourceGenerator.CodeAnalysis.GenericTypeParameterInfo.Equals(MessagePack.SourceGenerator.CodeAnalysis.GenericTypeParameterInfo)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Linq.ImmutableArrayExtensions.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Generic.IEqualityComparer`1<System.__Canon>)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.SpanHelpers.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef, System.__Canon ByRef, Int32)
0>Microsoft.CSharp.Core.targets(84,5): Error : at MessagePack.SourceGenerator.CodeAnalysis.GenericTypeParameterInfo.Equals(MessagePack.SourceGenerator.CodeAnalysis.GenericTypeParameterInfo)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Linq.ImmutableArrayExtensions.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Generic.IEqualityComparer`1<System.__Canon>)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.SpanHelpers.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef, System.__Canon ByRef, Int32)
0>Microsoft.CSharp.Core.targets(84,5): Error : at MessagePack.SourceGenerator.CodeAnalysis.GenericTypeParameterInfo.Equals(MessagePack.SourceGenerator.CodeAnalysis.GenericTypeParameterInfo)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Linq.ImmutableArrayExtensions.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Generic.IEqualityComparer`1<System.__Canon>)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.SpanHelpers.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef, System.__Canon ByRef, Int32)
0>Microsoft.CSharp.Core.targets(84,5): Error : at MessagePack.SourceGenerator.CodeAnalysis.GenericTypeParameterInfo.Equals(MessagePack.SourceGenerator.CodeAnalysis.GenericTypeParameterInfo)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Linq.ImmutableArrayExtensions.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Generic.IEqualityComparer`1<System.__Canon>)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.SpanHelpers.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef, System.__Canon ByRef, Int32)
0>Microsoft.CSharp.Core.targets(84,5): Error : at MessagePack.SourceGenerator.CodeAnalysis.GenericTypeParameterInfo.Equals(MessagePack.SourceGenerator.CodeAnalysis.GenericTypeParameterInfo)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Linq.ImmutableArrayExtensions.SequenceEqual[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Collections.Generic.IEqualityComparer`1<System.__Canon>)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Collections.Immutable.ImmutableDictionary`2+HashBucket[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TryGetValue(System.__Canon, Comparers<System.__Canon,System.__Canon>, System.__Canon ByRef)
0>Microsoft.CSharp.Core.targets(84,5): Error : at MessagePack.SourceGenerator.Analyzers.MsgPack00xMessagePackAnalyzer.SymbolStartAction(Microsoft.CodeAnalysis.Diagnostics.SymbolStartAnalysisContext, MessagePack.SourceGenerator.CodeAnalysis.ReferenceSymbols, MessagePack.SourceGenerator.CodeAnalysis.AnalyzerOptions)
0>Microsoft.CSharp.Core.targets(84,5): Error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.ExecuteAndCatchIfThrows_NoLock[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer, System.Action`1<System.ValueTuple`2<System.__Canon,System.__Canon>>, System.ValueTuple`2<System.__Canon,System.__Canon>, System.Nullable`1<Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo>, System.Threading.CancellationToken)
0>Microsoft.CSharp.Core.targets(84,5): Error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.ExecuteAndCatchIfThrows[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer, System.Action`1<System.ValueTuple`2<System.__Canon,System.__Canon>>, System.ValueTuple`2<System.__Canon,System.__Canon>, System.Nullable`1<Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo>, System.Threading.CancellationToken)
0>Microsoft.CSharp.Core.targets(84,5): Error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.ExecuteSymbolStartActions(Microsoft.CodeAnalysis.ISymbol, System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.Diagnostics.SymbolStartAnalyzerAction>, Microsoft.CodeAnalysis.Diagnostics.HostSymbolStartAnalysisScope, Boolean, Microsoft.CodeAnalysis.SyntaxTree, System.Nullable`1<Microsoft.CodeAnalysis.Text.TextSpan>, System.Threading.CancellationToken)
0>Microsoft.CSharp.Core.targets(84,5): Error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerManager+AnalyzerExecutionContext+<>c__DisplayClass15_0.<GetSymbolAnalysisScopeAsync>g__getSymbolAnalysisScopeCore|2()
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].InnerInvoke()
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread)
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Threading.ThreadPoolWorkQueue.Dispatch()
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart()
0>Microsoft.CSharp.Core.targets(84,5): Error : at System.Threading.Thread.StartCallback()
Bug description
Stack overflow in analyzer during build.
Repro steps
Create a new project, copy the content below into a c# file und hit "build".
The reason is most likely the combination of
struct+ generic interface in generic constraint + nullable generic structT?inIMessagePackFormatter<T?>.Expected behavior
No stack overflow exception.
Actual behavior
What happened instead of what you expected.
Additional context
Error returned by MSBuild