public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, IndifierExp exp, Exp outer) { Model.IndifierInfo info = model.GetIndifierInfo(exp.Name); if (info.type != null) { typeRef.Add(info.type.GetRefType()); } }
public void VisitExp(DB_Type type, DB_Member member, DB_StatementSyntax statement, IndifierExp exp, Exp outer) { Model.IndifierInfo info = model.GetIndifierInfo(exp.Name); if (info.is_class_type_parameter) { Console.Error.Write("未处理的类型参数标识符 " + exp.Name); } //if (info.type != null) // typeRef.Add(info.type.GetRefType()); }
public static Metadata.DB_Type GetType(Metadata.Expression.TypeSyntax typeSyntax, Metadata.Model model) { if (typeSyntax.isGenericType) { Metadata.DB_Type ma = GetType(typeSyntax.GetTypeDefinitionFullName()); return(Metadata.DB_Type.MakeGenericType(ma, typeSyntax.args, new Metadata.Model(new Finder()))); } if (typeSyntax.isGenericParameter) { //return Metadata.DB_Type.MakeGenericParameterType(GetType(typeSyntax), new Metadata.GenericParameterDefinition() { type_name = gps.Name }); return(model.GetIndifierInfo(typeSyntax.Name).type); } return(GetType(typeSyntax.GetTypeDefinitionFullName())); }