Haxe @:generic导致编译器错误?

时间:2020-05-15 14:18:52

标签: generics attributes haxe

下面,我有一个真正精简的程序,该程序具有一个通用类,然后使它成为实例。在编写代码时,出现编译时错误“ MyGeneric>应该是MyGeneric_Int”。当我删除@:generic属性时,它可以编译并正常工作。我是否误解了@:generic的使用?这里甚至需要吗?这是在haxe 4.0.5上

@:generic
class MyGeneric<T>
{
    public function new (fn:T)
    {
        trace(fn);
    }
}

class Repro
{
    static function main()
    {
        var tracer = getTracer();
    }

    public static function getTracer():MyGeneric<Any>
    {
        var arg:Any = 3;
        return getGeneric(arg);
    }

    @:generic
    public static function getGeneric<T>(T):MyGeneric<T>
    {
        return new MyGeneric(T);
    }
}

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:return cast getGeneric(arg);