public ATypeNameExpression GetTypeExpression ()
{
if (Left == null) {
if (TypeArguments != null)
return new SimpleName (Name, TypeArguments, Location);
return new SimpleName (Name, Location);
}
if (is_double_colon) {
if (Left.Left != null)
throw new InternalErrorException ("The left side of a :: should be an identifier");
return new QualifiedAliasMember (Left.Name, Name, TypeArguments, Location);
}
Expression lexpr = Left.GetTypeExpression ();
return new MemberAccess (lexpr, Name, TypeArguments, Location);
}