Skip to content

Targeted attribute list on extension block causes compiler crash #82445

@Rekkonnect

Description

@Rekkonnect

Version Used

VS 2026 18.3.1

Steps to Reproduce

Paste the following code anywhere:

public static class FluentExtensions
{
    [return: MyAttribute]
    extension(string s)
    {
    }
}

Notice the return attribute target on an extension block

Expected Behavior

No compiler crash

Actual Behavior

Compiler crashes with the following trace:

1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : Process terminated.
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : System.InvalidOperationException: Unexpected value 'Type' of type 'Microsoft.CodeAnalysis.CSharp.Symbols.AttributeLocation'
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.MatchAttributeTarget(IAttributeTargetSymbol attributeTarget, AttributeLocation symbolPart, AttributeTargetSpecifierSyntax targetOpt, BindingDiagnosticBag diagnostics)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.GetAttributesToBind(OneOrMany`1 attributeDeclarationSyntaxLists, AttributeLocation symbolPart, BindingDiagnosticBag diagnostics, CSharpCompilation compilation, Func`3 attributeMatchesOpt, Binder rootBinderOpt, ImmutableArray`1& binders)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.LoadAndValidateAttributes(OneOrMany`1 attributesSyntaxLists, CustomAttributesBag`1& lazyCustomAttributesBag, AttributeLocation symbolPart, Boolean earlyDecodingOnly, Binder binderOpt, Func`3 attributeMatchesOpt, Action`1 beforeAttributePartBound, Action`1 afterAttributePartBound)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.GetAttributesBag()
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.GetAttributes()
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberConditionally(SourceLocation locationOpt, Predicate`1 filter, Symbol member, CancellationToken cancellationToken)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Roslyn.Utilities.RoslynParallel.<>c__DisplayClass1_0.<For>g__errorHandlingBody|0(Int32 i)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Environment.FailFast(System.String, System.Exception)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.ErrorReporting.FailFast.OnFatalException(System.Exception)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.ErrorReporting.FatalError.Report(System.Exception, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity, Boolean)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.ErrorReporting.FatalError.ReportAndPropagateUnlessCanceled(System.Exception, System.Threading.CancellationToken, Microsoft.CodeAnalysis.ErrorReporting.ErrorSeverity)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Roslyn.Utilities.RoslynParallel+<>c__DisplayClass1_0.<For>g__errorHandlingBody|0(Int32)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Runtime.EH.FindFirstPassHandler(System.Object, UInt32, System.Runtime.StackFrameIterator ByRef, UInt32 ByRef, Byte* ByRef)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Runtime.EH.DispatchEx(System.Runtime.StackFrameIterator ByRef, ExInfo ByRef)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.MatchAttributeTarget(Microsoft.CodeAnalysis.CSharp.Symbols.IAttributeTargetSymbol, Microsoft.CodeAnalysis.CSharp.Symbols.AttributeLocation, Microsoft.CodeAnalysis.CSharp.Syntax.AttributeTargetSpecifierSyntax, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.GetAttributesToBind(Microsoft.CodeAnalysis.Collections.OneOrMany`1<Microsoft.CodeAnalysis.SyntaxList`1<Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax>>, Microsoft.CodeAnalysis.CSharp.Symbols.AttributeLocation, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag, Microsoft.CodeAnalysis.CSharp.CSharpCompilation, System.Func`3<Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Binder,Boolean>, Microsoft.CodeAnalysis.CSharp.Binder, System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CSharp.Binder> ByRef)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.LoadAndValidateAttributes(Microsoft.CodeAnalysis.Collections.OneOrMany`1<Microsoft.CodeAnalysis.SyntaxList`1<Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax>>, Microsoft.CodeAnalysis.CustomAttributesBag`1<Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData> ByRef, Microsoft.CodeAnalysis.CSharp.Symbols.AttributeLocation, Boolean, Microsoft.CodeAnalysis.CSharp.Binder, System.Func`3<Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Binder,Boolean>, System.Action`1<Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax>, System.Action`1<Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax>)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.GetAttributesBag()
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.GetAttributes()
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(Microsoft.CodeAnalysis.SourceLocation, System.Predicate`1<Microsoft.CodeAnalysis.CSharp.Symbol>, System.Threading.CancellationToken)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(Microsoft.CodeAnalysis.SourceLocation, System.Predicate`1<Microsoft.CodeAnalysis.CSharp.Symbol>, System.Threading.CancellationToken)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberConditionally(Microsoft.CodeAnalysis.SourceLocation, System.Predicate`1<Microsoft.CodeAnalysis.CSharp.Symbol>, Microsoft.CodeAnalysis.CSharp.Symbol, System.Threading.CancellationToken)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Roslyn.Utilities.RoslynParallel+<>c__DisplayClass1_0.<For>g__errorHandlingBody|0(Int32)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`2[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].<ForWorker>b__1(System.Threading.Tasks.RangeWorker ByRef, Int64, Boolean ByRef)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Threading.Tasks.TaskReplicator+Replica.Execute()
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Threading.ThreadPoolWorkQueue.Dispatch()
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart()
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at System.Threading.Thread.StartCallback()
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : System.InvalidOperationException: Unexpected value 'Type' of type 'Microsoft.CodeAnalysis.CSharp.Symbols.AttributeLocation'
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.MatchAttributeTarget(IAttributeTargetSymbol attributeTarget, AttributeLocation symbolPart, AttributeTargetSpecifierSyntax targetOpt, BindingDiagnosticBag diagnostics)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.GetAttributesToBind(OneOrMany`1 attributeDeclarationSyntaxLists, AttributeLocation symbolPart, BindingDiagnosticBag diagnostics, CSharpCompilation compilation, Func`3 attributeMatchesOpt, Binder rootBinderOpt, ImmutableArray`1& binders)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.LoadAndValidateAttributes(OneOrMany`1 attributesSyntaxLists, CustomAttributesBag`1& lazyCustomAttributesBag, AttributeLocation symbolPart, Boolean earlyDecodingOnly, Binder binderOpt, Func`3 attributeMatchesOpt, Action`1 beforeAttributePartBound, Action`1 afterAttributePartBound)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.GetAttributesBag()
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.GetAttributes()
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberConditionally(SourceLocation locationOpt, Predicate`1 filter, Symbol member, CancellationToken cancellationToken)
1>C:\Program Files\dotnet\sdk\10.0.103\Roslyn\Microsoft.CSharp.Core.targets(84,5): error :    at Roslyn.Utilities.RoslynParallel.<>c__DisplayClass1_0.<For>g__errorHandlingBody|0(Int32 i)

Metadata

Metadata

Assignees

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions