ISSUE: 支持存在类型
alias T
where->ToString()=> string,
.member : int;
let a = array<T>;
编译器会在ast_type::accept处检查类型是否满足约束要求,若不满足则编译时错误
存在类型的值只能调用存在类型声明时给定的方法或者索引指定的成员,索引或函数调用处编译器负责收集全部类型,并筛选出所有可能类型,在此处生成动态类型哈希检查,运行时根据实际类型跳转到对应调用函数区域代码
Edited by mr cino