dotnet/roslyn

VB SemanticModel fails to bind type argument inside cref even though compiler produces no error

Open

#2,197 建立於 2015年4月23日

在 GitHub 查看
 (0 留言) (0 反應) (0 負責人)C# (20,414 star) (4,257 fork)batch import
Area-CompilersBugConcept-APIhelp wanted

描述

The C# compiler (SemanticModel) correctly returns a TypeParameter symbol for the U in <see cref="C{U}"/> in the below example. I can validate this in the syntax visualizer (see below screenshot) and this also works via API (for example if I get symbol for C{U} and inspect its symbol.TypeArguments. capture

For the corresponding case in VB, U does not bind (see below screenshot). If I get symbol for C(Of U) and inspect its symbol.TypeArguments, I get back a ErrorTypeSymbol. capture2

Shouldn't the VB compiler be able to return a valid symbol in the above case (considering that the code didn't produce any errors)? Why do the two compilers behave differently here.

貢獻者指南

VB SemanticModel fails to bind type argument inside cref even though compiler produces no error · dotnet/roslyn#2197 | Good First Issue