+ Symbol representing a using alias appearing in a compilation unit or within a namespace
+ declaration. 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
+
+ namespace NS
+ {
+ using o = System.Object;
+ partial class C : o {}
+ partial class C : object {}
+ partial class C : System.Object {}
+ }
+
+ all three declarations for class C are equivalent and result in the same symbol table object
+ for C. However, these using 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(CSharpSyntaxNode location, ExpressionSyntax expression);
+ SemanticInfo SemanticModel.BindType(CSharpSyntaxNode location, ExpressionSyntax type);
+ SemanticInfo SemanticModel.BindNamespaceOrType(CSharpSyntaxNode location, ExpressionSyntax type);
+
+ Also, the following are affected if container==null (and, for the latter, when arity==null
+ or arity==0):
+
+ IList<string> SemanticModel.LookupNames(CSharpSyntaxNode location, NamespaceOrTypeSymbol container = null, LookupOptions options = LookupOptions.Default, List<string> result = null);
+ IList<Symbol> SemanticModel.LookupSymbols(CSharpSyntaxNode location, NamespaceOrTypeSymbol container = null, string name = null, int? arity = null, LookupOptions options = LookupOptions.Default, List<Symbol> results = null);
+
+
+