Symbol representing a using alias appearing in a compilation unit.
Generally speaking, these symbols do not appear in the set of symbols reachable
from the unnamed namespace declaration. In other words, when a using alias is used in a
program, it acts as a transparent alias, and the symbol to which it is an alias is used in
the symbol table. For example, in the source code
Imports o = System.Object
Namespace NS
partial class C : Inherits o : End Class
partial class C : Inherits Object : End Class
partial class C : Inherits System.Object : End Class
End Namespace
all three declarations for class C are equivalent and result in the same symbol table object for C.
However, these alias symbols do appear in the results of certain SemanticModel APIs.
Specifically, for the base clause of the first of C's class declarations, the
following APIs may produce a result that contains an AliasSymbol:
SemanticInfo SemanticModel.GetSemanticInfo(ExpressionSyntax expression);
SemanticInfo SemanticModel.BindExpression(SyntaxNode location, ExpressionSyntax expression);
SemanticInfo SemanticModel.BindType(SyntaxNode location, ExpressionSyntax type);
SemanticInfo SemanticModel.BindNamespaceOrType(SyntaxNode location, ExpressionSyntax type);
Also, the following are affected if container=Nothing (and, for the latter, when container=Nothing or arity=0):
Public Function LookupNames(position As Integer, Optional container As NamespaceOrTypeSymbol = Nothing, Optional options As LookupOptions = LookupOptions.Default, Optional results As List(Of String) = Nothing) As IList(Of String)
Public Function LookupSymbols(position As Integer,
Optional container As NamespaceOrTypeSymbol = Nothing,
Optional name As String = Nothing,
Optional arity As Integer? = Nothing,
Optional options As LookupOptions = LookupOptions.Default,
Optional results As List(Of Symbol) = Nothing) As IList(Of Symbol)