class Base
и class Ext extends Base
. class B<T>
с типизированным методом foo<T>(value:T)
Почему B<Base>.foo
не принимает экземпляр B<Ext>
(неявное понижение параметра типа?) по умолчанию?
Вот пример: http://try.haxe.org/#d443f
class Test {
static function main() {
var bExt = new B(new Ext());
var bBase = new B(new Base());
bBase.foo(bExt);
//ofc
//bBase.foo(cast bExt);
}
}
class B<T>
{
public function new(v:T)
{
}
public function foo(v:B<T>)
{
//
}
}
class Base {
public function new(){}
}
class Ext extends Base {
public function new(){
super();
}
}
Есть ли способ вызвать неявное приведение параметра типа для B.foo?