<?hh
class A<T> {
protected T $value;
public function set(T $value) {
$this->value = $value;
}
}
class B {
public function doB() : string {
return "b";
}
}
class C extends B {
public function doC() : string {
return "c";
}
}
function foo(A<B> $vec) {
$vec->add(new B());
}
function bar(A<C> $vec) {
foo($vec);
}
$v = new A<C>();
bar($v);
<?hh
class A<T> {
protected T $value;
public function set(T $value) {
$this->value = $value;
}
}
class B {
public function doB() : string {
return "b";
}
}
class C extends B {
public function doC() : string {
return "c";
}
}
function foo(A<B> $vec) {
$vec->add(new B());
}
function bar(A<C> $vec) {
foo($vec);
}
$v = new A<C>();
bar($v);
Output for 8.0.13
Parse error: syntax error, unexpected token "class" in /in/PI8hT on line 3
Process exited with code 255.
Output for 7.3.32 - 7.3.33, 7.4.33
Parse error: syntax error, unexpected 'class' (T_CLASS) in /in/PI8hT on line 3
Process exited with code 255.