dotnet / roslyn

The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/
MIT License
18.92k stars 4.01k forks source link

Stack overflow when compiling incorrectly formed attribute argument string #74677

Closed SomebodyOdd closed 3 days ago

SomebodyOdd commented 1 month ago

Version Used: SDK 8.0.303

Steps to Reproduce:

Locally, using SDK 8.0.303:

  1. Create a console project (or any other, for that matter)
  2. Replace Program.cs file with following contents
    
    using System;

[Obsolete($"{Test2}")] class Test2 {

}

Note incorrect string interpolation in argument to `Obsolete` attribute, lacking `nameof`. 

3. Run dotnet build (building through IDE would do the trick as well).

Sharplab.io:

1. Replace all code with a sample above.
2. Switch compiler version to the latest main branch (main 11 Jun 2024 at the time of writing this)

**Expected Behavior**: 
Syntax error similar to
`error CS0119: 'Test2' is a type, which is not valid in the given context`
at Obsolete attribute.

**Actual Behavior**:
Locally: StackOverflowException with a long-long (multimegabyte) stack trace,
Sharplab.io: "lost connection" from (what I assume) the stack overflow similar to local result.

At the time of writing, SharpLab's Default version does not crash and correctly gives syntax error, although I can't say which one specifically it uses.
CyrusNajmabadi commented 1 month ago

Locally: StackOverflowException with a long-long (multimegabyte) stack trace,

Can yuo include some portion of this stack trace. Ideally just cut out the clearly repeating part, but show the parts leading up to the stack overflow, and a few repeats of it.

SomebodyOdd commented 1 month ago

Switching Windows to a global UTF-8 mode suddenly changed output to a much more consice stacktrace with repeats already taken care of... Looks like some unrelated codepage issue... ¯\_(ツ)_/¯

Anyway, here is a stacktrace, cut from that nicer output:

Stack trace ``` Stack overflow. [C:\Users\igord\dotnet-test\dotnet-test.csproj] Repeat 119 times: [C:\Users\igord\dotnet-test\dotnet-test.csproj] -------------------------------- [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.OverloadResolution.AddMemberToCandidateSet[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1>, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Boolean, System.Collections.Generic.Dictionary`2>, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.OverloadResolution.PerformMemberOverloadResolution[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1>, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Boolean, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.CallingConventionInfo ByRef, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.OverloadResolution.MethodOrPropertyOverloadResolution[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.CallingConventionInfo ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.ResolveDefaultMethodGroup(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.CallingConventionInfo ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.ResolveMethodGroupInternal(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup, Microsoft.CodeAnalysis.SyntaxNode, System.String, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.CallingConventionInfo ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.ResolveMethodGroup(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup, Microsoft.CodeAnalysis.SyntaxNode, System.String, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.CallingConventionInfo ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindMethodGroupInvocation(Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.SyntaxNode, System.String, Microsoft.CodeAnalysis.CSharp.BoundMethodGroup, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode, Boolean, Boolean ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindInvocationExpression(Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.SyntaxNode, System.String, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.MakeInvocationExpression(Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.CSharp.BoundExpression, System.String, System.Collections.Immutable.ImmutableArray`1, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Microsoft.CodeAnalysis.SeparatedSyntaxList`1, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1>>, Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode, Boolean, Boolean, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindInterpolatedStringAppendCalls(System.Collections.Immutable.ImmutableArray`1>, Microsoft.CodeAnalysis.CSharp.BoundInterpolatedStringHandlerPlaceholder, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindUnconvertedInterpolatedPartsToHandlerType(Microsoft.CodeAnalysis.SyntaxNode, System.Collections.Immutable.ImmutableArray`1>, Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Boolean, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindUnconvertedInterpolatedStringToHandlerType(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedInterpolatedString, Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Boolean, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.g__tryBindAsHandlerType|570_1(Microsoft.CodeAnalysis.CSharp.BoundInterpolatedString ByRef, <>c__DisplayClass570_0 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindUnconvertedInterpolatedStringToString(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedInterpolatedString, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindToNaturalType(Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.g__coerceArgument|404_0[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1 ByRef, Microsoft.CodeAnalysis.CSharp.BoundExpression, System.Collections.Immutable.ImmutableArray`1, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.BoundExpression, Int32, Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.CheckAndCoerceArguments[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Microsoft.CodeAnalysis.CSharp.BoundExpression, Boolean, System.Collections.Immutable.ImmutableArray`1 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax, Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.GetAttribute(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax, Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, System.Action`1, System.Action`1, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbol.EarlyDecodeDeprecatedOrExperimentalOrObsoleteAttribute(Microsoft.CodeAnalysis.EarlyDecodeWellKnownAttributeArguments`4 ByRef, Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData ByRef, Microsoft.CodeAnalysis.CSharp.BoundAttribute ByRef, Microsoft.CodeAnalysis.ObsoleteAttributeData ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.EarlyDecodeWellKnownAttribute(Microsoft.CodeAnalysis.EarlyDecodeWellKnownAttributeArguments`4 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbol.EarlyDecodeWellKnownAttributes(System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1, Microsoft.CodeAnalysis.CSharp.Symbols.AttributeLocation, Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData[], Microsoft.CodeAnalysis.CSharp.BoundAttribute[]) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbol.LoadAndValidateAttributes(Roslyn.Utilities.OneOrMany`1>, Microsoft.CodeAnalysis.CustomAttributesBag`1 ByRef, Microsoft.CodeAnalysis.CSharp.Symbols.AttributeLocation, Boolean, Microsoft.CodeAnalysis.CSharp.Binder, System.Func`2, System.Action`1, System.Action`1) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.GetAttributesBag() [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.GetEarlyDecodedWellKnownAttributeData() [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.HasInlineArrayAttribute(Int32 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.ConversionsBase.ClassifyImplicitBuiltInConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.ConversionsBase.ClassifyImplicitConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.OverloadResolution.CheckArgumentForApplicability(Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.RefKind, Boolean, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Boolean, Boolean, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.OverloadResolution.IsApplicable(Microsoft.CodeAnalysis.CSharp.Symbol, EffectiveParameters, Boolean, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, System.Collections.Immutable.ImmutableArray`1, Boolean, Boolean, Boolean, Boolean, Boolean, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.OverloadResolution.IsApplicable[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon, System.__Canon, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, EffectiveParameters, Boolean, System.Collections.Immutable.ImmutableArray`1, Boolean, Boolean, Boolean, Boolean, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.OverloadResolution.IsMemberApplicableInNormalForm[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon, System.__Canon, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Options, Boolean, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] -------------------------------- [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.OverloadResolution.AddMemberToCandidateSet[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1>, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Boolean, System.Collections.Generic.Dictionary`2>, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.OverloadResolution.PerformMemberOverloadResolution[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1>, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Boolean, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.CallingConventionInfo ByRef, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.OverloadResolution.MethodOrPropertyOverloadResolution[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.CallingConventionInfo ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.ResolveDefaultMethodGroup(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.CallingConventionInfo ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.ResolveMethodGroupInternal(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup, Microsoft.CodeAnalysis.SyntaxNode, System.String, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.CallingConventionInfo ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.ResolveMethodGroup(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup, Microsoft.CodeAnalysis.SyntaxNode, System.String, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CompoundUseSiteInfo`1 ByRef, Options, Microsoft.CodeAnalysis.RefKind, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp.CallingConventionInfo ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindMethodGroupInvocation(Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.SyntaxNode, System.String, Microsoft.CodeAnalysis.CSharp.BoundMethodGroup, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode, Boolean, Boolean ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindInvocationExpression(Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.SyntaxNode, System.String, Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.MakeInvocationExpression(Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.CSharp.BoundExpression, System.String, System.Collections.Immutable.ImmutableArray`1, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Microsoft.CodeAnalysis.SeparatedSyntaxList`1, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1>>, Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode, Boolean, Boolean, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindInterpolatedStringAppendCalls(System.Collections.Immutable.ImmutableArray`1>, Microsoft.CodeAnalysis.CSharp.BoundInterpolatedStringHandlerPlaceholder, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindUnconvertedInterpolatedPartsToHandlerType(Microsoft.CodeAnalysis.SyntaxNode, System.Collections.Immutable.ImmutableArray`1>, Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Boolean, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindUnconvertedInterpolatedStringToHandlerType(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedInterpolatedString, Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Boolean, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.g__tryBindAsHandlerType|570_1(Microsoft.CodeAnalysis.CSharp.BoundInterpolatedString ByRef, <>c__DisplayClass570_0 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindUnconvertedInterpolatedStringToString(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedInterpolatedString, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindToNaturalType(Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.g__coerceArgument|404_0[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1 ByRef, Microsoft.CodeAnalysis.CSharp.BoundExpression, System.Collections.Immutable.ImmutableArray`1, Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1, Microsoft.CodeAnalysis.CSharp.BoundExpression, Int32, Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.CheckAndCoerceArguments[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Microsoft.CodeAnalysis.CSharp.BoundExpression, Boolean, System.Collections.Immutable.ImmutableArray`1 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax, Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Binder.GetAttribute(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax, Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, System.Action`1, System.Action`1, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbol.EarlyDecodeDeprecatedOrExperimentalOrObsoleteAttribute(Microsoft.CodeAnalysis.EarlyDecodeWellKnownAttributeArguments`4 ByRef, Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData ByRef, Microsoft.CodeAnalysis.CSharp.BoundAttribute ByRef, Microsoft.CodeAnalysis.ObsoleteAttributeData ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.EarlyDecodeWellKnownAttribute(Microsoft.CodeAnalysis.EarlyDecodeWellKnownAttributeArguments`4 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbol.EarlyDecodeWellKnownAttributes(System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1, Microsoft.CodeAnalysis.CSharp.Symbols.AttributeLocation, Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData[], Microsoft.CodeAnalysis.CSharp.BoundAttribute[]) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbol.LoadAndValidateAttributes(Roslyn.Utilities.OneOrMany`1>, Microsoft.CodeAnalysis.CustomAttributesBag`1 ByRef, Microsoft.CodeAnalysis.CSharp.Symbols.AttributeLocation, Boolean, Microsoft.CodeAnalysis.CSharp.Binder, System.Func`2, System.Action`1, System.Action`1) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.GetAttributesBag() [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.GetAttributes() [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(Microsoft.CodeAnalysis.SourceLocation, System.Predicate`1, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberConditionally(Microsoft.CodeAnalysis.SourceLocation, System.Predicate`1, Microsoft.CodeAnalysis.CSharp.Symbol, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass6_0`1[[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].b__0(Int32) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Roslyn.Utilities.RoslynParallel+<>c__DisplayClass1_0.g__errorHandlingBody|0(Int32) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`2[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].b__1(System.Threading.Tasks.RangeWorker ByRef, Int64, Boolean ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at System.Threading.Tasks.TaskReplicator+Replica.Execute() [C:\Users\igord\dotnet-test\dotnet-test.csproj] at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at System.Threading.Tasks.Task.InternalRunSynchronously(System.Threading.Tasks.TaskScheduler, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at System.Threading.Tasks.TaskReplicator.Run[[System.Threading.Tasks.RangeWorker, System.Threading.Tasks.Parallel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]](ReplicatableUserAction`1, System.Threading.Tasks.ParallelOptions, Boolean) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at System.Threading.Tasks.Parallel.ForWorker[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Int32, Int32, System.Threading.Tasks.ParallelOptions, System.Action`1, System.Action`2, System.Func`4, System.Func`1, System.Action`1) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at System.Threading.Tasks.Parallel.For(Int32, Int32, System.Threading.Tasks.ParallelOptions, System.Action`1) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(Microsoft.CodeAnalysis.SourceLocation, System.Predicate`1, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceModuleSymbol.ForceComplete(Microsoft.CodeAnalysis.SourceLocation, System.Predicate`1, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol.ForceComplete(Microsoft.CodeAnalysis.SourceLocation, System.Predicate`1, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetSourceDeclarationDiagnostics(Microsoft.CodeAnalysis.SyntaxTree, System.Nullable`1, System.Func`4,Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1,System.Collections.Generic.IEnumerable`1>, System.Predicate`1, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnosticsWithoutSeverityFiltering(Microsoft.CodeAnalysis.CompilationStage, Boolean, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, System.Predicate`1, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnostics(Microsoft.CodeAnalysis.CompilationStage, Boolean, Microsoft.CodeAnalysis.DiagnosticBag, System.Predicate`1, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnostics(Microsoft.CodeAnalysis.CompilationStage, Boolean, Microsoft.CodeAnalysis.DiagnosticBag, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CommonCompiler.CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger, Microsoft.CodeAnalysis.Compilation ByRef, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1, Microsoft.CodeAnalysis.AnalyzerConfigSet, System.Collections.Immutable.ImmutableArray`1, System.Collections.Immutable.ImmutableArray`1, Microsoft.CodeAnalysis.DiagnosticBag, Microsoft.CodeAnalysis.ErrorLogger, System.Threading.CancellationToken, System.Threading.CancellationTokenSource ByRef, Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver ByRef, System.Nullable`1 ByRef) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CommonCompiler.RunCore(System.IO.TextWriter, Microsoft.CodeAnalysis.ErrorLogger, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CommonCompiler.Run(System.IO.TextWriter, System.Threading.CancellationToken) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.CommandLine.Csc+<>c__DisplayClass1_0.b__0(System.IO.TextWriter) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.CommandLine.Csc.Run(System.String[], Microsoft.CodeAnalysis.BuildPaths, System.IO.TextWriter, Microsoft.CodeAnalysis.IAnalyzerAssemblyLoader) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CommandLine.BuildClient.RunCompilation(System.Collections.Generic.IEnumerable`1, Microsoft.CodeAnalysis.BuildPaths, System.IO.TextWriter, System.String) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CommandLine.BuildClient.Run(System.Collections.Generic.IEnumerable`1, Microsoft.CodeAnalysis.CommandLine.RequestLanguage, Microsoft.CodeAnalysis.CommandLine.CompileFunc, Microsoft.CodeAnalysis.CommandLine.CompileOnServerFunc, Microsoft.CodeAnalysis.CommandLine.ICompilerServerLogger) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.CommandLine.Program.MainCore(System.String[]) [C:\Users\igord\dotnet-test\dotnet-test.csproj] at Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main(System.String[]) [C:\Users\igord\dotnet-test\dotnet-test.csproj] ```

And here is full output as a file, just in case stacktrace.txt

CyrusNajmabadi commented 1 month ago

Perfect. Thanks!