Error on self::class on non final classes
[hiphop-php.git] / hphp / hack / test / typecheck / classname / acts_as_string.php
blob8b5352598ed4e2974865e1c01930e96d1483b1c4
1 <?hh // strict
3 class C {}
4 trait Tr {}
5 interface I {}
6 type Tdef = C;
7 newtype NTdef = I;
9 function foo(): string {
10 $x = Tr::class;
11 hh_show($x);
12 print_stringish(Tr::class);
13 print_stringish(C::class);
14 print_stringish(I::class);
15 print_stringish(Tdef::class);
16 print_stringish(NTdef::class);
17 print_string(Tr::class);
18 print_string(C::class);
19 print_string(I::class);
20 print_string(Tdef::class);
21 print_string(NTdef::class);
22 return C::class;
25 function print_string(string $s): void {
26 echo $s, "\n";
29 function print_stringish(Stringish $s): void {
30 echo $s, "\n";
33 function string_operations(
34 classname<I> $classname,
35 typename<Tdef> $tname,
36 ): void {
37 $_ = 'prefix'.$classname;
38 $_ = 'prefix'.$tname;
39 echo $classname; // is it stringish?
40 echo $tname;