$param | $int; /* testTypeUnionArrowReturnType */ $arrowWithReturnType = fn ($param) : int|null => $param * 10; /* testBitwiseOrInArrayKey */ $array = array( A | B => /* testBitwiseOrInArrayValue */ B | C ); /* testBitwiseOrInShortArrayKey */ $array = [ A | B => /* testBitwiseOrInShortArrayValue */ B | C ]; /* testBitwiseOrTryCatch */ try { } catch ( ExceptionA | ExceptionB $e ) { } /* testBitwiseOrNonArrowFnFunctionCall */ $obj->fn($something | $else); /* testTypeUnionNonArrowFunctionDeclaration */ function &fn(int|false $something) {} /* testTypeUnionPHP82TrueFirst */ function trueTypeParam(true|null $param) {} /* testTypeUnionPHP82TrueMiddle */ function trueTypeReturn($param): array|true|null {} /* testTypeUnionPHP82TrueLast */ $closure = function ($param): array|true {} /* testLiveCoding */ // Intentional parse error. This has to be the last test in the file. return function( type|