-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Closed
Labels
Description
Will all credit for discovery to the wonderful @AdmiralSnyder
Seems to only have a visible effect in LSP, but the code is shared so might be hitting exceptions in the background otherwise.
Repro:
public class Goo
{
override $$
[Description("a")]
public string Name { get; set; }
}
As soon as a character is typed at $$ the following exception occurs:
2025-02-13 09:13:19.542 [info] [Error - 9:13:19 AM] [LanguageServerExtensionManager] Microsoft.CodeAnalysis.CSharp.Completion.Providers.OverrideCompletionProvider threw an exception. System.ArgumentException: identifier
at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.IdentifierName(SyntaxToken identifier) in /_/src/Compilers/CSharp/Portable/Generated/CSharpSyntaxGenerator/CSharpSyntaxGenerator.SourceGenerator/Syntax.xml.Main.Generated.cs:line 2231
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitIdentifierName(IdentifierNameSyntax node) in /_/src/Compilers/CSharp/Portable/Generated/CSharpSyntaxGenerator/CSharpSyntaxGenerator.SourceGenerator/Syntax.xml.Main.Generated.cs:line 1489
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node) in /_/src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxRewriter.cs:line 41
at Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node) in /_/src/Compilers/CSharp/Portable/Syntax/SyntaxReplacer.cs:line 188
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitArrayType(ArrayTypeSyntax node) in /_/src/Compilers/CSharp/Portable/Generated/CSharpSyntaxGenerator/CSharpSyntaxGenerator.SourceGenerator/Syntax.xml.Main.Generated.cs:line 1507
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node) in /_/src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxRewriter.cs:line 41
at Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node) in /_/src/Compilers/CSharp/Portable/Syntax/SyntaxReplacer.cs:line 188
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitIncompleteMember(IncompleteMemberSyntax node) in /_/src/Compilers/CSharp/Portable/Generated/CSharpSyntaxGenerator/CSharpSyntaxGenerator.SourceGenerator/Syntax.xml.Main.Generated.cs:line 2086
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node) in /_/src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxRewriter.cs:line 41
at Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node) in /_/src/Compilers/CSharp/Portable/Syntax/SyntaxReplacer.cs:line 188
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitListElement[TNode](TNode node) in /_/src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxRewriter.cs:line 168
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitList[TNode](SyntaxList`1 list) in /_/src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxRewriter.cs:line 141
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitClassDeclaration(ClassDeclarationSyntax node) in /_/src/Compilers/CSharp/Portable/Generated/CSharpSyntaxGenerator/CSharpSyntaxGenerator.SourceGenerator/Syntax.xml.Main.Generated.cs:line 1978
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node) in /_/src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxRewriter.cs:line 41
at Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node) in /_/src/Compilers/CSharp/Portable/Syntax/SyntaxReplacer.cs:line 188
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitListElement[TNode](TNode node) in /_/src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxRewriter.cs:line 168
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitList[TNode](SyntaxList`1 list) in /_/src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxRewriter.cs:line 141
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.VisitCompilationUnit(CompilationUnitSyntax node) in /_/src/Compilers/CSharp/Portable/Generated/CSharpSyntaxGenerator/CSharpSyntaxGenerator.SourceGenerator/Syntax.xml.Main.Generated.cs:line 1939
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxRewriter.Visit(SyntaxNode node) in /_/src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxRewriter.cs:line 41
at Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxReplacer.Replacer`1.Visit(SyntaxNode node) in /_/src/Compilers/CSharp/Portable/Syntax/SyntaxReplacer.cs:line 188
at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode.ReplaceCore[TNode](IEnumerable`1 nodes, Func`3 computeReplacementNode, IEnumerable`1 tokens, Func`3 computeReplacementToken, IEnumerable`1 trivia, Func`3 computeReplacementTrivia) in /_/src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxNode.cs:line 472
at Microsoft.CodeAnalysis.SyntaxNodeExtensions.ReplaceTokens[TRoot](TRoot root, IEnumerable`1 tokens, Func`3 computeReplacementToken) in /_/src/Compilers/Core/Portable/Syntax/SyntaxNodeExtensions.cs:line 210
at Microsoft.CodeAnalysis.Completion.Providers.AbstractMemberInsertingCompletionProvider.RemoveDestinationNodeAsync(Document memberContainingDocument, CodeCleanupOptions cleanupOptions, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/Completion/Providers/AbstractMemberInsertingCompletionProvider.cs:line 216
at Microsoft.CodeAnalysis.Completion.Providers.AbstractMemberInsertingCompletionProvider.DetermineNewDocumentAsync(Document document, CompletionItem completionItem, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/Completion/Providers/AbstractMemberInsertingCompletionProvider.cs:line 130
at Microsoft.CodeAnalysis.Completion.Providers.AbstractMemberInsertingCompletionProvider.GetChangeAsync(Document document, CompletionItem item, Nullable`1 commitKey, CancellationToken cancellationToken) in /_/src/Features/Core/Portable/Completion/Providers/AbstractMemberInsertingCompletionProvider.cs:line 48
at Microsoft.CodeAnalysis.Extensions.IExtensionManagerExtensions.PerformFunctionAsync[T](IExtensionManager extensionManager, Object extension, Func`2 function, T defaultValue, CancellationToken cancellationToken)
Causes a yellow bar in VS for Razor files, or if the LSP C# editor is turned on:

