Compiler missing namespace symbols seem to not implment IsGlobalNamespace properly.
#44.767 aperta il 1 giu 2020
Metriche repository
- Star
- (20.414 stelle)
- Metriche merge PR
- (Merge medio 6g 17h) (256 PR mergiate in 30 g)
Descrizione
Found in https://github.com/dotnet/roslyn/pull/44713
Say you have a project with no references (not even corlib or anything like that):
class C { public int i; }
the i field will have an ErrorTypeSymbol for it's return type with name "Int32" contained in a missing namespace "" . "System". i.e. it is parented by two namespaces (expected), the empty named one, and the System named one. The empty named namespace is not marked as a global namespace though. i.e. IsGlobalNamespace returns false. Indeed, the empty named namespace is itself then parented by an actual empty-named-global-namespace.
This feel very unintentional and odd. IDE worked around this simply by checking if we have an error type and special casing our processing of this namespace chain. So this is nbd, but potentially something that someone coudl fix (including community) in the future if they were so inclined.