<?hh
type Point<T> = shape ('x' => T, 'y' => T);
function demo1(Point<T> $pt1){}
// do stufff - general case
type Point<int> = shape ('x' => int, 'y' => int);
function demo2(Point<int> $pt1) {}
// special case for Point of type int only
type Point<int> = shape('x' => int, 'y' => int);
function demo3(Point<int> $pt1) {}
// special case for Point of type int where y is 0
<?hh
type Point<T> = shape ('x' => T, 'y' => T);
function demo1(Point<T> $pt1){}
// do stufff - general case
type Point<int> = shape ('x' => int, 'y' => int);
function demo2(Point<int> $pt1) {}
// special case for Point of type int only
type Point<int> = shape('x' => int, 'y' => int);
function demo3(Point<int> $pt1) {}
// special case for Point of type int where y is 0
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
<?hh
type Point<T> = shape ('x' => T, 'y' => T);
function demo1(Point<T> $pt1){}
// do stufff - general case
type Point<int> = shape ('x' => int, 'y' => int);
function demo2(Point<int> $pt1) {}
// special case for Point of type int only
type Point<int> = shape('x' => int, 'y' => int);
function demo3(Point<int> $pt1) {}
// special case for Point of type int where y is 0
Output for 8.0.13
Parse error: syntax error, unexpected identifier "type" in /in/TH3sP on line 3
Process exited with code 255.
Output for 7.3.32 - 7.3.33, 7.4.33
Parse error: syntax error, unexpected 'type' (T_STRING) in /in/TH3sP on line 3
Process exited with code 255.