From a3f324d153933b2fcbd5da3c008ee5baa182e6db Mon Sep 17 00:00:00 2001 From: yair halberstadt Date: Sun, 14 Feb 2021 16:00:14 +0200 Subject: [PATCH] SignatureOnlyParameterSymbol.ContainingSymbol throws --- .../Portable/SymbolDisplay/SymbolDisplayVisitor.Members.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Compilers/CSharp/Portable/SymbolDisplay/SymbolDisplayVisitor.Members.cs b/src/Compilers/CSharp/Portable/SymbolDisplay/SymbolDisplayVisitor.Members.cs index 74799c35e8584..f2e9c1701fbc5 100644 --- a/src/Compilers/CSharp/Portable/SymbolDisplay/SymbolDisplayVisitor.Members.cs +++ b/src/Compilers/CSharp/Portable/SymbolDisplay/SymbolDisplayVisitor.Members.cs @@ -678,7 +678,9 @@ public override void VisitParameter(IParameterSymbol symbol) // (e.g. field types, param types, etc), which just want the name whereas parameters are // used on their own or in the context of methods. - var isFunctionPointerParameter = symbol.ContainingSymbol is IMethodSymbol { MethodKind: MethodKind.FunctionPointerSignature }; + // SignatureOnlyParameterSymbol.ContainingSymbol throws. + var isFunctionPointerParameter = symbol is not Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.Symbol { UnderlyingSymbol: SignatureOnlyParameterSymbol } + && symbol.ContainingSymbol is IMethodSymbol { MethodKind: MethodKind.FunctionPointerSignature }; var includeType = format.ParameterOptions.IncludesOption(SymbolDisplayParameterOptions.IncludeType) || isFunctionPointerParameter; var includeName = format.ParameterOptions.IncludesOption(SymbolDisplayParameterOptions.IncludeName)