dotnet/roslyn

`SemanticModel.GetSymbolInfo` doesn't return a symbol for `FunctionPointerUnmanagedCallingConventionSyntax`

Ouverte

#59 060 ouverte le 25 janv. 2022

 (6 commentaires) (0 réaction) (0 personne assignée)C# (4 257 forks)batch import
Area-CompilersFeature - Function Pointershelp wanted

Métriques du dépôt

Stars
 (20 414 étoiles)
Métriques de merge PR
 (Merge moyen 6j 17h) (256 PRs mergées en 30 j)

Description

Version Used:

main

Steps to Reproduce:

Invoke GetSymbolInfo on a FunctionPointerUnmanagedCallingConventionSyntax, eg:

            CSharpCompilation comp = CSharpCompilation.Create("MyAssembly", new[] { SyntaxFactory.ParseSyntaxTree(@"
public unsafe class C
{
    delegate* unmanaged[MemberFunction]<void> f;
}") });
            var tree = comp.SyntaxTrees[0];
            var model = comp.GetSemanticModel(tree);
            var node = tree.GetRoot().DescendantNodes().Where(node => node is FunctionPointerUnmanagedCallingConventionSyntax).Single();
            var info = model.GetSymbolInfo(node); // info.Symbol is null.

Expected Behavior:

The type symbol for System.Runtime.CompilerServices.CallConvMemberFunction

Actual Behavior:

Null symbol

https://github.com/dotnet/roslyn/blob/7cfc9e70afd641bb7b6bb29ae502049f25dc42a3/src/Compilers/CSharp/Portable/Compilation/CSharpSemanticModel.cs#L4899-L4924

Guide contributeur