Generics Haxe@:泛型导致编译器错误?

Generics Haxe@:泛型导致编译器错误?,generics,attributes,haxe,Generics,Attributes,Haxe,下面我有一个非常简单的程序,它有一个泛型类,然后创建一个实例。在编写代码时,我得到一个编译时错误“MyGeneric>应该是MyGeneric\u Int”。当我删除@:generic属性时,它会编译并正常工作。我是否误解了@:generic的用法?这里需要吗?这是在haxe 4.0.5上 @:generic class MyGeneric<T> { public function new (fn:T) { trace(fn); } } cl

下面我有一个非常简单的程序,它有一个泛型类,然后创建一个实例。在编写代码时,我得到一个编译时错误“MyGeneric>应该是MyGeneric\u 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);
    }
}
@:通用
类MyGeneric
{
新公共功能(fn:T)
{
微量元素(fn);
}
}
复课
{
静态函数main()
{
var tracer=getTracer();
}
公共静态函数getTracer():MyGeneric
{
变量arg:Any=3;
返回getGeneric(arg);
}
@:通用
公共静态函数getGeneric(T):MyGeneric
{
返回新的MyGeneric(T);
}
}

您可以这样做:
返回cast getGeneric(arg)

虽然这确实有效,但我首先还是成功地发布了@:泛型注释。我正在寻求更多的澄清,以解释为什么会发生这种情况,以及这两种解决方案是否会产生后果。