-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Open
Description
If you add the following unittest to SymbolDisplayTests
, you get a cast exception.
This issue is referenced in a test.
System.InvalidCastException : Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.NonErrorNamedTypeSymbol' to type 'Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol'.
Stack Trace:
SymbolDisplayVisitor.AddNameAndTypeArgumentsOrParameters(INamedTypeSymbol symbol, Boolean noEscaping) line 281
<Theory, CombinatorialData>
Public Sub UseArityForGenericTypes_CSharpSymbol(useMetadata As Boolean)
Dim text =
<text>
<![CDATA[
class C<T>
{
}
]]>
</text>.Value
Dim format = SymbolDisplayFormat.VisualBasicErrorMessageFormat.
WithCompilerInternalOptions(SymbolDisplayCompilerInternalOptions.UseArityForGenericTypes)
Dim parseOptions = CSharp.CSharpParseOptions.Default.WithLanguageVersion(CSharp.LanguageVersion.Preview)
Dim comp As Compilation
If useMetadata Then
Dim libComp = CreateCSharpCompilation("c", text, parseOptions:=parseOptions)
comp = CreateCSharpCompilation("d", code:="", parseOptions:=parseOptions, referencedAssemblies:=libComp.References.Concat(libComp.EmitToImageReference()))
Else
comp = CreateCSharpCompilation("c", text, parseOptions:=parseOptions)
End If
Dim c = DirectCast(comp.GlobalNamespace.GetMembers("C").Single(), ITypeSymbol)
' Tracked by :
AssertEx.Equal("C", SymbolDisplay.ToDisplayString(c, format))
End Sub