1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
class A {
public function f():Array<A> {
return [];
}
public function f2():A {
return this;
}
}
@:generic
class B<T:haxe.Constraints.Constructible<Void->Void>> {
var items:Map<Int,A>;
public function new() {
items = new Map();
}
public function f():Array<A> {
var a = [];
for (node in items)
a = a.concat(node.f());
return a;
}
}
class Main {
static function main() {
var b = new B<Main>();
Sys.stderr().writeString("" + b.f());
}
public function new() { }
}
|