-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathissues.json
1 lines (1 loc) · 344 KB
/
issues.json
1
[{"severity":"info","line_from":17,"line_to":17,"type":"MixedTypeCoercion","message":"The declared return type 'Amp\\Promise<array<int, string>>' for Facebook\\HHAST\\__Private\\execute_async is more specific than the inferred return type 'Amp\\Promise'","file_name":"src\/Facebook\/HHAST\/__Private\/execute_async.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/__Private\/execute_async.php","snippet":"\/**\n * @return \\Amp\\Promise<array<int, string>>\n *\/\nfunction execute_async(string ...$args) : \\Amp\\Promise\n{\n return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, array<int, string>> *\/","selected_text":"@return \\Amp\\Promise<array<int, string>>","from":442,"to":482,"snippet_from":435,"snippet_to":637,"column_from":4,"column_to":44},{"severity":"info","line_from":21,"line_to":59,"type":"MixedTypeCoercion","message":"The type 'Amp\\Promise' is more general than the declared return type 'Amp\\Promise<array<int, string>>' for Facebook\\HHAST\\__Private\\execute_async","file_name":"src\/Facebook\/HHAST\/__Private\/execute_async.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/__Private\/execute_async.php","snippet":" return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, array<int, string>> *\/\n function () use($args) : \\Generator {\n \/\/ no equivalent to stream_await\n if (false) {\n yield '';\n }\n \n $command = \\implode(' ', \\array_map(function ($arg) {\n return \\escapeshellarg($arg);\n }, $args));\n $spec = array(0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w'));\n $pipes = array();\n $proc = \\proc_open($command, $spec, $pipes);\n list($stdin, $stdout, $stderr) = $pipes;\n \\fclose($stdin);\n \\stream_set_blocking($stdout, false);\n $exit_code = -2;\n $output = '';\n while (true) {\n $chunk = \\stream_get_contents($stdout);\n $output .= $chunk;\n $status = \\proc_get_status($proc);\n if ($status['pid'] && !$status['running']) {\n $exit_code = $status['exitcode'];\n break;\n }\n }\n $output .= \\stream_get_contents($stdout);\n \\fclose($stdout);\n \\fclose($stderr);\n \\proc_close($proc);\n if ($exit_code !== 0) {\n throw new SubprocessException((array) $args, $exit_code);\n }\n return \\explode('\n', $output);\n }\n );","selected_text":"return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, array<int, string>> *\/\n function () use($args) : \\Generator {\n \/\/ no equivalent to stream_await\n if (false) {\n yield '';\n }\n \n $command = \\implode(' ', \\array_map(function ($arg) {\n return \\escapeshellarg($arg);\n }, $args));\n $spec = array(0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w'));\n $pipes = array();\n $proc = \\proc_open($command, $spec, $pipes);\n list($stdin, $stdout, $stderr) = $pipes;\n \\fclose($stdin);\n \\stream_set_blocking($stdout, false);\n $exit_code = -2;\n $output = '';\n while (true) {\n $chunk = \\stream_get_contents($stdout);\n $output .= $chunk;\n $status = \\proc_get_status($proc);\n if ($status['pid'] && !$status['running']) {\n $exit_code = $status['exitcode'];\n break;\n }\n }\n $output .= \\stream_get_contents($stdout);\n \\fclose($stdout);\n \\fclose($stderr);\n \\proc_close($proc);\n if ($exit_code !== 0) {\n throw new SubprocessException((array) $args, $exit_code);\n }\n return \\explode('\n', $output);\n }\n );","from":548,"to":1991,"snippet_from":544,"snippet_to":1991,"column_from":5,"column_to":0},{"severity":"info","line_from":23,"line_to":58,"type":"MixedTypeCoercion","message":"Argument 1 of Amp\\call expects callable(mixed...):mixed, parent type Closure():Generator<int, mixed, void, array<int, string>> provided","file_name":"src\/Facebook\/HHAST\/__Private\/execute_async.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/__Private\/execute_async.php","snippet":" \/** @return \\Generator<int, mixed, void, array<int, string>> *\/\n function () use($args) : \\Generator {\n \/\/ no equivalent to stream_await\n if (false) {\n yield '';\n }\n \n $command = \\implode(' ', \\array_map(function ($arg) {\n return \\escapeshellarg($arg);\n }, $args));\n $spec = array(0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w'));\n $pipes = array();\n $proc = \\proc_open($command, $spec, $pipes);\n list($stdin, $stdout, $stderr) = $pipes;\n \\fclose($stdin);\n \\stream_set_blocking($stdout, false);\n $exit_code = -2;\n $output = '';\n while (true) {\n $chunk = \\stream_get_contents($stdout);\n $output .= $chunk;\n $status = \\proc_get_status($proc);\n if ($status['pid'] && !$status['running']) {\n $exit_code = $status['exitcode'];\n break;\n }\n }\n $output .= \\stream_get_contents($stdout);\n \\fclose($stdout);\n \\fclose($stderr);\n \\proc_close($proc);\n if ($exit_code !== 0) {\n throw new SubprocessException((array) $args, $exit_code);\n }\n return \\explode('\n', $output);\n }","selected_text":"function () use($args) : \\Generator {\n \/\/ no equivalent to stream_await\n if (false) {\n yield '';\n }\n \n $command = \\implode(' ', \\array_map(function ($arg) {\n return \\escapeshellarg($arg);\n }, $args));\n $spec = array(0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w'));\n $pipes = array();\n $proc = \\proc_open($command, $spec, $pipes);\n list($stdin, $stdout, $stderr) = $pipes;\n \\fclose($stdin);\n \\stream_set_blocking($stdout, false);\n $exit_code = -2;\n $output = '';\n while (true) {\n $chunk = \\stream_get_contents($stdout);\n $output .= $chunk;\n $status = \\proc_get_status($proc);\n if ($status['pid'] && !$status['running']) {\n $exit_code = $status['exitcode'];\n break;\n }\n }\n $output .= \\stream_get_contents($stdout);\n \\fclose($stdout);\n \\fclose($stderr);\n \\proc_close($proc);\n if ($exit_code !== 0) {\n throw new SubprocessException((array) $args, $exit_code);\n }\n return \\explode('\n', $output);\n }","from":646,"to":1984,"snippet_from":566,"snippet_to":1984,"column_from":9,"column_to":0},{"severity":"error","line_from":29,"line_to":29,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting string","file_name":"src\/Facebook\/HHAST\/__Private\/execute_async.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/__Private\/execute_async.php","snippet":" $command = \\implode(' ', \\array_map(function ($arg) {","selected_text":"function ($arg) {","from":855,"to":872,"snippet_from":807,"snippet_to":872,"column_from":49,"column_to":66},{"severity":"error","line_from":29,"line_to":29,"type":"MissingClosureParamType","message":"Parameter $arg has no provided type","file_name":"src\/Facebook\/HHAST\/__Private\/execute_async.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/__Private\/execute_async.php","snippet":" $command = \\implode(' ', \\array_map(function ($arg) {","selected_text":"$arg","from":865,"to":869,"snippet_from":807,"snippet_to":872,"column_from":59,"column_to":63},{"severity":"info","line_from":30,"line_to":30,"type":"MixedArgument","message":"Argument 1 of escapeshellarg cannot be mixed, expecting string","file_name":"src\/Facebook\/HHAST\/__Private\/execute_async.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/__Private\/execute_async.php","snippet":" return \\escapeshellarg($arg);","selected_text":"$arg","from":912,"to":916,"snippet_from":873,"snippet_to":918,"column_from":40,"column_to":44},{"severity":"info","line_from":45,"line_to":45,"type":"MixedAssignment","message":"Cannot assign $exit_code to a mixed type","file_name":"src\/Facebook\/HHAST\/__Private\/execute_async.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/__Private\/execute_async.php","snippet":" $exit_code = $status['exitcode'];","selected_text":"$exit_code","from":1569,"to":1579,"snippet_from":1549,"snippet_to":1602,"column_from":21,"column_to":31},{"severity":"info","line_from":54,"line_to":54,"type":"MixedArgument","message":"Argument 2 of Facebook\\HHAST\\__Private\\SubprocessException::__construct cannot be mixed, expecting int","file_name":"src\/Facebook\/HHAST\/__Private\/execute_async.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/__Private\/execute_async.php","snippet":" throw new SubprocessException((array) $args, $exit_code);","selected_text":"$exit_code","from":1905,"to":1915,"snippet_from":1844,"snippet_to":1917,"column_from":62,"column_to":72},{"severity":"info","line_from":12,"line_to":12,"type":"MixedArgument","message":"Argument 1 of Facebook\\HHAST\\EditableNode::fromJSON cannot be mixed, expecting array<string, mixed>","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return EditableNode::fromJSON($json['parse_tree'], $file ?? '! no file !', 0, $json['program_text']);","selected_text":"$json['parse_tree']","from":211,"to":230,"snippet_from":177,"snippet_to":282,"column_from":35,"column_to":54},{"severity":"info","line_from":12,"line_to":12,"type":"MixedArgument","message":"Argument 4 of Facebook\\HHAST\\EditableNode::fromJSON cannot be mixed, expecting string","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return EditableNode::fromJSON($json['parse_tree'], $file ?? '! no file !', 0, $json['program_text']);","selected_text":"$json['program_text']","from":259,"to":280,"snippet_from":177,"snippet_to":282,"column_from":83,"column_to":104},{"severity":"info","line_from":15,"line_to":15,"type":"MixedTypeCoercion","message":"The declared return type 'Amp\\Promise<array<string, mixed>>' for Facebook\\HHAST\\json_from_file_async is more specific than the inferred return type 'Amp\\Promise'","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":"\/**\n * @return \\Amp\\Promise<array<string, mixed>>\n *\/\nfunction json_from_file_async(string $file) : \\Amp\\Promise\n{\n return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, array<string, mixed>> *\/","selected_text":"@return \\Amp\\Promise<array<string, mixed>>","from":292,"to":334,"snippet_from":285,"snippet_to":495,"column_from":4,"column_to":46},{"severity":"info","line_from":19,"line_to":49,"type":"MixedTypeCoercion","message":"The type 'Amp\\Promise' is more general than the declared return type 'Amp\\Promise<array<string, mixed>>' for Facebook\\HHAST\\json_from_file_async","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, array<string, mixed>> *\/\n function () use($file) : \\Generator {\n try {\n try {\n \/\/(yield __Private\\ParserConcurrencyLease::getAsync());\n $results = (yield __Private\\execute_async('hh_parse', '--php5-compat-mode', '--full-fidelity-json', $file));\n } finally {\n }\n } catch (__Private\\SubprocessException $e) {\n throw new HHParseError($file, 'hh_parse failed - exit code: ' . $e->getExitCode());\n }\n $json = $results[0];\n $ascii = '';\n $len = \\strlen($json);\n for ($i = 0; $i < $len; ++$i) {\n $byte = $json[$i];\n if ((\\ord($byte) & 1 << 7) === 0) {\n $ascii .= $byte;\n }\n }\n $json = $ascii;\n $json = \\json_decode($json, true, 512);\n $no_type_refinement_please = $json;\n if (!\\is_array($no_type_refinement_please)) {\n throw new HHParseError($file, 'hh_parse did not output valid JSON');\n }\n $json['program_text'] = \\file_get_contents($file);\n return $json;\n }\n );","selected_text":"return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, array<string, mixed>> *\/\n function () use($file) : \\Generator {\n try {\n try {\n \/\/(yield __Private\\ParserConcurrencyLease::getAsync());\n $results = (yield __Private\\execute_async('hh_parse', '--php5-compat-mode', '--full-fidelity-json', $file));\n } finally {\n }\n } catch (__Private\\SubprocessException $e) {\n throw new HHParseError($file, 'hh_parse failed - exit code: ' . $e->getExitCode());\n }\n $json = $results[0];\n $ascii = '';\n $len = \\strlen($json);\n for ($i = 0; $i < $len; ++$i) {\n $byte = $json[$i];\n if ((\\ord($byte) & 1 << 7) === 0) {\n $ascii .= $byte;\n }\n }\n $json = $ascii;\n $json = \\json_decode($json, true, 512);\n $no_type_refinement_please = $json;\n if (!\\is_array($no_type_refinement_please)) {\n throw new HHParseError($file, 'hh_parse did not output valid JSON');\n }\n $json['program_text'] = \\file_get_contents($file);\n return $json;\n }\n );","from":404,"to":1687,"snippet_from":400,"snippet_to":1687,"column_from":5,"column_to":0},{"severity":"info","line_from":20,"line_to":20,"type":"MixedTypeCoercion","message":"The declared return type 'Generator<int, mixed, void, array<string, mixed>>' for \/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php:21:504:-:closure is more specific than the inferred return type 'Generator<int, Amp\\Promise<array<int, string>>, mixed, mixed>'","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" \/** @return \\Generator<int, mixed, void, array<string, mixed>> *\/\n function () use($file) : \\Generator {\n try {\n try {\n \/\/(yield __Private\\ParserConcurrencyLease::getAsync());","selected_text":"@return \\Generator<int, mixed, void, array<string, mixed>>","from":434,"to":492,"snippet_from":422,"snippet_to":657,"column_from":13,"column_to":71},{"severity":"info","line_from":21,"line_to":48,"type":"MixedTypeCoercion","message":"Argument 1 of Amp\\call expects callable(mixed...):mixed, parent type Closure():Generator<int, mixed, void, array<string, mixed>> provided","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" \/** @return \\Generator<int, mixed, void, array<string, mixed>> *\/\n function () use($file) : \\Generator {\n try {\n try {\n \/\/(yield __Private\\ParserConcurrencyLease::getAsync());\n $results = (yield __Private\\execute_async('hh_parse', '--php5-compat-mode', '--full-fidelity-json', $file));\n } finally {\n }\n } catch (__Private\\SubprocessException $e) {\n throw new HHParseError($file, 'hh_parse failed - exit code: ' . $e->getExitCode());\n }\n $json = $results[0];\n $ascii = '';\n $len = \\strlen($json);\n for ($i = 0; $i < $len; ++$i) {\n $byte = $json[$i];\n if ((\\ord($byte) & 1 << 7) === 0) {\n $ascii .= $byte;\n }\n }\n $json = $ascii;\n $json = \\json_decode($json, true, 512);\n $no_type_refinement_please = $json;\n if (!\\is_array($no_type_refinement_please)) {\n throw new HHParseError($file, 'hh_parse did not output valid JSON');\n }\n $json['program_text'] = \\file_get_contents($file);\n return $json;\n }","selected_text":"function () use($file) : \\Generator {\n try {\n try {\n \/\/(yield __Private\\ParserConcurrencyLease::getAsync());\n $results = (yield __Private\\execute_async('hh_parse', '--php5-compat-mode', '--full-fidelity-json', $file));\n } finally {\n }\n } catch (__Private\\SubprocessException $e) {\n throw new HHParseError($file, 'hh_parse failed - exit code: ' . $e->getExitCode());\n }\n $json = $results[0];\n $ascii = '';\n $len = \\strlen($json);\n for ($i = 0; $i < $len; ++$i) {\n $byte = $json[$i];\n if ((\\ord($byte) & 1 << 7) === 0) {\n $ascii .= $byte;\n }\n }\n $json = $ascii;\n $json = \\json_decode($json, true, 512);\n $no_type_refinement_please = $json;\n if (!\\is_array($no_type_refinement_please)) {\n throw new HHParseError($file, 'hh_parse did not output valid JSON');\n }\n $json['program_text'] = \\file_get_contents($file);\n return $json;\n }","from":504,"to":1680,"snippet_from":422,"snippet_to":1680,"column_from":9,"column_to":0},{"severity":"info","line_from":31,"line_to":31,"type":"MixedAssignment","message":"Cannot assign $json to a mixed type","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" $json = $results[0];","selected_text":"$json","from":1016,"to":1021,"snippet_from":1004,"snippet_to":1036,"column_from":13,"column_to":18},{"severity":"error","line_from":31,"line_to":31,"type":"InvalidArrayAccess","message":"Cannot access array value on non-array variable $results of type Amp\\Promise<array<int, string>>","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" $json = $results[0];","selected_text":"$results[0]","from":1024,"to":1035,"snippet_from":1004,"snippet_to":1036,"column_from":21,"column_to":32},{"severity":"info","line_from":33,"line_to":33,"type":"MixedArgument","message":"Argument 1 of strlen cannot be mixed, expecting string","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" $len = \\strlen($json);","selected_text":"$json","from":1089,"to":1094,"snippet_from":1062,"snippet_to":1096,"column_from":28,"column_to":33},{"severity":"info","line_from":35,"line_to":35,"type":"MixedAssignment","message":"Cannot assign $byte to a mixed type","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" $byte = $json[$i];","selected_text":"$byte","from":1157,"to":1162,"snippet_from":1141,"snippet_to":1175,"column_from":17,"column_to":22},{"severity":"info","line_from":35,"line_to":35,"type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $json","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" $byte = $json[$i];","selected_text":"$json[$i]","from":1165,"to":1174,"snippet_from":1141,"snippet_to":1175,"column_from":25,"column_to":34},{"severity":"info","line_from":36,"line_to":36,"type":"MixedArgument","message":"Argument 1 of ord cannot be mixed, expecting string","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" if ((\\ord($byte) & 1 << 7) === 0) {","selected_text":"$byte","from":1202,"to":1207,"snippet_from":1176,"snippet_to":1227,"column_from":27,"column_to":32},{"severity":"info","line_from":37,"line_to":37,"type":"MixedOperand","message":"Right operand cannot be mixed","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" $ascii .= $byte;","selected_text":"$byte","from":1258,"to":1263,"snippet_from":1228,"snippet_to":1264,"column_from":31,"column_to":36},{"severity":"info","line_from":41,"line_to":41,"type":"MixedAssignment","message":"Cannot assign $json to a mixed type","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" $json = \\json_decode($json, true, 512);","selected_text":"$json","from":1337,"to":1342,"snippet_from":1325,"snippet_to":1376,"column_from":13,"column_to":18},{"severity":"info","line_from":42,"line_to":42,"type":"MixedAssignment","message":"Cannot assign $no_type_refinement_please to a mixed type","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" $no_type_refinement_please = $json;","selected_text":"$no_type_refinement_please","from":1389,"to":1415,"snippet_from":1377,"snippet_to":1424,"column_from":13,"column_to":39},{"severity":"info","line_from":52,"line_to":52,"type":"MixedInferredReturnType","message":"Could not verify return type 'array<string, mixed>' for Facebook\\HHAST\\json_from_file","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":"\/**\n * @return array<string, mixed>\n *\/\nfunction json_from_file(string $file) : array\n{\n return \\Amp\\Promise\\wait(json_from_file_async($file));\n}","selected_text":"@return array<string, mixed>","from":1697,"to":1725,"snippet_from":1690,"snippet_to":1838,"column_from":4,"column_to":32},{"severity":"info","line_from":56,"line_to":56,"type":"MixedReturnStatement","message":"Could not infer a return type","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return \\Amp\\Promise\\wait(json_from_file_async($file));","selected_text":"return \\Amp\\Promise\\wait(json_from_file_async($file));","from":1782,"to":1836,"snippet_from":1778,"snippet_to":1836,"column_from":5,"column_to":59},{"severity":"info","line_from":59,"line_to":59,"type":"MixedTypeCoercion","message":"The declared return type 'Amp\\Promise<Facebook\\HHAST\\EditableNode>' for Facebook\\HHAST\\from_file_async is more specific than the inferred return type 'Amp\\Promise'","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":"\/**\n * @return \\Amp\\Promise<EditableNode>\n *\/\nfunction from_file_async(string $file) : \\Amp\\Promise\n{\n return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, EditableNode> *\/\n function () use($file) : \\Generator {","selected_text":"@return \\Amp\\Promise<EditableNode>","from":1846,"to":1880,"snippet_from":1839,"snippet_to":2074,"column_from":4,"column_to":38},{"severity":"info","line_from":63,"line_to":69,"type":"MixedTypeCoercion","message":"The type 'Amp\\Promise' is more general than the declared return type 'Amp\\Promise<Facebook\\HHAST\\EditableNode>' for Facebook\\HHAST\\from_file_async","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, EditableNode> *\/\n function () use($file) : \\Generator {\n $json = (yield json_from_file_async($file));\n return from_json($json, $file);\n }\n );","selected_text":"return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, EditableNode> *\/\n function () use($file) : \\Generator {\n $json = (yield json_from_file_async($file));\n return from_json($json, $file);\n }\n );","from":1945,"to":2192,"snippet_from":1941,"snippet_to":2192,"column_from":5,"column_to":0},{"severity":"info","line_from":65,"line_to":68,"type":"MixedTypeCoercion","message":"Argument 1 of Amp\\call expects callable(mixed...):mixed, parent type Closure():Generator<int, mixed, void, Facebook\\HHAST\\EditableNode> provided","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" \/** @return \\Generator<int, mixed, void, EditableNode> *\/\n function () use($file) : \\Generator {\n $json = (yield json_from_file_async($file));\n return from_json($json, $file);\n }","selected_text":"function () use($file) : \\Generator {\n $json = (yield json_from_file_async($file));\n return from_json($json, $file);\n }","from":2037,"to":2185,"snippet_from":1963,"snippet_to":2185,"column_from":9,"column_to":0},{"severity":"error","line_from":67,"line_to":67,"type":"InvalidArgument","message":"Argument 1 of Facebook\\HHAST\\from_json expects array<string, mixed>, Amp\\Promise<array<string, mixed>> provided","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return from_json($json, $file);","selected_text":"$json","from":2161,"to":2166,"snippet_from":2132,"snippet_to":2175,"column_from":30,"column_to":35},{"severity":"info","line_from":71,"line_to":71,"type":"MixedInferredReturnType","message":"Could not verify return type 'Facebook\\HHAST\\EditableNode' for Facebook\\HHAST\\from_file","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":"function from_file(string $file) : EditableNode\n{\n return \\Amp\\Promise\\wait(from_file_async($file));\n}","selected_text":"EditableNode","from":2230,"to":2242,"snippet_from":2195,"snippet_to":2300,"column_from":36,"column_to":48},{"severity":"info","line_from":73,"line_to":73,"type":"MixedReturnStatement","message":"Could not infer a return type","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return \\Amp\\Promise\\wait(from_file_async($file));","selected_text":"return \\Amp\\Promise\\wait(from_file_async($file));","from":2249,"to":2298,"snippet_from":2245,"snippet_to":2298,"column_from":5,"column_to":54},{"severity":"info","line_from":76,"line_to":76,"type":"MixedTypeCoercion","message":"The declared return type 'Amp\\Promise<array<string, mixed>>' for Facebook\\HHAST\\json_from_text_async is more specific than the inferred return type 'Amp\\Promise'","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":"\/**\n * @return \\Amp\\Promise<array<string, mixed>>\n *\/\nfunction json_from_text_async(string $text) : \\Amp\\Promise\n{\n return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, array<string, mixed>> *\/","selected_text":"@return \\Amp\\Promise<array<string, mixed>>","from":2308,"to":2350,"snippet_from":2301,"snippet_to":2511,"column_from":4,"column_to":46},{"severity":"info","line_from":80,"line_to":91,"type":"MixedTypeCoercion","message":"The type 'Amp\\Promise' is more general than the declared return type 'Amp\\Promise<array<string, mixed>>' for Facebook\\HHAST\\json_from_text_async","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, array<string, mixed>> *\/\n function () use($text) : \\Generator {\n $file = \\tempnam(\"\/tmp\", \"\");\n $handle = \\fopen($file, \"w\");\n \\fwrite($handle, $text);\n \\fclose($handle);\n $json = (yield json_from_file_async($file));\n \\unlink($file);\n return $json;\n }\n );","selected_text":"return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, array<string, mixed>> *\/\n function () use($text) : \\Generator {\n $file = \\tempnam(\"\/tmp\", \"\");\n $handle = \\fopen($file, \"w\");\n \\fwrite($handle, $text);\n \\fclose($handle);\n $json = (yield json_from_file_async($file));\n \\unlink($file);\n return $json;\n }\n );","from":2420,"to":2836,"snippet_from":2416,"snippet_to":2836,"column_from":5,"column_to":0},{"severity":"error","line_from":81,"line_to":81,"type":"InvalidReturnType","message":"The declared return type 'Generator<int, mixed, void, array<string, mixed>>' for \/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php:82:2520:-:closure is incorrect, got 'Generator<int, Amp\\Promise<array<string, mixed>>, mixed, Amp\\Promise<array<string, mixed>>>'","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" \/** @return \\Generator<int, mixed, void, array<string, mixed>> *\/\n function () use($text) : \\Generator {\n $file = \\tempnam(\"\/tmp\", \"\");\n $handle = \\fopen($file, \"w\");\n \\fwrite($handle, $text);\n \\fclose($handle);","selected_text":"@return \\Generator<int, mixed, void, array<string, mixed>>","from":2450,"to":2508,"snippet_from":2438,"snippet_to":2708,"column_from":13,"column_to":71},{"severity":"info","line_from":82,"line_to":90,"type":"MixedTypeCoercion","message":"Argument 1 of Amp\\call expects callable(mixed...):mixed, parent type Closure():Generator<int, mixed, void, array<string, mixed>> provided","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" \/** @return \\Generator<int, mixed, void, array<string, mixed>> *\/\n function () use($text) : \\Generator {\n $file = \\tempnam(\"\/tmp\", \"\");\n $handle = \\fopen($file, \"w\");\n \\fwrite($handle, $text);\n \\fclose($handle);\n $json = (yield json_from_file_async($file));\n \\unlink($file);\n return $json;\n }","selected_text":"function () use($text) : \\Generator {\n $file = \\tempnam(\"\/tmp\", \"\");\n $handle = \\fopen($file, \"w\");\n \\fwrite($handle, $text);\n \\fclose($handle);\n $json = (yield json_from_file_async($file));\n \\unlink($file);\n return $json;\n }","from":2520,"to":2829,"snippet_from":2438,"snippet_to":2829,"column_from":9,"column_to":0},{"severity":"info","line_from":94,"line_to":94,"type":"MixedInferredReturnType","message":"Could not verify return type 'array<string, mixed>' for Facebook\\HHAST\\json_from_text","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":"\/**\n * @return array<string, mixed>\n *\/\nfunction json_from_text(string $text) : array\n{\n return \\Amp\\Promise\\wait(json_from_text_async($text));\n}","selected_text":"@return array<string, mixed>","from":2846,"to":2874,"snippet_from":2839,"snippet_to":2987,"column_from":4,"column_to":32},{"severity":"info","line_from":98,"line_to":98,"type":"MixedReturnStatement","message":"Could not infer a return type","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return \\Amp\\Promise\\wait(json_from_text_async($text));","selected_text":"return \\Amp\\Promise\\wait(json_from_text_async($text));","from":2931,"to":2985,"snippet_from":2927,"snippet_to":2985,"column_from":5,"column_to":59},{"severity":"info","line_from":101,"line_to":101,"type":"MixedTypeCoercion","message":"The declared return type 'Amp\\Promise<Facebook\\HHAST\\EditableNode>' for Facebook\\HHAST\\from_code_async is more specific than the inferred return type 'Amp\\Promise'","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":"\/**\n * @return \\Amp\\Promise<EditableNode>\n *\/\nfunction from_code_async(string $text) : \\Amp\\Promise\n{\n return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, EditableNode> *\/\n function () use($text) : \\Generator {","selected_text":"@return \\Amp\\Promise<EditableNode>","from":2995,"to":3029,"snippet_from":2988,"snippet_to":3223,"column_from":4,"column_to":38},{"severity":"info","line_from":105,"line_to":111,"type":"MixedTypeCoercion","message":"The type 'Amp\\Promise' is more general than the declared return type 'Amp\\Promise<Facebook\\HHAST\\EditableNode>' for Facebook\\HHAST\\from_code_async","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, EditableNode> *\/\n function () use($text) : \\Generator {\n $json = (yield json_from_text_async($text));\n return from_json($json);\n }\n );","selected_text":"return \\Amp\\call(\n \/** @return \\Generator<int, mixed, void, EditableNode> *\/\n function () use($text) : \\Generator {\n $json = (yield json_from_text_async($text));\n return from_json($json);\n }\n );","from":3094,"to":3334,"snippet_from":3090,"snippet_to":3334,"column_from":5,"column_to":0},{"severity":"info","line_from":107,"line_to":110,"type":"MixedTypeCoercion","message":"Argument 1 of Amp\\call expects callable(mixed...):mixed, parent type Closure():Generator<int, mixed, void, Facebook\\HHAST\\EditableNode> provided","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" \/** @return \\Generator<int, mixed, void, EditableNode> *\/\n function () use($text) : \\Generator {\n $json = (yield json_from_text_async($text));\n return from_json($json);\n }","selected_text":"function () use($text) : \\Generator {\n $json = (yield json_from_text_async($text));\n return from_json($json);\n }","from":3186,"to":3327,"snippet_from":3112,"snippet_to":3327,"column_from":9,"column_to":0},{"severity":"error","line_from":109,"line_to":109,"type":"TooFewArguments","message":"Too few arguments for method Facebook\\HHAST\\from_json - expecting 2 but saw 1","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return from_json($json);","selected_text":"from_json($json)","from":3300,"to":3316,"snippet_from":3281,"snippet_to":3317,"column_from":20,"column_to":36},{"severity":"error","line_from":109,"line_to":109,"type":"InvalidArgument","message":"Argument 1 of Facebook\\HHAST\\from_json expects array<string, mixed>, Amp\\Promise<array<string, mixed>> provided","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return from_json($json);","selected_text":"$json","from":3310,"to":3315,"snippet_from":3281,"snippet_to":3317,"column_from":30,"column_to":35},{"severity":"info","line_from":113,"line_to":113,"type":"MixedInferredReturnType","message":"Could not verify return type 'Facebook\\HHAST\\EditableNode' for Facebook\\HHAST\\from_code","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":"function from_code(string $text) : EditableNode\n{\n return \\Amp\\Promise\\wait(from_code_async($text));\n}","selected_text":"EditableNode","from":3372,"to":3384,"snippet_from":3337,"snippet_to":3442,"column_from":36,"column_to":48},{"severity":"info","line_from":115,"line_to":115,"type":"MixedReturnStatement","message":"Could not infer a return type","file_name":"src\/Facebook\/HHAST\/entrypoints.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/HHAST\/entrypoints.php","snippet":" return \\Amp\\Promise\\wait(from_code_async($text));","selected_text":"return \\Amp\\Promise\\wait(from_code_async($text));","from":3391,"to":3440,"snippet_from":3387,"snippet_to":3440,"column_from":5,"column_to":54},{"severity":"info","line_from":9,"line_to":9,"type":"MixedInferredReturnType","message":"Could not verify return type 'T' for Facebook\\TypeAssert\\instance_of","file_name":"src\/Facebook\/TypeAssert\/functions.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/TypeAssert\/functions.php","snippet":"\/**\n * @template T\n * @param T::class $class\n * @param mixed $oject\n * @return T\n *\/\nfunction instance_of(string $class, $object)\n{\n\tif (!$object instanceof $class) {\n\t\tthrow new \\UnexpectedValueException('Object should be a ' . $class);\n\t}\n\n\treturn $object;\n}","selected_text":"T","from":118,"to":119,"snippet_from":39,"snippet_to":299,"column_from":12,"column_to":13},{"severity":"error","line_from":11,"line_to":11,"type":"MissingParamType","message":"Parameter $object has no provided type","file_name":"src\/Facebook\/TypeAssert\/functions.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/TypeAssert\/functions.php","snippet":"function instance_of(string $class, $object)","selected_text":"$object","from":160,"to":167,"snippet_from":124,"snippet_to":168,"column_from":37,"column_to":44},{"severity":"info","line_from":17,"line_to":17,"type":"MixedReturnStatement","message":"Could not infer a return type","file_name":"src\/Facebook\/TypeAssert\/functions.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/TypeAssert\/functions.php","snippet":"\treturn $object;","selected_text":"return $object;","from":282,"to":297,"snippet_from":281,"snippet_to":297,"column_from":2,"column_to":17},{"severity":"error","line_from":38,"line_to":38,"type":"MissingParamType","message":"Parameter $object has no provided type","file_name":"src\/Facebook\/TypeAssert\/functions.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/Facebook\/TypeAssert\/functions.php","snippet":"function int($object) : int","selected_text":"$object","from":560,"to":567,"snippet_from":547,"snippet_to":574,"column_from":14,"column_to":21},{"severity":"error","line_from":20,"line_to":20,"type":"PossiblyNullReference","message":"Cannot call method getDescendantsOfType on possibly null value","file_name":"src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","snippet":"\t\t$params_list_params = $node->hasParameters() ? $node->getParameters()->getDescendantsOfType(HHAST\\ParameterDeclaration::class) : [];","selected_text":"getDescendantsOfType","from":439,"to":459,"snippet_from":366,"snippet_to":500,"column_from":74,"column_to":94},{"severity":"info","line_from":43,"line_to":43,"type":"MixedAssignment","message":"Cannot assign $php_return_type to a mixed type","file_name":"src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","snippet":"\t\t\t$php_return_type = TypeTransformer::getPhpParserTypeFromPsalm($psalm_return_type, $project, $file, $scope);","selected_text":"$php_return_type","from":1152,"to":1168,"snippet_from":1149,"snippet_to":1259,"column_from":4,"column_to":20},{"severity":"info","line_from":65,"line_to":65,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","snippet":"\t\t$stmts = $node->hasBody() ? NodeTransformer::transform($node->getBody(), $project, $file, $scope) : [];","selected_text":"$stmts","from":1738,"to":1744,"snippet_from":1736,"snippet_to":1841,"column_from":3,"column_to":9},{"severity":"error","line_from":70,"line_to":70,"type":"PossiblyNullReference","message":"Cannot call method getVariables on possibly null value","file_name":"src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","snippet":"\t\t\tforeach ($node->getUse()->getVariables()->getChildren() as $use_node) {","selected_text":"getVariables","from":1912,"to":1924,"snippet_from":1883,"snippet_to":1957,"column_from":30,"column_to":42},{"severity":"info","line_from":86,"line_to":86,"type":"MixedArgument","message":"Argument 1 of substr cannot be mixed, expecting string","file_name":"src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","snippet":"\t\t\t\t\t\t\tsubstr($use_node->getText(), 1)","selected_text":"$use_node->getText()","from":2463,"to":2483,"snippet_from":2449,"snippet_to":2487,"column_from":15,"column_to":35},{"severity":"error","line_from":86,"line_to":86,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::gettext does not exist","file_name":"src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AnonymousFunctionTransformer.php","snippet":"\t\t\t\t\t\t\tsubstr($use_node->getText(), 1)","selected_text":"getText","from":2474,"to":2481,"snippet_from":2449,"snippet_to":2487,"column_from":26,"column_to":33},{"severity":"error","line_from":13,"line_to":13,"type":"MissingReturnType","message":"Method HackToPhp\\Transform\\AsExpressionTransformer::transform does not have a return type, expecting PhpParser\\Node\\Expr\\Ternary","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\tpublic static function transform($node, Project $project, HackFile $file, Scope $scope)","selected_text":"transform","from":207,"to":216,"snippet_from":183,"snippet_to":271,"column_from":25,"column_to":34},{"severity":"info","line_from":37,"line_to":37,"type":"MixedAssignment","message":"Cannot assign $specifier to a mixed type","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t$specifier = $right_operand->getSpecifier();","selected_text":"$specifier","from":1150,"to":1160,"snippet_from":1147,"snippet_to":1194,"column_from":4,"column_to":14},{"severity":"error","line_from":37,"line_to":37,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getspecifier does not exist","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t$specifier = $right_operand->getSpecifier();","selected_text":"getSpecifier","from":1179,"to":1191,"snippet_from":1147,"snippet_to":1194,"column_from":33,"column_to":45},{"severity":"info","line_from":57,"line_to":57,"type":"MixedArgument","message":"Argument 1 of get_class cannot be mixed, expecting object","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\tswitch (get_class($specifier)) {","selected_text":"$specifier","from":1726,"to":1736,"snippet_from":1706,"snippet_to":1740,"column_from":21,"column_to":31},{"severity":"error","line_from":61,"line_to":61,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Assign|PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left_assignment]","selected_text":"[$left_assignment]","from":1891,"to":1909,"snippet_from":1886,"snippet_to":1909,"column_from":6,"column_to":24},{"severity":"error","line_from":68,"line_to":68,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Assign|PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left_assignment]","selected_text":"[$left_assignment]","from":2077,"to":2095,"snippet_from":2072,"snippet_to":2095,"column_from":6,"column_to":24},{"severity":"error","line_from":75,"line_to":75,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Assign|PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left_assignment]","selected_text":"[$left_assignment]","from":2259,"to":2277,"snippet_from":2254,"snippet_to":2277,"column_from":6,"column_to":24},{"severity":"error","line_from":83,"line_to":83,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Assign|PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t\t[$left_assignment]","selected_text":"[$left_assignment]","from":2492,"to":2510,"snippet_from":2486,"snippet_to":2510,"column_from":7,"column_to":25},{"severity":"error","line_from":87,"line_to":87,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t\t[$tmp_var]","selected_text":"[$tmp_var]","from":2622,"to":2632,"snippet_from":2616,"snippet_to":2632,"column_from":7,"column_to":17},{"severity":"error","line_from":100,"line_to":100,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Assign|PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left_assignment]","selected_text":"[$left_assignment]","from":2986,"to":3004,"snippet_from":2981,"snippet_to":3004,"column_from":6,"column_to":24},{"severity":"error","line_from":108,"line_to":108,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Assign|PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left_assignment]","selected_text":"[$left_assignment]","from":3205,"to":3223,"snippet_from":3200,"snippet_to":3223,"column_from":6,"column_to":24},{"severity":"error","line_from":115,"line_to":115,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Assign|PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left_assignment]","selected_text":"[$left_assignment]","from":3393,"to":3411,"snippet_from":3388,"snippet_to":3411,"column_from":6,"column_to":24},{"severity":"error","line_from":122,"line_to":122,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Assign|PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left_assignment]","selected_text":"[$left_assignment]","from":3585,"to":3603,"snippet_from":3580,"snippet_to":3603,"column_from":6,"column_to":24},{"severity":"error","line_from":150,"line_to":156,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Assign|PhpParser\\Node\\Expr\\Variable, 1:PhpParser\\Node\\Expr\\FuncCall} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t[\n\t\t\t\t\t\t$left_assignment,\n\t\t\t\t\t\tnew PhpParser\\Node\\Expr\\FuncCall(\n\t\t\t\t\t\t\tnew PhpParser\\Node\\Name\\FullyQualified('get_class'),\n\t\t\t\t\t\t\t[new PhpParser\\Node\\Expr\\Variable('this')]\n\t\t\t\t\t\t)\n\t\t\t\t\t]","selected_text":"[\n\t\t\t\t\t\t$left_assignment,\n\t\t\t\t\t\tnew PhpParser\\Node\\Expr\\FuncCall(\n\t\t\t\t\t\t\tnew PhpParser\\Node\\Name\\FullyQualified('get_class'),\n\t\t\t\t\t\t\t[new PhpParser\\Node\\Expr\\Variable('this')]\n\t\t\t\t\t\t)\n\t\t\t\t\t]","from":4382,"to":4572,"snippet_from":4377,"snippet_to":4572,"column_from":6,"column_to":0},{"severity":"error","line_from":154,"line_to":154,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\t\t\t\t[new PhpParser\\Node\\Expr\\Variable('this')]","selected_text":"[new PhpParser\\Node\\Expr\\Variable('this')]","from":4515,"to":4557,"snippet_from":4508,"snippet_to":4557,"column_from":8,"column_to":50},{"severity":"info","line_from":161,"line_to":161,"type":"MixedArgument","message":"Argument 1 of get_class cannot be mixed, expecting object","file_name":"src\/HackToPhp\/Transform\/AsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/AsExpressionTransformer.php","snippet":"\t\t\t\tthrow new \\UnexpectedValueException('Unknown as-expression type ' . get_class($specifier));","selected_text":"$specifier","from":4686,"to":4696,"snippet_from":4604,"snippet_to":4699,"column_from":83,"column_to":93},{"severity":"error","line_from":30,"line_to":30,"type":"PossiblyNullArgument","message":"Argument 2 of HackToPhp\\Transform\\PipeTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/BinaryExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/BinaryExpressionTransformer.php","snippet":"\t\t\treturn PipeTransformer::transform($node->getLeftOperand(), $node->getRightOperand(), $project, $file, $scope);","selected_text":"$node->getRightOperand()","from":1244,"to":1268,"snippet_from":1182,"snippet_to":1295,"column_from":63,"column_to":87},{"severity":"error","line_from":45,"line_to":45,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/BinaryExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/BinaryExpressionTransformer.php","snippet":"\t\t\t$right_expr = ExpressionTransformer::transform($right_operand, $project, $file, $scope);","selected_text":"$right_operand","from":1855,"to":1869,"snippet_from":1805,"snippet_to":1896,"column_from":51,"column_to":65},{"severity":"error","line_from":50,"line_to":50,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/BinaryExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/BinaryExpressionTransformer.php","snippet":"\t\t\t$right_expr = ExpressionTransformer::transform($right_operand, $project, $file, $scope);","selected_text":"$right_operand","from":2076,"to":2090,"snippet_from":2026,"snippet_to":2117,"column_from":51,"column_to":65},{"severity":"error","line_from":57,"line_to":57,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/BinaryExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/BinaryExpressionTransformer.php","snippet":"\t\t$right_expr = ExpressionTransformer::transform($right_operand, $project, $file, $scope);","selected_text":"$right_operand","from":2307,"to":2321,"snippet_from":2258,"snippet_to":2348,"column_from":50,"column_to":64},{"severity":"info","line_from":10,"line_to":10,"type":"MixedInferredReturnType","message":"Could not verify return type 'PhpParser\\Node\\Expr' for HackToPhp\\Transform\\CastExpressionTransformer::transform","file_name":"src\/HackToPhp\/Transform\/CastExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/CastExpressionTransformer.php","snippet":"\tpublic static function transform(HHAST\\CastExpression $node, Project $project, HackFile $file, Scope $scope) : PhpParser\\Node\\Expr\n\t{\n\t\t$expression = ExpressionTransformer::transform($node->getOperand(), $project, $file, $scope);\n\t\t$type = $node->getType();\n\n\t\tswitch (get_class($type)) {\n\t\t\tcase HHAST\\ArrayToken::class:","selected_text":"PhpParser\\Node\\Expr","from":221,"to":240,"snippet_from":109,"snippet_to":431,"column_from":113,"column_to":132},{"severity":"error","line_from":31,"line_to":31,"type":"ParadoxicalCondition","message":"Encountered a paradox when evaluating the conditionals ($type==!=getclass-Facebook\\HHAST\\FloatToken) and ($type==!=getclass-Facebook\\HHAST\\FloatToken)","file_name":"src\/HackToPhp\/Transform\/CastExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/CastExpressionTransformer.php","snippet":"\t\t\tcase HHAST\\FloatToken::class:","selected_text":"HHAST\\FloatToken::class","from":885,"to":908,"snippet_from":877,"snippet_to":909,"column_from":9,"column_to":32},{"severity":"error","line_from":32,"line_to":32,"type":"UndefinedClass","message":"Class or interface PhpParser\\Node\\Expr\\Cast\\Float_ does not exist","file_name":"src\/HackToPhp\/Transform\/CastExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/CastExpressionTransformer.php","snippet":"\t\t\t\treturn new PhpParser\\Node\\Expr\\Cast\\Float_($expression);","selected_text":"PhpParser\\Node\\Expr\\Cast\\Float_","from":925,"to":956,"snippet_from":910,"snippet_to":970,"column_from":16,"column_to":47},{"severity":"error","line_from":24,"line_to":24,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$modifiers = $node->getModifiers()->getChildren();","selected_text":"getChildren","from":549,"to":560,"snippet_from":509,"snippet_to":563,"column_from":41,"column_to":52},{"severity":"error","line_from":35,"line_to":35,"type":"PossiblyNullReference","message":"Cannot call method getText on possibly null value","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t$class_name = $node->getName()->getText();","selected_text":"getText","from":759,"to":766,"snippet_from":724,"snippet_to":769,"column_from":36,"column_to":43},{"severity":"error","line_from":57,"line_to":57,"type":"PossiblyUndefinedMethod","message":"Method Facebook\\HHAST\\AnonymousClass::hastypeparameters does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\tif ($node->hasTypeParameters()) {","selected_text":"hasTypeParameters","from":1202,"to":1219,"snippet_from":1189,"snippet_to":1224,"column_from":14,"column_to":31},{"severity":"info","line_from":58,"line_to":58,"type":"MixedAssignment","message":"Cannot assign $type_parameters to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t$type_parameters = $node","selected_text":"$type_parameters","from":1228,"to":1244,"snippet_from":1225,"snippet_to":1252,"column_from":4,"column_to":20},{"severity":"error","line_from":59,"line_to":59,"type":"PossiblyUndefinedMethod","message":"Method Facebook\\HHAST\\AnonymousClass::gettypeparameters does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t->getTypeParameters()","selected_text":"getTypeParameters","from":1259,"to":1276,"snippet_from":1253,"snippet_to":1278,"column_from":7,"column_to":24},{"severity":"info","line_from":61,"line_to":61,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t->getDescendantsOfType(HHAST\\TypeParameter::class);","selected_text":"getDescendantsOfType","from":1307,"to":1327,"snippet_from":1301,"snippet_to":1356,"column_from":7,"column_to":27},{"severity":"info","line_from":63,"line_to":63,"type":"MixedAssignment","message":"Cannot assign $type_parameter to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\tforeach ($type_parameters as $type_parameter) {","selected_text":"$type_parameter","from":1390,"to":1405,"snippet_from":1358,"snippet_to":1408,"column_from":33,"column_to":48},{"severity":"info","line_from":64,"line_to":64,"type":"MixedAssignment","message":"Cannot assign $type_parameter_name to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$type_parameter_name = $type_parameter->getName()->getText();","selected_text":"$type_parameter_name","from":1413,"to":1433,"snippet_from":1409,"snippet_to":1474,"column_from":5,"column_to":25},{"severity":"info","line_from":64,"line_to":64,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$type_parameter_name = $type_parameter->getName()->getText();","selected_text":"getName","from":1453,"to":1460,"snippet_from":1409,"snippet_to":1474,"column_from":45,"column_to":52},{"severity":"info","line_from":64,"line_to":64,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$type_parameter_name = $type_parameter->getName()->getText();","selected_text":"getText","from":1464,"to":1471,"snippet_from":1409,"snippet_to":1474,"column_from":56,"column_to":63},{"severity":"info","line_from":67,"line_to":67,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\tif ($type_parameter->hasConstraints()) {","selected_text":"hasConstraints","from":1524,"to":1538,"snippet_from":1499,"snippet_to":1543,"column_from":26,"column_to":40},{"severity":"info","line_from":68,"line_to":68,"type":"MixedAssignment","message":"Cannot assign $constraint_nodes to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t$constraint_nodes = $type_parameter","selected_text":"$constraint_nodes","from":1549,"to":1566,"snippet_from":1544,"snippet_to":1584,"column_from":6,"column_to":23},{"severity":"info","line_from":69,"line_to":69,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t->getConstraints()","selected_text":"getConstraints","from":1593,"to":1607,"snippet_from":1585,"snippet_to":1609,"column_from":9,"column_to":23},{"severity":"info","line_from":70,"line_to":70,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t->getDescendantsOfType(HHAST\\TypeConstraint::class);","selected_text":"getDescendantsOfType","from":1618,"to":1638,"snippet_from":1610,"snippet_to":1668,"column_from":9,"column_to":29},{"severity":"info","line_from":72,"line_to":72,"type":"MixedAssignment","message":"Cannot assign $constraint_node to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\tforeach ($constraint_nodes as $constraint_node) {","selected_text":"$constraint_node","from":1705,"to":1721,"snippet_from":1670,"snippet_to":1724,"column_from":36,"column_to":52},{"severity":"info","line_from":73,"line_to":73,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\TypeTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t$constraint_node_type = TypeTransformer::transform($constraint_node->getType(), $project, $file, $scope);","selected_text":"$constraint_node->getType()","from":1782,"to":1809,"snippet_from":1725,"snippet_to":1836,"column_from":58,"column_to":85},{"severity":"info","line_from":73,"line_to":73,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t$constraint_node_type = TypeTransformer::transform($constraint_node->getType(), $project, $file, $scope);","selected_text":"getType","from":1800,"to":1807,"snippet_from":1725,"snippet_to":1836,"column_from":76,"column_to":83},{"severity":"info","line_from":75,"line_to":75,"type":"MixedArrayOffset","message":"Cannot access value on variable $template_map[$type_parameter_name] using mixed offset","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t$template_map[$type_parameter_name] = [","selected_text":"$template_map[$type_parameter_name]","from":1844,"to":1879,"snippet_from":1838,"snippet_to":1883,"column_from":7,"column_to":42},{"severity":"info","line_from":79,"line_to":79,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\tif ($constraint_node->getKeyword() instanceof HHAST\\AsToken) {","selected_text":"getKeyword","from":1988,"to":1998,"snippet_from":1960,"snippet_to":2028,"column_from":29,"column_to":39},{"severity":"info","line_from":85,"line_to":85,"type":"MixedArrayOffset","message":"Cannot access value on variable $template_map[$type_parameter_name] using mixed offset","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t$template_map[$type_parameter_name] = [Psalm\\Type::getMixed(), null];","selected_text":"$template_map[$type_parameter_name]","from":2246,"to":2281,"snippet_from":2241,"snippet_to":2315,"column_from":6,"column_to":41},{"severity":"info","line_from":88,"line_to":88,"type":"MixedOperand","message":"Left operand cannot be mixed","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$templates[] = $type_parameter_name . implode(' ', $constraints);","selected_text":"$type_parameter_name","from":2342,"to":2362,"snippet_from":2323,"snippet_to":2392,"column_from":20,"column_to":40},{"severity":"error","line_from":94,"line_to":94,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t$parent_class_nodes = $node->hasExtendsList() ? $node->getExtendsList()->getChildren() : [];","selected_text":"getChildren","from":2530,"to":2541,"snippet_from":2455,"snippet_to":2549,"column_from":76,"column_to":87},{"severity":"info","line_from":99,"line_to":99,"type":"MixedAssignment","message":"Cannot assign $parent_class_node to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t$parent_class_node = $parent_class_node->getItem();","selected_text":"$parent_class_node","from":2635,"to":2653,"snippet_from":2632,"snippet_to":2686,"column_from":4,"column_to":22},{"severity":"error","line_from":99,"line_to":99,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t$parent_class_node = $parent_class_node->getItem();","selected_text":"getItem","from":2676,"to":2683,"snippet_from":2632,"snippet_to":2686,"column_from":45,"column_to":52},{"severity":"error","line_from":116,"line_to":116,"type":"NullArgument","message":"Argument 2 of Psalm\\Type::parseString cannot be null, null value provided to parameter with type bool","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$psalm_type = Psalm\\Type::parseString($extends_type, null, $template_map);","selected_text":"null","from":3127,"to":3131,"snippet_from":3070,"snippet_to":3148,"column_from":58,"column_to":62},{"severity":"info","line_from":116,"line_to":116,"type":"MixedTypeCoercion","message":"Argument 3 of Psalm\\Type::parseString expects array<string, array{0:Psalm\\Type\\Union, 1:null|string}>, parent type array<mixed, array{0:Psalm\\Type\\Union, 1:null}> provided","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$psalm_type = Psalm\\Type::parseString($extends_type, null, $template_map);","selected_text":"$template_map","from":3133,"to":3146,"snippet_from":3070,"snippet_to":3148,"column_from":64,"column_to":77},{"severity":"info","line_from":120,"line_to":120,"type":"MixedAssignment","message":"Cannot assign $specifier to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$specifier = $parent_class_node->getSpecifier();","selected_text":"$specifier","from":3284,"to":3294,"snippet_from":3280,"snippet_to":3332,"column_from":5,"column_to":15},{"severity":"info","line_from":120,"line_to":120,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$specifier = $parent_class_node->getSpecifier();","selected_text":"getSpecifier","from":3317,"to":3329,"snippet_from":3280,"snippet_to":3332,"column_from":38,"column_to":50},{"severity":"info","line_from":126,"line_to":126,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\QualifiedNameTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\QualifiedName","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$parent_classes[] = QualifiedNameTransformer::transform($specifier);","selected_text":"$specifier","from":3531,"to":3541,"snippet_from":3471,"snippet_to":3543,"column_from":61,"column_to":71},{"severity":"error","line_from":131,"line_to":131,"type":"InvalidArgument","message":"Argument 1 of Psalm\\DocComment::render expects array{description:string, specials:array<string, array<array-key, string>>}, array{description:null, specials:array{template?:array<int, string>, template-extends?:array<int, string>}} provided","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t$docblock_string = Psalm\\DocComment::render($docblock, '');","selected_text":"$docblock","from":3634,"to":3643,"snippet_from":3587,"snippet_to":3649,"column_from":48,"column_to":57},{"severity":"error","line_from":136,"line_to":136,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t$class_implements_nodes = $node->hasImplementsList() ? $node->getImplementsList()->getChildren() : [];","selected_text":"getChildren","from":3811,"to":3822,"snippet_from":3726,"snippet_to":3830,"column_from":86,"column_to":97},{"severity":"info","line_from":141,"line_to":141,"type":"MixedAssignment","message":"Cannot assign $class_implements_node to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t$class_implements_node = $class_implements_node->getItem();","selected_text":"$class_implements_node","from":3933,"to":3955,"snippet_from":3930,"snippet_to":3992,"column_from":4,"column_to":26},{"severity":"error","line_from":141,"line_to":141,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t$class_implements_node = $class_implements_node->getItem();","selected_text":"getItem","from":3982,"to":3989,"snippet_from":3930,"snippet_to":3992,"column_from":53,"column_to":60},{"severity":"info","line_from":146,"line_to":146,"type":"MixedAssignment","message":"Cannot assign $specifier to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$specifier = $class_implements_node->getSpecifier();","selected_text":"$specifier","from":4138,"to":4148,"snippet_from":4134,"snippet_to":4190,"column_from":5,"column_to":15},{"severity":"info","line_from":146,"line_to":146,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$specifier = $class_implements_node->getSpecifier();","selected_text":"getSpecifier","from":4175,"to":4187,"snippet_from":4134,"snippet_to":4190,"column_from":42,"column_to":54},{"severity":"info","line_from":152,"line_to":152,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\QualifiedNameTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\QualifiedName","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$implementing_interfaces[] = QualifiedNameTransformer::transform($specifier);","selected_text":"$specifier","from":4407,"to":4417,"snippet_from":4338,"snippet_to":4419,"column_from":70,"column_to":80},{"severity":"error","line_from":173,"line_to":173,"type":"PossiblyNullArgument","message":"Argument 1 of PhpParser\\Node\\Stmt\\Interface_::__construct cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$class_name,","selected_text":"$class_name","from":4951,"to":4962,"snippet_from":4947,"snippet_to":4963,"column_from":5,"column_to":16},{"severity":"error","line_from":186,"line_to":186,"type":"PossiblyNullArgument","message":"Argument 1 of PhpParser\\Node\\Stmt\\Trait_::__construct cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$class_name,","selected_text":"$class_name","from":5254,"to":5265,"snippet_from":5250,"snippet_to":5266,"column_from":5,"column_to":16},{"severity":"error","line_from":206,"line_to":206,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t$children = $node->hasElements() ? $node->getElements()->getChildren() : [];","selected_text":"getChildren","from":5719,"to":5730,"snippet_from":5660,"snippet_to":5738,"column_from":60,"column_to":71},{"severity":"error","line_from":248,"line_to":248,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Name","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\tfunction(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {","selected_text":"function(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {","from":6566,"to":6638,"snippet_from":6560,"snippet_to":6638,"column_from":7,"column_to":79},{"severity":"error","line_from":248,"line_to":262,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\tfunction(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {\n\t\t\t\t\t\t\t$trait_use_item = $trait_use_item->getItem();\n\n\t\t\t\t\t\t\tif ($trait_use_item instanceof HHAST\\GenericTypeSpecifier) {\n\t\t\t\t\t\t\t\t$specifier = $trait_use_item->getClassType();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$specifier = $trait_use_item->getSpecifier();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ($specifier instanceof HHAST\\NameToken) {\n\t\t\t\t\t\t\t\treturn new PhpParser\\Node\\Name($specifier->getText());\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn QualifiedNameTransformer::transform($specifier, $file);\n\t\t\t\t\t\t},","selected_text":"function(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {\n\t\t\t\t\t\t\t$trait_use_item = $trait_use_item->getItem();\n\n\t\t\t\t\t\t\tif ($trait_use_item instanceof HHAST\\GenericTypeSpecifier) {\n\t\t\t\t\t\t\t\t$specifier = $trait_use_item->getClassType();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$specifier = $trait_use_item->getSpecifier();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ($specifier instanceof HHAST\\NameToken) {\n\t\t\t\t\t\t\t\treturn new PhpParser\\Node\\Name($specifier->getText());\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn QualifiedNameTransformer::transform($specifier, $file);\n\t\t\t\t\t\t}","from":6566,"to":7097,"snippet_from":6560,"snippet_to":7098,"column_from":7,"column_to":8},{"severity":"info","line_from":254,"line_to":254,"type":"MixedAssignment","message":"Cannot assign $specifier to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t$specifier = $trait_use_item->getSpecifier();","selected_text":"$specifier","from":6839,"to":6849,"snippet_from":6831,"snippet_to":6884,"column_from":9,"column_to":19},{"severity":"error","line_from":254,"line_to":254,"type":"PossiblyNullReference","message":"Cannot call method getSpecifier on possibly null value","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t$specifier = $trait_use_item->getSpecifier();","selected_text":"getSpecifier","from":6869,"to":6881,"snippet_from":6831,"snippet_to":6884,"column_from":39,"column_to":51},{"severity":"error","line_from":254,"line_to":254,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getspecifier does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t$specifier = $trait_use_item->getSpecifier();","selected_text":"getSpecifier","from":6869,"to":6881,"snippet_from":6831,"snippet_to":6884,"column_from":39,"column_to":51},{"severity":"error","line_from":261,"line_to":261,"type":"TooManyArguments","message":"Too many arguments for method HackToPhp\\Transform\\QualifiedNameTransformer::transform - expecting 1 but saw 2","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\treturn QualifiedNameTransformer::transform($specifier, $file);","selected_text":"QualifiedNameTransformer::transform($specifier, $file)","from":7034,"to":7088,"snippet_from":7020,"snippet_to":7089,"column_from":15,"column_to":69},{"severity":"info","line_from":261,"line_to":261,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\QualifiedNameTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\QualifiedName","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\treturn QualifiedNameTransformer::transform($specifier, $file);","selected_text":"$specifier","from":7070,"to":7080,"snippet_from":7020,"snippet_to":7089,"column_from":51,"column_to":61},{"severity":"error","line_from":272,"line_to":272,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Name","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\tfunction(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {","selected_text":"function(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {","from":7305,"to":7377,"snippet_from":7299,"snippet_to":7377,"column_from":7,"column_to":79},{"severity":"error","line_from":272,"line_to":281,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\tfunction(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {\n\t\t\t\t\t\t\t$trait_use_item = $trait_use_item->getItem();\n\t\t\t\t\t\t\t$specifier = $trait_use_item->getSpecifier();\n\n\t\t\t\t\t\t\tif ($specifier instanceof HHAST\\NameToken) {\n\t\t\t\t\t\t\t\treturn new PhpParser\\Node\\Name($specifier->getText());\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn QualifiedNameTransformer::transform($specifier, $file);\n\t\t\t\t\t\t},","selected_text":"function(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {\n\t\t\t\t\t\t\t$trait_use_item = $trait_use_item->getItem();\n\t\t\t\t\t\t\t$specifier = $trait_use_item->getSpecifier();\n\n\t\t\t\t\t\t\tif ($specifier instanceof HHAST\\NameToken) {\n\t\t\t\t\t\t\t\treturn new PhpParser\\Node\\Name($specifier->getText());\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn QualifiedNameTransformer::transform($specifier, $file);\n\t\t\t\t\t\t}","from":7305,"to":7687,"snippet_from":7299,"snippet_to":7688,"column_from":7,"column_to":8},{"severity":"info","line_from":274,"line_to":274,"type":"MixedAssignment","message":"Cannot assign $specifier to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t$specifier = $trait_use_item->getSpecifier();","selected_text":"$specifier","from":7438,"to":7448,"snippet_from":7431,"snippet_to":7483,"column_from":8,"column_to":18},{"severity":"error","line_from":274,"line_to":274,"type":"PossiblyNullReference","message":"Cannot call method getSpecifier on possibly null value","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t$specifier = $trait_use_item->getSpecifier();","selected_text":"getSpecifier","from":7468,"to":7480,"snippet_from":7431,"snippet_to":7483,"column_from":38,"column_to":50},{"severity":"error","line_from":274,"line_to":274,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getspecifier does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t$specifier = $trait_use_item->getSpecifier();","selected_text":"getSpecifier","from":7468,"to":7480,"snippet_from":7431,"snippet_to":7483,"column_from":38,"column_to":50},{"severity":"error","line_from":280,"line_to":280,"type":"TooManyArguments","message":"Too many arguments for method HackToPhp\\Transform\\QualifiedNameTransformer::transform - expecting 1 but saw 2","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\treturn QualifiedNameTransformer::transform($specifier, $file);","selected_text":"QualifiedNameTransformer::transform($specifier, $file)","from":7624,"to":7678,"snippet_from":7610,"snippet_to":7679,"column_from":15,"column_to":69},{"severity":"info","line_from":280,"line_to":280,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\QualifiedNameTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\QualifiedName","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\treturn QualifiedNameTransformer::transform($specifier, $file);","selected_text":"$specifier","from":7660,"to":7670,"snippet_from":7610,"snippet_to":7679,"column_from":51,"column_to":61},{"severity":"info","line_from":284,"line_to":345,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Stmt\\TraitUse::__construct expects array<array-key, PhpParser\\Node\\Stmt\\TraitUseAdaptation>, parent type array<string, PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias|mixed> provided","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\tarray_map(\n\t\t\t\t\t\tfunction(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {\n\t\t\t\t\t\t\t$trait_use_item = $trait_use_item->getItem();\n\n\t\t\t\t\t\t\t$modifiers = $trait_use_item->getModifiers();\n\n\t\t\t\t\t\t\t$flags = null;\n\n\t\t\t\t\t\t\tif ($modifiers) {\n\t\t\t\t\t\t\t\t$flags = 0;\n\n\t\t\t\t\t\t\t\tforeach ($modifiers as $modifier) {\n\t\t\t\t\t\t\t\t\tif ($modifier instanceof HHAST\\PublicToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PUBLIC;\n\t\t\t\t\t\t\t\t\t} elseif ($modifier instanceof HHAST\\ProtectedToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PROTECTED;\n\t\t\t\t\t\t\t\t\t} elseif ($modifier instanceof HHAST\\PrivateToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PRIVATE;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ($trait_use_item instanceof HHAST\\TraitUseAliasItem) {\n\t\t\t\t\t\t\t\t$aliasing_name = $trait_use_item->getAliasingName();\n\n\t\t\t\t\t\t\t\tif ($aliasing_name instanceof HHAST\\ScopeResolutionExpression) {\n\t\t\t\t\t\t\t\t\t$qualifier = $aliasing_name->getQualifier();\n\n\t\t\t\t\t\t\t\t\tif ($qualifier instanceof HHAST\\EditableToken) {\n\t\t\t\t\t\t\t\t\t\t$class = $qualifier->getText();\n\t\t\t\t\t\t\t\t\t} elseif ($qualifier instanceof HHAST\\QualifiedName) {\n\t\t\t\t\t\t\t\t\t\t$class = QualifiedNameTransformer::getText($qualifier);\n\t\t\t\t\t\t\t\t\t} elseif ($qualifier instanceof HHAST\\SimpleTypeSpecifier) {\n\t\t\t\t\t\t\t\t\t\t$class = $qualifier->getSpecifier()->getText();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthrow new \\UnexpectedValueException('Bad');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t$relative_method_id = $class . '::' . $aliasing_name->getName()->getText();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$specifier = $aliasing_name->getSpecifier();\n\t\t\t\t\t\t\t\t\t$relative_method_id = $specifier->getText();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t$aliased_name = $trait_use_item->getAliasedName();\n\n\t\t\t\t\t\t\t\tif ($aliased_name instanceof HHAST\\SimpleTypeSpecifier) {\n\t\t\t\t\t\t\t\t\t$aliased_name = $aliased_name->getSpecifier();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn new PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias(\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t$relative_method_id,\n\t\t\t\t\t\t\t\t\t$flags,\n\t\t\t\t\t\t\t\t\t$aliased_name->getText()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn $adaptation;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$child->getClauses()->getChildren()\n\t\t\t\t\t)","selected_text":"array_map(\n\t\t\t\t\t\tfunction(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {\n\t\t\t\t\t\t\t$trait_use_item = $trait_use_item->getItem();\n\n\t\t\t\t\t\t\t$modifiers = $trait_use_item->getModifiers();\n\n\t\t\t\t\t\t\t$flags = null;\n\n\t\t\t\t\t\t\tif ($modifiers) {\n\t\t\t\t\t\t\t\t$flags = 0;\n\n\t\t\t\t\t\t\t\tforeach ($modifiers as $modifier) {\n\t\t\t\t\t\t\t\t\tif ($modifier instanceof HHAST\\PublicToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PUBLIC;\n\t\t\t\t\t\t\t\t\t} elseif ($modifier instanceof HHAST\\ProtectedToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PROTECTED;\n\t\t\t\t\t\t\t\t\t} elseif ($modifier instanceof HHAST\\PrivateToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PRIVATE;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ($trait_use_item instanceof HHAST\\TraitUseAliasItem) {\n\t\t\t\t\t\t\t\t$aliasing_name = $trait_use_item->getAliasingName();\n\n\t\t\t\t\t\t\t\tif ($aliasing_name instanceof HHAST\\ScopeResolutionExpression) {\n\t\t\t\t\t\t\t\t\t$qualifier = $aliasing_name->getQualifier();\n\n\t\t\t\t\t\t\t\t\tif ($qualifier instanceof HHAST\\EditableToken) {\n\t\t\t\t\t\t\t\t\t\t$class = $qualifier->getText();\n\t\t\t\t\t\t\t\t\t} elseif ($qualifier instanceof HHAST\\QualifiedName) {\n\t\t\t\t\t\t\t\t\t\t$class = QualifiedNameTransformer::getText($qualifier);\n\t\t\t\t\t\t\t\t\t} elseif ($qualifier instanceof HHAST\\SimpleTypeSpecifier) {\n\t\t\t\t\t\t\t\t\t\t$class = $qualifier->getSpecifier()->getText();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthrow new \\UnexpectedValueException('Bad');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t$relative_method_id = $class . '::' . $aliasing_name->getName()->getText();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$specifier = $aliasing_name->getSpecifier();\n\t\t\t\t\t\t\t\t\t$relative_method_id = $specifier->getText();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t$aliased_name = $trait_use_item->getAliasedName();\n\n\t\t\t\t\t\t\t\tif ($aliased_name instanceof HHAST\\SimpleTypeSpecifier) {\n\t\t\t\t\t\t\t\t\t$aliased_name = $aliased_name->getSpecifier();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn new PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias(\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t$relative_method_id,\n\t\t\t\t\t\t\t\t\t$flags,\n\t\t\t\t\t\t\t\t\t$aliased_name->getText()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn $adaptation;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$child->getClauses()->getChildren()\n\t\t\t\t\t)","from":7742,"to":9841,"snippet_from":7737,"snippet_to":9841,"column_from":6,"column_to":0},{"severity":"error","line_from":285,"line_to":343,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\tfunction(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {\n\t\t\t\t\t\t\t$trait_use_item = $trait_use_item->getItem();\n\n\t\t\t\t\t\t\t$modifiers = $trait_use_item->getModifiers();\n\n\t\t\t\t\t\t\t$flags = null;\n\n\t\t\t\t\t\t\tif ($modifiers) {\n\t\t\t\t\t\t\t\t$flags = 0;\n\n\t\t\t\t\t\t\t\tforeach ($modifiers as $modifier) {\n\t\t\t\t\t\t\t\t\tif ($modifier instanceof HHAST\\PublicToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PUBLIC;\n\t\t\t\t\t\t\t\t\t} elseif ($modifier instanceof HHAST\\ProtectedToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PROTECTED;\n\t\t\t\t\t\t\t\t\t} elseif ($modifier instanceof HHAST\\PrivateToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PRIVATE;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ($trait_use_item instanceof HHAST\\TraitUseAliasItem) {\n\t\t\t\t\t\t\t\t$aliasing_name = $trait_use_item->getAliasingName();\n\n\t\t\t\t\t\t\t\tif ($aliasing_name instanceof HHAST\\ScopeResolutionExpression) {\n\t\t\t\t\t\t\t\t\t$qualifier = $aliasing_name->getQualifier();\n\n\t\t\t\t\t\t\t\t\tif ($qualifier instanceof HHAST\\EditableToken) {\n\t\t\t\t\t\t\t\t\t\t$class = $qualifier->getText();\n\t\t\t\t\t\t\t\t\t} elseif ($qualifier instanceof HHAST\\QualifiedName) {\n\t\t\t\t\t\t\t\t\t\t$class = QualifiedNameTransformer::getText($qualifier);\n\t\t\t\t\t\t\t\t\t} elseif ($qualifier instanceof HHAST\\SimpleTypeSpecifier) {\n\t\t\t\t\t\t\t\t\t\t$class = $qualifier->getSpecifier()->getText();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthrow new \\UnexpectedValueException('Bad');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t$relative_method_id = $class . '::' . $aliasing_name->getName()->getText();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$specifier = $aliasing_name->getSpecifier();\n\t\t\t\t\t\t\t\t\t$relative_method_id = $specifier->getText();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t$aliased_name = $trait_use_item->getAliasedName();\n\n\t\t\t\t\t\t\t\tif ($aliased_name instanceof HHAST\\SimpleTypeSpecifier) {\n\t\t\t\t\t\t\t\t\t$aliased_name = $aliased_name->getSpecifier();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn new PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias(\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t$relative_method_id,\n\t\t\t\t\t\t\t\t\t$flags,\n\t\t\t\t\t\t\t\t\t$aliased_name->getText()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn $adaptation;\n\t\t\t\t\t\t},","selected_text":"function(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {\n\t\t\t\t\t\t\t$trait_use_item = $trait_use_item->getItem();\n\n\t\t\t\t\t\t\t$modifiers = $trait_use_item->getModifiers();\n\n\t\t\t\t\t\t\t$flags = null;\n\n\t\t\t\t\t\t\tif ($modifiers) {\n\t\t\t\t\t\t\t\t$flags = 0;\n\n\t\t\t\t\t\t\t\tforeach ($modifiers as $modifier) {\n\t\t\t\t\t\t\t\t\tif ($modifier instanceof HHAST\\PublicToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PUBLIC;\n\t\t\t\t\t\t\t\t\t} elseif ($modifier instanceof HHAST\\ProtectedToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PROTECTED;\n\t\t\t\t\t\t\t\t\t} elseif ($modifier instanceof HHAST\\PrivateToken) {\n\t\t\t\t\t\t\t\t\t\t$flags |= PhpParser\\Node\\Stmt\\Class_::MODIFIER_PRIVATE;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ($trait_use_item instanceof HHAST\\TraitUseAliasItem) {\n\t\t\t\t\t\t\t\t$aliasing_name = $trait_use_item->getAliasingName();\n\n\t\t\t\t\t\t\t\tif ($aliasing_name instanceof HHAST\\ScopeResolutionExpression) {\n\t\t\t\t\t\t\t\t\t$qualifier = $aliasing_name->getQualifier();\n\n\t\t\t\t\t\t\t\t\tif ($qualifier instanceof HHAST\\EditableToken) {\n\t\t\t\t\t\t\t\t\t\t$class = $qualifier->getText();\n\t\t\t\t\t\t\t\t\t} elseif ($qualifier instanceof HHAST\\QualifiedName) {\n\t\t\t\t\t\t\t\t\t\t$class = QualifiedNameTransformer::getText($qualifier);\n\t\t\t\t\t\t\t\t\t} elseif ($qualifier instanceof HHAST\\SimpleTypeSpecifier) {\n\t\t\t\t\t\t\t\t\t\t$class = $qualifier->getSpecifier()->getText();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthrow new \\UnexpectedValueException('Bad');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t$relative_method_id = $class . '::' . $aliasing_name->getName()->getText();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$specifier = $aliasing_name->getSpecifier();\n\t\t\t\t\t\t\t\t\t$relative_method_id = $specifier->getText();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t$aliased_name = $trait_use_item->getAliasedName();\n\n\t\t\t\t\t\t\t\tif ($aliased_name instanceof HHAST\\SimpleTypeSpecifier) {\n\t\t\t\t\t\t\t\t\t$aliased_name = $aliased_name->getSpecifier();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn new PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias(\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t$relative_method_id,\n\t\t\t\t\t\t\t\t\t$flags,\n\t\t\t\t\t\t\t\t\t$aliased_name->getText()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn $adaptation;\n\t\t\t\t\t\t}","from":7759,"to":9791,"snippet_from":7753,"snippet_to":9792,"column_from":7,"column_to":8},{"severity":"error","line_from":285,"line_to":285,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting mixed","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\tfunction(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {","selected_text":"function(HHAST\\ListItem $trait_use_item) use ($project, $file, $scope) {","from":7759,"to":7831,"snippet_from":7753,"snippet_to":7831,"column_from":7,"column_to":79},{"severity":"info","line_from":288,"line_to":288,"type":"MixedAssignment","message":"Cannot assign $modifiers to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t$modifiers = $trait_use_item->getModifiers();","selected_text":"$modifiers","from":7893,"to":7903,"snippet_from":7886,"snippet_to":7938,"column_from":8,"column_to":18},{"severity":"error","line_from":288,"line_to":288,"type":"PossiblyNullReference","message":"Cannot call method getModifiers on possibly null value","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t$modifiers = $trait_use_item->getModifiers();","selected_text":"getModifiers","from":7923,"to":7935,"snippet_from":7886,"snippet_to":7938,"column_from":38,"column_to":50},{"severity":"error","line_from":288,"line_to":288,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getmodifiers does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t$modifiers = $trait_use_item->getModifiers();","selected_text":"getModifiers","from":7923,"to":7935,"snippet_from":7886,"snippet_to":7938,"column_from":38,"column_to":50},{"severity":"info","line_from":295,"line_to":295,"type":"MixedAssignment","message":"Cannot assign $modifier to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\tforeach ($modifiers as $modifier) {","selected_text":"$modifier","from":8040,"to":8049,"snippet_from":8009,"snippet_to":8052,"column_from":32,"column_to":41},{"severity":"info","line_from":317,"line_to":317,"type":"MixedAssignment","message":"Cannot assign $class to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t\t$class = $qualifier->getSpecifier()->getText();","selected_text":"$class","from":9029,"to":9035,"snippet_from":9019,"snippet_to":9076,"column_from":11,"column_to":17},{"severity":"error","line_from":317,"line_to":317,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::gettext does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t\t$class = $qualifier->getSpecifier()->getText();","selected_text":"getText","from":9066,"to":9073,"snippet_from":9019,"snippet_to":9076,"column_from":48,"column_to":55},{"severity":"info","line_from":322,"line_to":322,"type":"MixedOperand","message":"Left operand cannot be mixed","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t$relative_method_id = $class . '::' . $aliasing_name->getName()->getText();","selected_text":"$class","from":9192,"to":9198,"snippet_from":9161,"snippet_to":9245,"column_from":32,"column_to":38},{"severity":"error","line_from":322,"line_to":322,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::gettext does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t$relative_method_id = $class . '::' . $aliasing_name->getName()->getText();","selected_text":"getText","from":9235,"to":9242,"snippet_from":9161,"snippet_to":9245,"column_from":75,"column_to":82},{"severity":"info","line_from":324,"line_to":324,"type":"MixedAssignment","message":"Cannot assign $specifier to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t$specifier = $aliasing_name->getSpecifier();","selected_text":"$specifier","from":9272,"to":9282,"snippet_from":9263,"snippet_to":9316,"column_from":10,"column_to":20},{"severity":"error","line_from":324,"line_to":324,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getspecifier does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t$specifier = $aliasing_name->getSpecifier();","selected_text":"getSpecifier","from":9301,"to":9313,"snippet_from":9263,"snippet_to":9316,"column_from":39,"column_to":51},{"severity":"info","line_from":325,"line_to":325,"type":"MixedAssignment","message":"Cannot assign $relative_method_id to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t$relative_method_id = $specifier->getText();","selected_text":"$relative_method_id","from":9326,"to":9345,"snippet_from":9317,"snippet_to":9370,"column_from":10,"column_to":29},{"severity":"info","line_from":325,"line_to":325,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t$relative_method_id = $specifier->getText();","selected_text":"getText","from":9360,"to":9367,"snippet_from":9317,"snippet_to":9370,"column_from":44,"column_to":51},{"severity":"info","line_from":336,"line_to":336,"type":"MixedArgument","message":"Argument 2 of PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias::__construct cannot be mixed, expecting string|PhpParser\\Node\\Identifier","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t$relative_method_id,","selected_text":"$relative_method_id","from":9664,"to":9683,"snippet_from":9655,"snippet_to":9684,"column_from":10,"column_to":29},{"severity":"info","line_from":338,"line_to":338,"type":"MixedArgument","message":"Argument 4 of PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias::__construct cannot be mixed, expecting null|string|PhpParser\\Node\\Identifier","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t$aliased_name->getText()","selected_text":"$aliased_name->getText()","from":9711,"to":9735,"snippet_from":9702,"snippet_to":9735,"column_from":10,"column_to":34},{"severity":"error","line_from":338,"line_to":338,"type":"PossiblyNullReference","message":"Cannot call method getText on possibly null value","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t$aliased_name->getText()","selected_text":"getText","from":9726,"to":9733,"snippet_from":9702,"snippet_to":9735,"column_from":25,"column_to":32},{"severity":"error","line_from":338,"line_to":338,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::gettext does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t$aliased_name->getText()","selected_text":"getText","from":9726,"to":9733,"snippet_from":9702,"snippet_to":9735,"column_from":25,"column_to":32},{"severity":"error","line_from":342,"line_to":342,"type":"UndefinedVariable","message":"Cannot find referenced variable $adaptation","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\treturn $adaptation;","selected_text":"$adaptation","from":9771,"to":9782,"snippet_from":9757,"snippet_to":9783,"column_from":15,"column_to":26},{"severity":"error","line_from":344,"line_to":344,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\t\t$child->getClauses()->getChildren()","selected_text":"getChildren","from":9821,"to":9832,"snippet_from":9793,"snippet_to":9834,"column_from":29,"column_to":40},{"severity":"error","line_from":386,"line_to":386,"type":"TypeCoercion","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::getTokenComments expects Facebook\\HHAST\\EditableToken, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::getTokenComments($modifier)","selected_text":"$modifier","from":10711,"to":10720,"snippet_from":10666,"snippet_to":10721,"column_from":46,"column_to":55},{"severity":"info","line_from":424,"line_to":424,"type":"MixedAssignment","message":"Cannot assign $declarator to a mixed type","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t$declarator = $declarator->getItem();","selected_text":"$declarator","from":11897,"to":11908,"snippet_from":11894,"snippet_to":11934,"column_from":4,"column_to":15},{"severity":"error","line_from":424,"line_to":424,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t$declarator = $declarator->getItem();","selected_text":"getItem","from":11924,"to":11931,"snippet_from":11894,"snippet_to":11934,"column_from":31,"column_to":38},{"severity":"info","line_from":427,"line_to":427,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\tif ($declarator->hasInitializer()) {","selected_text":"hasInitializer","from":11979,"to":11993,"snippet_from":11959,"snippet_to":11998,"column_from":21,"column_to":35},{"severity":"info","line_from":428,"line_to":428,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$default = ExpressionTransformer::transform($declarator->getInitializer(), $project, $file, $scope);","selected_text":"$declarator->getInitializer()","from":12047,"to":12076,"snippet_from":11999,"snippet_to":12103,"column_from":49,"column_to":78},{"severity":"info","line_from":428,"line_to":428,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\t$default = ExpressionTransformer::transform($declarator->getInitializer(), $project, $file, $scope);","selected_text":"getInitializer","from":12060,"to":12074,"snippet_from":11999,"snippet_to":12103,"column_from":62,"column_to":76},{"severity":"info","line_from":432,"line_to":432,"type":"MixedArgument","message":"Argument 1 of substr cannot be mixed, expecting string","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\tsubstr($declarator->getName()->getText(), 1),","selected_text":"$declarator->getName()->getText()","from":12191,"to":12224,"snippet_from":12180,"snippet_to":12229,"column_from":12,"column_to":45},{"severity":"info","line_from":432,"line_to":432,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\tsubstr($declarator->getName()->getText(), 1),","selected_text":"getName","from":12204,"to":12211,"snippet_from":12180,"snippet_to":12229,"column_from":25,"column_to":32},{"severity":"info","line_from":432,"line_to":432,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ClassishDeclarationTransformer.php","snippet":"\t\t\t\tsubstr($declarator->getName()->getText(), 1),","selected_text":"getText","from":12215,"to":12222,"snippet_from":12180,"snippet_to":12229,"column_from":36,"column_to":43},{"severity":"info","line_from":53,"line_to":53,"type":"MixedAssignment","message":"Cannot assign $declarator to a mixed type","file_name":"src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","snippet":"\t\t\t$declarator = $declarator->getItem();","selected_text":"$declarator","from":1448,"to":1459,"snippet_from":1445,"snippet_to":1485,"column_from":4,"column_to":15},{"severity":"error","line_from":53,"line_to":53,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","snippet":"\t\t\t$declarator = $declarator->getItem();","selected_text":"getItem","from":1475,"to":1482,"snippet_from":1445,"snippet_to":1485,"column_from":31,"column_to":38},{"severity":"info","line_from":54,"line_to":54,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","snippet":"\t\t\tif (!$declarator->hasInitializer()) {","selected_text":"hasInitializer","from":1507,"to":1521,"snippet_from":1486,"snippet_to":1526,"column_from":22,"column_to":36},{"severity":"info","line_from":57,"line_to":57,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","snippet":"\t\t\t$value = ExpressionTransformer::transform($declarator->getInitializer(), $project, $file, $scope);","selected_text":"$declarator->getInitializer()","from":1591,"to":1620,"snippet_from":1546,"snippet_to":1647,"column_from":46,"column_to":75},{"severity":"info","line_from":57,"line_to":57,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","snippet":"\t\t\t$value = ExpressionTransformer::transform($declarator->getInitializer(), $project, $file, $scope);","selected_text":"getInitializer","from":1604,"to":1618,"snippet_from":1546,"snippet_to":1647,"column_from":59,"column_to":73},{"severity":"info","line_from":60,"line_to":60,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Const_::__construct cannot be mixed, expecting string|PhpParser\\Node\\Identifier","file_name":"src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","snippet":"\t\t\t\t$declarator->getName()->getText(),","selected_text":"$declarator->getName()->getText()","from":1701,"to":1734,"snippet_from":1697,"snippet_to":1735,"column_from":5,"column_to":38},{"severity":"info","line_from":60,"line_to":60,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","snippet":"\t\t\t\t$declarator->getName()->getText(),","selected_text":"getName","from":1714,"to":1721,"snippet_from":1697,"snippet_to":1735,"column_from":18,"column_to":25},{"severity":"info","line_from":60,"line_to":60,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ConstDeclarationTransformer.php","snippet":"\t\t\t\t$declarator->getName()->getText(),","selected_text":"getText","from":1725,"to":1732,"snippet_from":1697,"snippet_to":1735,"column_from":29,"column_to":36},{"severity":"info","line_from":14,"line_to":14,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/DoStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/DoStatementTransformer.php","snippet":"\t\t$stmts = NodeTransformer::transform($node->getBody(), $project, $file, $scope);","selected_text":"$stmts","from":334,"to":340,"snippet_from":332,"snippet_to":413,"column_from":3,"column_to":9},{"severity":"info","line_from":18,"line_to":18,"type":"MixedArgument","message":"Argument 2 of PhpParser\\Node\\Stmt\\Do_::__construct cannot be mixed, expecting array<array-key, PhpParser\\Node\\Stmt>","file_name":"src\/HackToPhp\/Transform\/DoStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/DoStatementTransformer.php","snippet":"\t\t\t$stmts","selected_text":"$stmts","from":472,"to":478,"snippet_from":469,"snippet_to":478,"column_from":4,"column_to":10},{"severity":"info","line_from":40,"line_to":40,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Expr\\Exit_::__construct cannot be mixed, expecting PhpParser\\Node\\Expr|null","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t \tisset($args[0]) ? $args[0]->value : null,","selected_text":"isset($args[0]) ? $args[0]->value : null","from":1505,"to":1545,"snippet_from":1496,"snippet_to":1546,"column_from":10,"column_to":50},{"severity":"error","line_from":40,"line_to":40,"type":"UndefinedVariable","message":"Cannot find referenced variable $args","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t \tisset($args[0]) ? $args[0]->value : null,","selected_text":"$args","from":1511,"to":1516,"snippet_from":1496,"snippet_to":1546,"column_from":16,"column_to":21},{"severity":"info","line_from":40,"line_to":40,"type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $args[0]","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t \tisset($args[0]) ? $args[0]->value : null,","selected_text":"$args[0]->value","from":1523,"to":1538,"snippet_from":1496,"snippet_to":1546,"column_from":28,"column_to":43},{"severity":"info","line_from":49,"line_to":49,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Expr\\Exit_::__construct cannot be mixed, expecting PhpParser\\Node\\Expr|null","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t \tisset($args[0]) ? $args[0]->value : null,","selected_text":"isset($args[0]) ? $args[0]->value : null","from":1750,"to":1790,"snippet_from":1741,"snippet_to":1791,"column_from":10,"column_to":50},{"severity":"error","line_from":49,"line_to":49,"type":"UndefinedVariable","message":"Cannot find referenced variable $args","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t \tisset($args[0]) ? $args[0]->value : null,","selected_text":"$args","from":1756,"to":1761,"snippet_from":1741,"snippet_to":1791,"column_from":16,"column_to":21},{"severity":"info","line_from":49,"line_to":49,"type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $args[0]","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t \tisset($args[0]) ? $args[0]->value : null,","selected_text":"$args[0]->value","from":1768,"to":1783,"snippet_from":1741,"snippet_to":1791,"column_from":28,"column_to":43},{"severity":"info","line_from":66,"line_to":66,"type":"MixedInferredReturnType","message":"Could not verify return type 'PhpParser\\Node\\Expr' for HackToPhp\\Transform\\ExpressionTransformer::transform","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\tpublic static function transform(HHAST\\EditableNode $node, Project $project, HackFile $file, Scope $scope) : PhpParser\\Node\\Expr\n\t{\n\t\tif ($node instanceof ParenthesizedExpression) {\n\t\t\treturn ExpressionTransformer::transform($node->getExpression(), $project, $file, $scope);\n\t\t}\n\n\t\tif ($node instanceof BinaryExpression) {","selected_text":"PhpParser\\Node\\Expr","from":2283,"to":2302,"snippet_from":2173,"snippet_to":2496,"column_from":111,"column_to":130},{"severity":"error","line_from":91,"line_to":91,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$node->hasIndex() ? self::transform($node->getIndex(), $project, $file, $scope) : null","selected_text":"$node->getIndex()","from":3214,"to":3231,"snippet_from":3174,"snippet_to":3264,"column_from":41,"column_to":58},{"severity":"info","line_from":104,"line_to":104,"type":"MixedReturnStatement","message":"Could not infer a return type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\treturn IsExpressionTransformer::transform($node, $project, $file, $scope);","selected_text":"return IsExpressionTransformer::transform($node, $project, $file, $scope);","from":3587,"to":3661,"snippet_from":3584,"snippet_to":3661,"column_from":4,"column_to":78},{"severity":"error","line_from":122,"line_to":122,"type":"TypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\PropertyFetch::__construct expects string|PhpParser\\Node\\Identifier|PhpParser\\Node\\Expr, parent type PhpParser\\Node provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\tself::transformVariableName($node->getName(), $project, $file, $scope)","selected_text":"self::transformVariableName($node->getName(), $project, $file, $scope)","from":4205,"to":4275,"snippet_from":4201,"snippet_to":4275,"column_from":5,"column_to":75},{"severity":"error","line_from":127,"line_to":127,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t$fields = $node->hasFields() ? $node->getFields()->getChildren() : [];","selected_text":"getChildren","from":4389,"to":4400,"snippet_from":4335,"snippet_to":4408,"column_from":55,"column_to":66},{"severity":"info","line_from":132,"line_to":132,"type":"MixedAssignment","message":"Cannot assign $field to a mixed type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"$field","from":4470,"to":4476,"snippet_from":4466,"snippet_to":4497,"column_from":5,"column_to":11},{"severity":"error","line_from":132,"line_to":132,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"getItem","from":4487,"to":4494,"snippet_from":4466,"snippet_to":4497,"column_from":22,"column_to":29},{"severity":"info","line_from":134,"line_to":134,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field->getValue(), $project, $file, $scope),","selected_text":"$field->getValue()","from":4592,"to":4610,"snippet_from":4554,"snippet_to":4637,"column_from":39,"column_to":57},{"severity":"info","line_from":134,"line_to":134,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field->getValue(), $project, $file, $scope),","selected_text":"getValue","from":4600,"to":4608,"snippet_from":4554,"snippet_to":4637,"column_from":47,"column_to":55},{"severity":"info","line_from":135,"line_to":135,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field->getName(), $project, $file, $scope)","selected_text":"$field->getName()","from":4676,"to":4693,"snippet_from":4638,"snippet_to":4719,"column_from":39,"column_to":56},{"severity":"info","line_from":135,"line_to":135,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field->getName(), $project, $file, $scope)","selected_text":"getName","from":4684,"to":4691,"snippet_from":4638,"snippet_to":4719,"column_from":47,"column_to":54},{"severity":"error","line_from":146,"line_to":146,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t$fields = $node->hasMembers() ? $node->getMembers()->getChildren() : [];","selected_text":"getChildren","from":4973,"to":4984,"snippet_from":4917,"snippet_to":4992,"column_from":57,"column_to":68},{"severity":"info","line_from":151,"line_to":151,"type":"MixedAssignment","message":"Cannot assign $field to a mixed type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"$field","from":5054,"to":5060,"snippet_from":5050,"snippet_to":5081,"column_from":5,"column_to":11},{"severity":"error","line_from":151,"line_to":151,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"getItem","from":5071,"to":5078,"snippet_from":5050,"snippet_to":5081,"column_from":22,"column_to":29},{"severity":"info","line_from":153,"line_to":153,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field, $project, $file, $scope)","selected_text":"$field","from":5176,"to":5182,"snippet_from":5138,"snippet_to":5208,"column_from":39,"column_to":45},{"severity":"error","line_from":164,"line_to":164,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t$fields = $node->hasItems() ? $node->getItems()->getChildren() : [];","selected_text":"getChildren","from":5448,"to":5459,"snippet_from":5396,"snippet_to":5467,"column_from":53,"column_to":64},{"severity":"info","line_from":169,"line_to":169,"type":"MixedAssignment","message":"Cannot assign $field to a mixed type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"$field","from":5529,"to":5535,"snippet_from":5525,"snippet_to":5556,"column_from":5,"column_to":11},{"severity":"error","line_from":169,"line_to":169,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"getItem","from":5546,"to":5553,"snippet_from":5525,"snippet_to":5556,"column_from":22,"column_to":29},{"severity":"info","line_from":171,"line_to":171,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field, $project, $file, $scope)","selected_text":"$field","from":5651,"to":5657,"snippet_from":5613,"snippet_to":5683,"column_from":39,"column_to":45},{"severity":"error","line_from":182,"line_to":182,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t$fields = $node->hasMembers() ? $node->getMembers()->getChildren() : [];","selected_text":"getChildren","from":5937,"to":5948,"snippet_from":5881,"snippet_to":5956,"column_from":57,"column_to":68},{"severity":"info","line_from":187,"line_to":187,"type":"MixedAssignment","message":"Cannot assign $field to a mixed type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"$field","from":6018,"to":6024,"snippet_from":6014,"snippet_to":6045,"column_from":5,"column_to":11},{"severity":"error","line_from":187,"line_to":187,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"getItem","from":6035,"to":6042,"snippet_from":6014,"snippet_to":6045,"column_from":22,"column_to":29},{"severity":"info","line_from":189,"line_to":189,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field, $project, $file, $scope),","selected_text":"$field","from":6140,"to":6146,"snippet_from":6102,"snippet_to":6173,"column_from":39,"column_to":45},{"severity":"info","line_from":190,"line_to":190,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field, $project, $file, $scope)","selected_text":"$field","from":6212,"to":6218,"snippet_from":6174,"snippet_to":6244,"column_from":39,"column_to":45},{"severity":"error","line_from":201,"line_to":201,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t$fields = $node->hasMembers() ? $node->getMembers()->getChildren() : [];","selected_text":"getChildren","from":6502,"to":6513,"snippet_from":6446,"snippet_to":6521,"column_from":57,"column_to":68},{"severity":"info","line_from":206,"line_to":206,"type":"MixedAssignment","message":"Cannot assign $field to a mixed type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"$field","from":6583,"to":6589,"snippet_from":6579,"snippet_to":6610,"column_from":5,"column_to":11},{"severity":"error","line_from":206,"line_to":206,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"getItem","from":6600,"to":6607,"snippet_from":6579,"snippet_to":6610,"column_from":22,"column_to":29},{"severity":"info","line_from":208,"line_to":208,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field->getValue(), $project, $file, $scope),","selected_text":"$field->getValue()","from":6705,"to":6723,"snippet_from":6667,"snippet_to":6750,"column_from":39,"column_to":57},{"severity":"info","line_from":208,"line_to":208,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field->getValue(), $project, $file, $scope),","selected_text":"getValue","from":6713,"to":6721,"snippet_from":6667,"snippet_to":6750,"column_from":47,"column_to":55},{"severity":"info","line_from":209,"line_to":209,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field->getKey(), $project, $file, $scope)","selected_text":"$field->getKey()","from":6789,"to":6805,"snippet_from":6751,"snippet_to":6831,"column_from":39,"column_to":55},{"severity":"info","line_from":209,"line_to":209,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($field->getKey(), $project, $file, $scope)","selected_text":"getKey","from":6797,"to":6803,"snippet_from":6751,"snippet_to":6831,"column_from":47,"column_to":53},{"severity":"error","line_from":224,"line_to":224,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t$fields = $node->hasMembers() ? $node->getMembers()->getChildren() : [];","selected_text":"getChildren","from":7250,"to":7261,"snippet_from":7194,"snippet_to":7269,"column_from":57,"column_to":68},{"severity":"info","line_from":229,"line_to":229,"type":"MixedAssignment","message":"Cannot assign $field to a mixed type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"$field","from":7331,"to":7337,"snippet_from":7327,"snippet_to":7358,"column_from":5,"column_to":11},{"severity":"error","line_from":229,"line_to":229,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"getItem","from":7348,"to":7355,"snippet_from":7327,"snippet_to":7358,"column_from":22,"column_to":29},{"severity":"info","line_from":230,"line_to":230,"type":"MixedAssignment","message":"Cannot assign $value to a mixed type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$value = $field instanceof HHAST\\ElementInitializer ? $field->getValue() : $field;","selected_text":"$value","from":7363,"to":7369,"snippet_from":7359,"snippet_to":7445,"column_from":5,"column_to":11},{"severity":"info","line_from":233,"line_to":233,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($value, $project, $file, $scope),","selected_text":"$value","from":7621,"to":7627,"snippet_from":7583,"snippet_to":7654,"column_from":39,"column_to":45},{"severity":"error","line_from":257,"line_to":257,"type":"LessSpecificReturnStatement","message":"The type 'PhpParser\\Node' is more general than the declared return type 'PhpParser\\Node\\Expr' for HackToPhp\\Transform\\ExpressionTransformer::transform","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\treturn ClassishDeclarationTransformer::transform($node, $project, $file, $scope);","selected_text":"return ClassishDeclarationTransformer::transform($node, $project, $file, $scope);","from":8350,"to":8431,"snippet_from":8347,"snippet_to":8431,"column_from":4,"column_to":85},{"severity":"error","line_from":268,"line_to":271,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\t$node = $node->getItem();\n\t\t\t\t\treturn ExpressionTransformer::transform($node, $project, $file, $scope);\n\t\t\t\t},","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\t$node = $node->getItem();\n\t\t\t\t\treturn ExpressionTransformer::transform($node, $project, $file, $scope);\n\t\t\t\t}","from":8667,"to":8845,"snippet_from":8663,"snippet_to":8846,"column_from":5,"column_to":6},{"severity":"error","line_from":268,"line_to":268,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Expr","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {","from":8667,"to":8730,"snippet_from":8663,"snippet_to":8730,"column_from":5,"column_to":68},{"severity":"error","line_from":270,"line_to":270,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\treturn ExpressionTransformer::transform($node, $project, $file, $scope);","selected_text":"$node","from":8807,"to":8812,"snippet_from":8762,"snippet_to":8839,"column_from":46,"column_to":51},{"severity":"error","line_from":283,"line_to":283,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$node->hasConsequence() ? ExpressionTransformer::transform($node->getConsequence(), $project, $file, $scope) : null,","selected_text":"$node->getConsequence()","from":9196,"to":9219,"snippet_from":9133,"snippet_to":9253,"column_from":64,"column_to":87},{"severity":"error","line_from":284,"line_to":284,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\tExpressionTransformer::transform($node->getAlternative(), $project, $file, $scope)","selected_text":"$node->getAlternative()","from":9291,"to":9314,"snippet_from":9254,"snippet_to":9340,"column_from":38,"column_to":61},{"severity":"error","line_from":290,"line_to":290,"type":"TypeCoercion","message":"Argument 1 of PhpParser\\Node\\Expr\\ClassConstFetch::__construct expects PhpParser\\Node\\Name|PhpParser\\Node\\Expr, parent type PhpParser\\Node provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\tself::transformVariableName($node->getQualifier(), $project, $file, $scope),","selected_text":"self::transformVariableName($node->getQualifier(), $project, $file, $scope)","from":9459,"to":9534,"snippet_from":9455,"snippet_to":9535,"column_from":5,"column_to":80},{"severity":"error","line_from":291,"line_to":291,"type":"TypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\ClassConstFetch::__construct expects string|PhpParser\\Node\\Identifier|PhpParser\\Node\\Expr\\Error, parent type PhpParser\\Node provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\tself::transformVariableName($node->getName(), $project, $file, $scope)","selected_text":"self::transformVariableName($node->getName(), $project, $file, $scope)","from":9540,"to":9610,"snippet_from":9536,"snippet_to":9610,"column_from":5,"column_to":75},{"severity":"error","line_from":300,"line_to":300,"type":"LessSpecificReturnStatement","message":"The type 'PhpParser\\Node' is more general than the declared return type 'PhpParser\\Node\\Expr' for HackToPhp\\Transform\\ExpressionTransformer::transform","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\treturn FunctionCallExpressionTransformer::transform($node, $project, $file, $scope);","selected_text":"return FunctionCallExpressionTransformer::transform($node, $project, $file, $scope);","from":9820,"to":9904,"snippet_from":9817,"snippet_to":9904,"column_from":4,"column_to":88},{"severity":"error","line_from":308,"line_to":308,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\treturn self::transform($node->getItem(), $project, $file, $scope);","selected_text":"$node->getItem()","from":10103,"to":10119,"snippet_from":10077,"snippet_to":10146,"column_from":27,"column_to":43},{"severity":"error","line_from":312,"line_to":312,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t$fields = $node->hasMembers() ? $node->getMembers()->getChildren() : [];","selected_text":"getChildren","from":10255,"to":10266,"snippet_from":10199,"snippet_to":10274,"column_from":57,"column_to":68},{"severity":"info","line_from":317,"line_to":317,"type":"MixedAssignment","message":"Cannot assign $field to a mixed type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"$field","from":10336,"to":10342,"snippet_from":10332,"snippet_to":10363,"column_from":5,"column_to":11},{"severity":"error","line_from":317,"line_to":317,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$field = $field->getItem();","selected_text":"getItem","from":10353,"to":10360,"snippet_from":10332,"snippet_to":10363,"column_from":22,"column_to":29},{"severity":"info","line_from":318,"line_to":318,"type":"MixedAssignment","message":"Cannot assign $value to a mixed type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t$value = $field instanceof HHAST\\ElementInitializer ? $field->getValue() : $field;","selected_text":"$value","from":10368,"to":10374,"snippet_from":10364,"snippet_to":10450,"column_from":5,"column_to":11},{"severity":"info","line_from":327,"line_to":327,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($value, $project, $file, $scope),","selected_text":"$value","from":10696,"to":10702,"snippet_from":10658,"snippet_to":10729,"column_from":39,"column_to":45},{"severity":"error","line_from":352,"line_to":352,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\tself::transform($operand, $project, $file, $scope)","selected_text":"$operand","from":11413,"to":11421,"snippet_from":11393,"snippet_to":11447,"column_from":21,"column_to":29},{"severity":"error","line_from":372,"line_to":372,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t$right_operand = self::transform($node->getRightOperand(), $project, $file, $scope);","selected_text":"$node->getRightOperand()","from":11999,"to":12023,"snippet_from":11963,"snippet_to":12050,"column_from":37,"column_to":61},{"severity":"info","line_from":419,"line_to":419,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t$stmts = NodeTransformer::transform($body, $project, $file, $scope);","selected_text":"$stmts","from":13272,"to":13278,"snippet_from":13269,"snippet_to":13340,"column_from":4,"column_to":10},{"severity":"error","line_from":424,"line_to":424,"type":"UndefinedVariable","message":"Cannot find referenced variable $param_names","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\t\tif (!isset($param_names[$var])) {","selected_text":"$param_names","from":13420,"to":13432,"snippet_from":13405,"snippet_to":13442,"column_from":16,"column_to":28},{"severity":"info","line_from":457,"line_to":457,"type":"MixedReturnStatement","message":"Could not infer a return type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\treturn AsExpressionTransformer::transform($node, $project, $file, $scope);","selected_text":"return AsExpressionTransformer::transform($node, $project, $file, $scope);","from":14105,"to":14179,"snippet_from":14102,"snippet_to":14179,"column_from":4,"column_to":78},{"severity":"info","line_from":461,"line_to":461,"type":"MixedReturnStatement","message":"Could not infer a return type","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t\treturn AsExpressionTransformer::transform($node, $project, $file, $scope);","selected_text":"return AsExpressionTransformer::transform($node, $project, $file, $scope);","from":14233,"to":14307,"snippet_from":14230,"snippet_to":14307,"column_from":4,"column_to":78},{"severity":"info","line_from":474,"line_to":474,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t \t$args","selected_text":"$args","from":14595,"to":14600,"snippet_from":14588,"snippet_to":14600,"column_from":8,"column_to":13},{"severity":"error","line_from":543,"line_to":543,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableToken::hasleading does not exist","file_name":"src\/HackToPhp\/Transform\/ExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ExpressionTransformer.php","snippet":"\t\t$comment_nodes = $token->hasLeading()","selected_text":"hasLeading","from":16349,"to":16359,"snippet_from":16322,"snippet_to":16361,"column_from":28,"column_to":38},{"severity":"info","line_from":16,"line_to":16,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/ForStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ForStatementTransformer.php","snippet":"\t\t$stmts = NodeTransformer::transform($node->getBody(), $project, $file, $scope);","selected_text":"$stmts","from":496,"to":502,"snippet_from":494,"snippet_to":575,"column_from":3,"column_to":9},{"severity":"error","line_from":39,"line_to":41,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/ForStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ForStatementTransformer.php","snippet":"\t\t\tfunction(HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\treturn ExpressionTransformer::transform($node->getItem(), $project, $file, $scope);\n\t\t\t},","selected_text":"function(HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\treturn ExpressionTransformer::transform($node->getItem(), $project, $file, $scope);\n\t\t\t}","from":964,"to":1119,"snippet_from":961,"snippet_to":1120,"column_from":4,"column_to":5},{"severity":"error","line_from":39,"line_to":39,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Expr","file_name":"src\/HackToPhp\/Transform\/ForStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ForStatementTransformer.php","snippet":"\t\t\tfunction(HHAST\\ListItem $node) use ($project, $file, $scope) {","selected_text":"function(HHAST\\ListItem $node) use ($project, $file, $scope) {","from":964,"to":1026,"snippet_from":961,"snippet_to":1026,"column_from":4,"column_to":66},{"severity":"error","line_from":40,"line_to":40,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ForStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ForStatementTransformer.php","snippet":"\t\t\t\treturn ExpressionTransformer::transform($node->getItem(), $project, $file, $scope);","selected_text":"$node->getItem()","from":1071,"to":1087,"snippet_from":1027,"snippet_to":1114,"column_from":45,"column_to":61},{"severity":"error","line_from":14,"line_to":14,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/ForeachStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ForeachStatementTransformer.php","snippet":"\t\t$key_var = $node->hasKey() ? ExpressionTransformer::transform($node->getKey(), $project, $file, $scope) : null;","selected_text":"$node->getKey()","from":499,"to":514,"snippet_from":435,"snippet_to":548,"column_from":65,"column_to":80},{"severity":"info","line_from":18,"line_to":18,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/ForeachStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ForeachStatementTransformer.php","snippet":"\t\t$stmts = NodeTransformer::transform($node->getBody(), $project, $file, $scope);","selected_text":"$stmts","from":632,"to":638,"snippet_from":630,"snippet_to":711,"column_from":3,"column_to":9},{"severity":"error","line_from":31,"line_to":31,"type":"TypeDoesNotContainNull","message":"PhpParser\\Node\\Name|PhpParser\\Node\\Expr does not contain null","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\tif ($class === null) {","selected_text":"$class === null","from":936,"to":951,"snippet_from":929,"snippet_to":954,"column_from":8,"column_to":23},{"severity":"error","line_from":39,"line_to":39,"type":"TypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\StaticCall::__construct expects string|PhpParser\\Node\\Identifier|PhpParser\\Node\\Expr, parent type PhpParser\\Node provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t$name,","selected_text":"$name","from":1228,"to":1233,"snippet_from":1224,"snippet_to":1234,"column_from":5,"column_to":10},{"severity":"info","line_from":40,"line_to":40,"type":"MixedTypeCoercion","message":"Argument 3 of PhpParser\\Node\\Expr\\StaticCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t$args","selected_text":"$args","from":1239,"to":1244,"snippet_from":1235,"snippet_to":1244,"column_from":5,"column_to":10},{"severity":"info","line_from":53,"line_to":53,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\t\t$args","selected_text":"$args","from":1609,"to":1614,"snippet_from":1603,"snippet_to":1614,"column_from":7,"column_to":12},{"severity":"info","line_from":59,"line_to":59,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t \t$args","selected_text":"$args","from":1769,"to":1774,"snippet_from":1760,"snippet_to":1774,"column_from":10,"column_to":15},{"severity":"info","line_from":65,"line_to":65,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array{0:mixed, 1:mixed} provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t \t[$args[1], $args[0]]","selected_text":"[$args[1], $args[0]]","from":1928,"to":1948,"snippet_from":1919,"snippet_to":1948,"column_from":10,"column_to":30},{"severity":"info","line_from":72,"line_to":72,"type":"MixedAssignment","message":"Cannot assign to a mixed type","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\t\t$new_args[] = $args[2];","selected_text":"$new_args[]","from":2062,"to":2073,"snippet_from":2056,"snippet_to":2085,"column_from":7,"column_to":18},{"severity":"info","line_from":77,"line_to":77,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type non-empty-array<int, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t \t$new_args","selected_text":"$new_args","from":2209,"to":2218,"snippet_from":2200,"snippet_to":2218,"column_from":10,"column_to":19},{"severity":"info","line_from":83,"line_to":83,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array{0:mixed, 1:mixed} provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t \t[$args[1], $args[0]]","selected_text":"[$args[1], $args[0]]","from":2373,"to":2393,"snippet_from":2364,"snippet_to":2393,"column_from":10,"column_to":30},{"severity":"info","line_from":89,"line_to":89,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array{0:mixed, 1:mixed} provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t \t[$args[1], $args[0]]","selected_text":"[$args[1], $args[0]]","from":2552,"to":2572,"snippet_from":2543,"snippet_to":2572,"column_from":10,"column_to":30},{"severity":"info","line_from":95,"line_to":95,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array{0:mixed, 1:mixed} provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t \t[$args[1], $args[0]]","selected_text":"[$args[1], $args[0]]","from":2732,"to":2752,"snippet_from":2723,"snippet_to":2752,"column_from":10,"column_to":30},{"severity":"info","line_from":102,"line_to":102,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t \t$args","selected_text":"$args","from":2945,"to":2950,"snippet_from":2936,"snippet_to":2950,"column_from":10,"column_to":15},{"severity":"info","line_from":108,"line_to":108,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t \t$args","selected_text":"$args","from":3101,"to":3106,"snippet_from":3092,"snippet_to":3106,"column_from":10,"column_to":15},{"severity":"info","line_from":114,"line_to":114,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t \t$args","selected_text":"$args","from":3253,"to":3258,"snippet_from":3244,"snippet_to":3258,"column_from":10,"column_to":15},{"severity":"info","line_from":119,"line_to":119,"type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $args[3]","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\t\t&& $args[3]->value instanceof PhpParser\\Node\\Expr\\ConstFetch","selected_text":"$args[3]->value","from":3327,"to":3342,"snippet_from":3318,"snippet_to":3384,"column_from":10,"column_to":25},{"severity":"info","line_from":124,"line_to":124,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<int, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\t \tarray_slice($args, 0, 3)","selected_text":"array_slice($args, 0, 3)","from":3582,"to":3606,"snippet_from":3572,"snippet_to":3606,"column_from":11,"column_to":35},{"severity":"info","line_from":131,"line_to":131,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t \t$args","selected_text":"$args","from":3697,"to":3702,"snippet_from":3690,"snippet_to":3702,"column_from":8,"column_to":13},{"severity":"info","line_from":141,"line_to":141,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t \t$args","selected_text":"$args","from":3951,"to":3956,"snippet_from":3943,"snippet_to":3956,"column_from":9,"column_to":14},{"severity":"info","line_from":150,"line_to":150,"type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $args[0]","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\t$args[0]->value,","selected_text":"$args[0]->value","from":4124,"to":4139,"snippet_from":4119,"snippet_to":4140,"column_from":6,"column_to":21},{"severity":"info","line_from":150,"line_to":150,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Expr\\Cast::__construct cannot be mixed, expecting PhpParser\\Node\\Expr","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\t$args[0]->value,","selected_text":"$args[0]->value","from":4124,"to":4139,"snippet_from":4119,"snippet_to":4140,"column_from":6,"column_to":21},{"severity":"info","line_from":157,"line_to":157,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Expr\\Exit_::__construct cannot be mixed, expecting PhpParser\\Node\\Expr|null","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t \tisset($args[0]) ? $args[0]->value : null,","selected_text":"isset($args[0]) ? $args[0]->value : null","from":4294,"to":4334,"snippet_from":4286,"snippet_to":4335,"column_from":9,"column_to":49},{"severity":"info","line_from":157,"line_to":157,"type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $args[0]","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t \tisset($args[0]) ? $args[0]->value : null,","selected_text":"$args[0]->value","from":4312,"to":4327,"snippet_from":4286,"snippet_to":4335,"column_from":27,"column_to":42},{"severity":"info","line_from":164,"line_to":164,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Expr\\Exit_::__construct cannot be mixed, expecting PhpParser\\Node\\Expr|null","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t \tisset($args[0]) ? $args[0]->value : null,","selected_text":"isset($args[0]) ? $args[0]->value : null","from":4489,"to":4529,"snippet_from":4481,"snippet_to":4530,"column_from":9,"column_to":49},{"severity":"info","line_from":164,"line_to":164,"type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $args[0]","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t \tisset($args[0]) ? $args[0]->value : null,","selected_text":"$args[0]->value","from":4507,"to":4522,"snippet_from":4481,"snippet_to":4530,"column_from":27,"column_to":42},{"severity":"info","line_from":171,"line_to":171,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t \t$args","selected_text":"$args","from":4697,"to":4702,"snippet_from":4690,"snippet_to":4702,"column_from":8,"column_to":13},{"severity":"error","line_from":181,"line_to":181,"type":"TypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\MethodCall::__construct expects string|PhpParser\\Node\\Identifier|PhpParser\\Node\\Expr, parent type PhpParser\\Node provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t$name,","selected_text":"$name","from":5040,"to":5045,"snippet_from":5036,"snippet_to":5046,"column_from":5,"column_to":10},{"severity":"info","line_from":182,"line_to":182,"type":"MixedTypeCoercion","message":"Argument 3 of PhpParser\\Node\\Expr\\MethodCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t$args","selected_text":"$args","from":5051,"to":5056,"snippet_from":5047,"snippet_to":5056,"column_from":5,"column_to":10},{"severity":"error","line_from":205,"line_to":205,"type":"TypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\MethodCall::__construct expects string|PhpParser\\Node\\Identifier|PhpParser\\Node\\Expr, parent type PhpParser\\Node provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\t$name,","selected_text":"$name","from":5801,"to":5806,"snippet_from":5796,"snippet_to":5807,"column_from":6,"column_to":11},{"severity":"info","line_from":206,"line_to":206,"type":"MixedTypeCoercion","message":"Argument 3 of PhpParser\\Node\\Expr\\MethodCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\t$args","selected_text":"$args","from":5813,"to":5818,"snippet_from":5808,"snippet_to":5818,"column_from":6,"column_to":11},{"severity":"error","line_from":213,"line_to":213,"type":"TypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\MethodCall::__construct expects string|PhpParser\\Node\\Identifier|PhpParser\\Node\\Expr, parent type PhpParser\\Node provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\t$name,","selected_text":"$name","from":5941,"to":5946,"snippet_from":5936,"snippet_to":5947,"column_from":6,"column_to":11},{"severity":"info","line_from":214,"line_to":214,"type":"MixedTypeCoercion","message":"Argument 3 of PhpParser\\Node\\Expr\\MethodCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\t$args","selected_text":"$args","from":5953,"to":5958,"snippet_from":5948,"snippet_to":5958,"column_from":6,"column_to":11},{"severity":"info","line_from":229,"line_to":229,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t \t$args","selected_text":"$args","from":6283,"to":6288,"snippet_from":6277,"snippet_to":6288,"column_from":7,"column_to":12},{"severity":"error","line_from":240,"line_to":240,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Arg","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\tfunction (HHAST\\EditableNode $node) use ($project, $file, $scope) {","selected_text":"function (HHAST\\EditableNode $node) use ($project, $file, $scope) {","from":6485,"to":6552,"snippet_from":6482,"snippet_to":6552,"column_from":4,"column_to":71},{"severity":"info","line_from":241,"line_to":241,"type":"MixedAssignment","message":"Cannot assign $item to a mixed type","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t$item = $node->getItem();","selected_text":"$item","from":6557,"to":6562,"snippet_from":6553,"snippet_to":6582,"column_from":5,"column_to":10},{"severity":"error","line_from":241,"line_to":241,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t$item = $node->getItem();","selected_text":"getItem","from":6572,"to":6579,"snippet_from":6553,"snippet_to":6582,"column_from":20,"column_to":27},{"severity":"info","line_from":274,"line_to":274,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionCallExpressionTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($item, $project, $file, $scope),","selected_text":"$item","from":7694,"to":7699,"snippet_from":7656,"snippet_to":7726,"column_from":39,"column_to":44},{"severity":"error","line_from":30,"line_to":30,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t$modifiers = $header->hasModifiers() ? $header->getModifiers()->getChildren() : null;","selected_text":"getChildren","from":684,"to":695,"snippet_from":618,"snippet_to":705,"column_from":67,"column_to":78},{"severity":"error","line_from":41,"line_to":41,"type":"PossiblyNullReference","message":"Cannot call method getParameters on possibly null value","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t->getParameters()","selected_text":"getParameters","from":867,"to":880,"snippet_from":861,"snippet_to":882,"column_from":7,"column_to":20},{"severity":"error","line_from":51,"line_to":51,"type":"PossiblyNullReference","message":"Cannot call method getDescendantsOfType on possibly null value","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t\t\t->getDescendantsOfType(HHAST\\TypeConstraint::class);","selected_text":"getDescendantsOfType","from":1200,"to":1220,"snippet_from":1192,"snippet_to":1250,"column_from":9,"column_to":29},{"severity":"error","line_from":71,"line_to":71,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::getTokenComments cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t'comments' => ExpressionTransformer::getTokenComments($header->getKeyword())","selected_text":"$header->getKeyword()","from":2038,"to":2059,"snippet_from":1981,"snippet_to":2060,"column_from":58,"column_to":79},{"severity":"error","line_from":78,"line_to":78,"type":"TypeCoercion","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::getTokenComments expects Facebook\\HHAST\\EditableToken, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::getTokenComments($modifier)","selected_text":"$modifier","from":2244,"to":2253,"snippet_from":2199,"snippet_to":2254,"column_from":46,"column_to":55},{"severity":"error","line_from":113,"line_to":113,"type":"PossiblyNullReference","message":"Cannot call method getDescendantsOfType on possibly null value","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t? $header->getParameterList()->getDescendantsOfType(HHAST\\ParameterDeclaration::class)","selected_text":"getDescendantsOfType","from":3314,"to":3334,"snippet_from":3280,"snippet_to":3369,"column_from":35,"column_to":55},{"severity":"info","line_from":140,"line_to":140,"type":"MixedTypeCoercion","message":"Argument 3 of Psalm\\Type::parseString expects array<string, array{0:Psalm\\Type\\Union, 1:null|string}>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t$psalm_return_type = Psalm\\Type::parseString($return_type_string, false, $template_map);","selected_text":"$template_map","from":4039,"to":4052,"snippet_from":3963,"snippet_to":4054,"column_from":77,"column_to":90},{"severity":"info","line_from":148,"line_to":148,"type":"MixedArrayAssignment","message":"Cannot access array value on mixed variable $docblock['specials']['return']","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t\t$docblock['specials']['return'] = [$psalm_return_type->toNamespacedString($file->namespace, [], null, false)];","selected_text":"$docblock['specials']['return']","from":4306,"to":4337,"snippet_from":4301,"snippet_to":4416,"column_from":6,"column_to":37},{"severity":"info","line_from":153,"line_to":153,"type":"MixedAssignment","message":"Cannot assign $php_return_type to a mixed type","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t$php_return_type = TypeTransformer::getPhpParserTypeFromPsalm($psalm_return_type, $project, $file, $scope);","selected_text":"$php_return_type","from":4465,"to":4481,"snippet_from":4461,"snippet_to":4572,"column_from":5,"column_to":21},{"severity":"info","line_from":157,"line_to":157,"type":"MixedArgument","message":"Argument 1 of array_filter cannot be mixed, expecting array<array-key, mixed>","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t$docblock['specials'] = array_filter($docblock['specials']);","selected_text":"$docblock['specials']","from":4622,"to":4643,"snippet_from":4583,"snippet_to":4645,"column_from":40,"column_to":61},{"severity":"info","line_from":160,"line_to":160,"type":"MixedTypeCoercion","message":"Argument 1 of Psalm\\DocComment::render expects array{description:string, specials:array<string, array<array-key, string>>}, parent type non-empty-array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t$docblock_string = Psalm\\DocComment::render($docblock, '');","selected_text":"$docblock","from":4739,"to":4748,"snippet_from":4692,"snippet_to":4754,"column_from":48,"column_to":57},{"severity":"error","line_from":174,"line_to":174,"type":"PossiblyUndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::hasstatements does not exist","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\tif ($body->hasStatements()) {","selected_text":"hasStatements","from":5091,"to":5104,"snippet_from":5077,"snippet_to":5109,"column_from":15,"column_to":28},{"severity":"info","line_from":175,"line_to":175,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t$stmts = NodeTransformer::transform($body->getStatements(), $project, $file, $scope);","selected_text":"$stmts","from":5114,"to":5120,"snippet_from":5110,"snippet_to":5199,"column_from":5,"column_to":11},{"severity":"info","line_from":175,"line_to":175,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\NodeTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t$stmts = NodeTransformer::transform($body->getStatements(), $project, $file, $scope);","selected_text":"$body->getStatements()","from":5150,"to":5172,"snippet_from":5110,"snippet_to":5199,"column_from":41,"column_to":63},{"severity":"error","line_from":175,"line_to":175,"type":"PossiblyUndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getstatements does not exist","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t$stmts = NodeTransformer::transform($body->getStatements(), $project, $file, $scope);","selected_text":"getStatements","from":5157,"to":5170,"snippet_from":5110,"snippet_to":5199,"column_from":48,"column_to":61},{"severity":"error","line_from":201,"line_to":201,"type":"PossiblyNullArgument","message":"Argument 1 of PhpParser\\Node\\Stmt\\ClassMethod::__construct cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t$function_name,","selected_text":"$function_name","from":5779,"to":5793,"snippet_from":5775,"snippet_to":5794,"column_from":5,"column_to":19},{"severity":"error","line_from":208,"line_to":208,"type":"PossiblyNullArgument","message":"Argument 1 of PhpParser\\Node\\Stmt\\Function_::__construct cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t$function_name,","selected_text":"$function_name","from":5884,"to":5898,"snippet_from":5881,"snippet_to":5899,"column_from":4,"column_to":18},{"severity":"error","line_from":229,"line_to":229,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t? ExpressionTransformer::transform($params_list_param->getDefaultValue(), $project, $file, $scope)","selected_text":"$params_list_param->getDefaultValue()","from":6394,"to":6431,"snippet_from":6356,"snippet_to":6457,"column_from":39,"column_to":76},{"severity":"info","line_from":248,"line_to":248,"type":"MixedAssignment","message":"Cannot assign $param_name to a mixed type","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t$param_name = $param_name_node->getText();","selected_text":"$param_name","from":6850,"to":6861,"snippet_from":6848,"snippet_to":6892,"column_from":3,"column_to":14},{"severity":"error","line_from":248,"line_to":248,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::gettext does not exist","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t$param_name = $param_name_node->getText();","selected_text":"getText","from":6882,"to":6889,"snippet_from":6848,"snippet_to":6892,"column_from":35,"column_to":42},{"severity":"error","line_from":248,"line_to":248,"type":"PossiblyNullReference","message":"Cannot call method getText on possibly null value","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t$param_name = $param_name_node->getText();","selected_text":"getText","from":6882,"to":6889,"snippet_from":6848,"snippet_to":6892,"column_from":35,"column_to":42},{"severity":"error","line_from":257,"line_to":257,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\TypeTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t$param_type_string = TypeTransformer::transform($params_list_param->getType(), $project, $file, $scope, $template_map);","selected_text":"$params_list_param->getType()","from":7081,"to":7110,"snippet_from":7030,"snippet_to":7152,"column_from":52,"column_to":81},{"severity":"info","line_from":259,"line_to":259,"type":"MixedTypeCoercion","message":"Argument 3 of Psalm\\Type::parseString expects array<string, array{0:Psalm\\Type\\Union, 1:null|string}>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t$psalm_type = Psalm\\Type::parseString($param_type_string, false, $template_map);","selected_text":"$template_map","from":7222,"to":7235,"snippet_from":7154,"snippet_to":7237,"column_from":69,"column_to":82},{"severity":"info","line_from":269,"line_to":269,"type":"MixedArrayAssignment","message":"Cannot access array value on mixed variable $docblock['specials']['param']","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t$docblock['specials']['param'][] = $namespaced_type_string . ' ' . ($variadic ? '...' : '') . $param_name;","selected_text":"$docblock['specials']['param']","from":7431,"to":7461,"snippet_from":7427,"snippet_to":7537,"column_from":5,"column_to":35},{"severity":"info","line_from":269,"line_to":269,"type":"MixedOperand","message":"Right operand cannot be mixed","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t$docblock['specials']['param'][] = $namespaced_type_string . ' ' . ($variadic ? '...' : '') . $param_name;","selected_text":"$param_name","from":7525,"to":7536,"snippet_from":7427,"snippet_to":7537,"column_from":99,"column_to":110},{"severity":"info","line_from":272,"line_to":272,"type":"MixedAssignment","message":"Cannot assign $param_type to a mixed type","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t$param_type = TypeTransformer::getPhpParserTypeFromPsalm($psalm_type, $project, $file, $scope);","selected_text":"$param_type","from":7547,"to":7558,"snippet_from":7544,"snippet_to":7642,"column_from":4,"column_to":15},{"severity":"info","line_from":308,"line_to":308,"type":"MixedArgument","message":"Argument 1 of substr cannot be mixed, expecting string","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t\t\tsubstr($param_name, 1),","selected_text":"$param_name","from":8712,"to":8723,"snippet_from":8699,"snippet_to":8728,"column_from":14,"column_to":25},{"severity":"info","line_from":319,"line_to":319,"type":"MixedArgument","message":"Argument 1 of substr cannot be mixed, expecting string","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t\t\tsubstr($param_name, 1)","selected_text":"$param_name","from":8987,"to":8998,"snippet_from":8974,"snippet_to":9002,"column_from":14,"column_to":25},{"severity":"info","line_from":321,"line_to":321,"type":"MixedArgument","message":"Argument 1 of substr cannot be mixed, expecting string","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t\tnew PhpParser\\Node\\Expr\\Variable(substr($param_name, 1))","selected_text":"$param_name","from":9056,"to":9067,"snippet_from":9011,"snippet_to":9072,"column_from":46,"column_to":57},{"severity":"info","line_from":327,"line_to":327,"type":"MixedArgument","message":"Argument 1 of substr cannot be mixed, expecting string","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\tnew PhpParser\\Node\\Expr\\Variable(substr($param_name, 1)),","selected_text":"$param_name","from":9170,"to":9181,"snippet_from":9127,"snippet_to":9187,"column_from":44,"column_to":55},{"severity":"info","line_from":329,"line_to":329,"type":"MixedArgument","message":"Argument 3 of PhpParser\\Node\\Param::__construct cannot be mixed, expecting null|string|PhpParser\\Node\\Name|PhpParser\\Node\\NullableType","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t$param_type,","selected_text":"$param_type","from":9210,"to":9221,"snippet_from":9207,"snippet_to":9222,"column_from":4,"column_to":15},{"severity":"error","line_from":376,"line_to":376,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Expr\\ClosureUse","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t\tfunction(PhpParser\\Node\\Param $param) {","selected_text":"function(PhpParser\\Node\\Param $param) {","from":10219,"to":10258,"snippet_from":10214,"snippet_to":10258,"column_from":6,"column_to":45},{"severity":"error","line_from":379,"line_to":379,"type":"UndefinedPropertyFetch","message":"Instance property PhpParser\\Node\\Expr\\Error::$name is not defined","file_name":"src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/FunctionDeclarationTransformer.php","snippet":"\t\t\t\t\t\t\t\t(string) $param->var->name","selected_text":"$param->var->name","from":10366,"to":10383,"snippet_from":10349,"snippet_to":10383,"column_from":18,"column_to":35},{"severity":"error","line_from":23,"line_to":23,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::getTokenComments cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t$inner_comments = ExpressionTransformer::getTokenComments($node_statement->getRightBrace());","selected_text":"$node_statement->getRightBrace()","from":657,"to":689,"snippet_from":596,"snippet_to":691,"column_from":62,"column_to":94},{"severity":"info","line_from":26,"line_to":26,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t$stmts = NodeTransformer::transform($node_statement, $project, $file, $scope);","selected_text":"$stmts","from":699,"to":705,"snippet_from":697,"snippet_to":777,"column_from":3,"column_to":9},{"severity":"error","line_from":40,"line_to":40,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\IfStatementTransformer::transformElseifs cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t$elseifs = $node->hasElseifClauses() ? self::transformElseifs($node->getElseifClauses(), $project, $file, $scope) : null;","selected_text":"$node->getElseifClauses()","from":1023,"to":1048,"snippet_from":959,"snippet_to":1082,"column_from":65,"column_to":90},{"severity":"error","line_from":44,"line_to":44,"type":"PossiblyNullReference","message":"Cannot call method getStatement on possibly null value","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t$else_statement = $node->getElseClause()->getStatement();","selected_text":"getStatement","from":1177,"to":1189,"snippet_from":1132,"snippet_to":1192,"column_from":46,"column_to":58},{"severity":"error","line_from":49,"line_to":49,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::getTokenComments cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t\t$inner_else_comments = ExpressionTransformer::getTokenComments($else_statement->getRightBrace());","selected_text":"$else_statement->getRightBrace()","from":1389,"to":1421,"snippet_from":1322,"snippet_to":1423,"column_from":68,"column_to":100},{"severity":"info","line_from":57,"line_to":57,"type":"MixedAssignment","message":"Cannot assign $else_stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t\t$else_stmts = $else_statement->hasStatements()","selected_text":"$else_stmts","from":1591,"to":1602,"snippet_from":1587,"snippet_to":1637,"column_from":5,"column_to":16},{"severity":"error","line_from":57,"line_to":57,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::hasstatements does not exist","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t\t$else_stmts = $else_statement->hasStatements()","selected_text":"hasStatements","from":1622,"to":1635,"snippet_from":1587,"snippet_to":1637,"column_from":36,"column_to":49},{"severity":"info","line_from":58,"line_to":58,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\NodeTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t\t\t? NodeTransformer::transform($else_statement->getStatements(), $project, $file, $scope)","selected_text":"$else_statement->getStatements()","from":1672,"to":1704,"snippet_from":1638,"snippet_to":1730,"column_from":35,"column_to":67},{"severity":"error","line_from":58,"line_to":58,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getstatements does not exist","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t\t\t? NodeTransformer::transform($else_statement->getStatements(), $project, $file, $scope)","selected_text":"getStatements","from":1689,"to":1702,"snippet_from":1638,"snippet_to":1730,"column_from":52,"column_to":65},{"severity":"info","line_from":75,"line_to":75,"type":"MixedTypeCoercion","message":"Argument 1 of PhpParser\\Node\\Stmt\\Else_::__construct expects array<array-key, PhpParser\\Node\\Stmt>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t\t$else_stmts","selected_text":"$else_stmts","from":2014,"to":2025,"snippet_from":2010,"snippet_to":2025,"column_from":5,"column_to":16},{"severity":"error","line_from":95,"line_to":123,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ElseifClause, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\tfunction(HHAST\\ElseifClause $node) use ($project, $file, $scope) {\n\t\t\t\t$elseif_statement = $node->getStatement();\n\n\t\t\t\t$elseif_conditional = ExpressionTransformer::transform($node->getCondition(), $project, $file, $scope);\n\t\t\t\t$elseif_statements = NodeTransformer::transform($elseif_statement, $project, $file, $scope);\n\n\t\t\t\t$inner_elseif_comments = [];\n\n\t\t\t\tif ($elseif_statement instanceof HHAST\\CompoundStatement && $elseif_statement->getRightBrace()) {\n\t\t\t\t\t$inner_elseif_comments = ExpressionTransformer::getTokenComments($elseif_statement->getRightBrace());\n\t\t\t\t}\n\n\t\t\t\tif (!is_array($elseif_statements)) {\n\t\t\t\t\t$elseif_statements = [$elseif_statements];\n\t\t\t\t}\n\n\t\t\t\tif ($inner_elseif_comments) {\n\t\t\t\t\t$elseif_statements[] = new PhpParser\\Node\\Stmt\\Nop(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t'comments' => $inner_elseif_comments\n\t\t\t\t\t\t]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn new PhpParser\\Node\\Stmt\\ElseIf_(\n\t\t\t\t\t$elseif_conditional,\n\t\t\t\t\t$elseif_statements\n\t\t\t\t);\n\t\t\t},","selected_text":"function(HHAST\\ElseifClause $node) use ($project, $file, $scope) {\n\t\t\t\t$elseif_statement = $node->getStatement();\n\n\t\t\t\t$elseif_conditional = ExpressionTransformer::transform($node->getCondition(), $project, $file, $scope);\n\t\t\t\t$elseif_statements = NodeTransformer::transform($elseif_statement, $project, $file, $scope);\n\n\t\t\t\t$inner_elseif_comments = [];\n\n\t\t\t\tif ($elseif_statement instanceof HHAST\\CompoundStatement && $elseif_statement->getRightBrace()) {\n\t\t\t\t\t$inner_elseif_comments = ExpressionTransformer::getTokenComments($elseif_statement->getRightBrace());\n\t\t\t\t}\n\n\t\t\t\tif (!is_array($elseif_statements)) {\n\t\t\t\t\t$elseif_statements = [$elseif_statements];\n\t\t\t\t}\n\n\t\t\t\tif ($inner_elseif_comments) {\n\t\t\t\t\t$elseif_statements[] = new PhpParser\\Node\\Stmt\\Nop(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t'comments' => $inner_elseif_comments\n\t\t\t\t\t\t]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn new PhpParser\\Node\\Stmt\\ElseIf_(\n\t\t\t\t\t$elseif_conditional,\n\t\t\t\t\t$elseif_statements\n\t\t\t\t);\n\t\t\t}","from":2371,"to":3309,"snippet_from":2368,"snippet_to":3310,"column_from":4,"column_to":5},{"severity":"error","line_from":95,"line_to":95,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Stmt\\ElseIf_","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\tfunction(HHAST\\ElseifClause $node) use ($project, $file, $scope) {","selected_text":"function(HHAST\\ElseifClause $node) use ($project, $file, $scope) {","from":2371,"to":2437,"snippet_from":2368,"snippet_to":2437,"column_from":4,"column_to":70},{"severity":"info","line_from":99,"line_to":99,"type":"MixedAssignment","message":"Cannot assign $elseif_statements to a mixed type","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t\t$elseif_statements = NodeTransformer::transform($elseif_statement, $project, $file, $scope);","selected_text":"$elseif_statements","from":2598,"to":2616,"snippet_from":2594,"snippet_to":2690,"column_from":5,"column_to":23},{"severity":"error","line_from":104,"line_to":104,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::getTokenComments cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t\t\t$inner_elseif_comments = ExpressionTransformer::getTokenComments($elseif_statement->getRightBrace());","selected_text":"$elseif_statement->getRightBrace()","from":2898,"to":2932,"snippet_from":2828,"snippet_to":2934,"column_from":71,"column_to":105},{"severity":"info","line_from":121,"line_to":121,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Stmt\\ElseIf_::__construct expects array<array-key, PhpParser\\Node\\Stmt>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/IfStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IfStatementTransformer.php","snippet":"\t\t\t\t\t$elseif_statements","selected_text":"$elseif_statements","from":3279,"to":3297,"snippet_from":3274,"snippet_to":3297,"column_from":6,"column_to":24},{"severity":"error","line_from":10,"line_to":10,"type":"MissingReturnType","message":"Method HackToPhp\\Transform\\IsExpressionTransformer::transform does not have a return type, expecting PhpParser\\Node\\Expr\\FuncCall|PhpParser\\Node\\Expr\\BinaryOp\\BooleanOr|PhpParser\\Node\\Expr\\Instanceof_|PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\tpublic static function transform(HHAST\\IsExpression $node, Project $project, HackFile $file, Scope $scope)","selected_text":"transform","from":131,"to":140,"snippet_from":107,"snippet_to":214,"column_from":25,"column_to":34},{"severity":"info","line_from":23,"line_to":23,"type":"MixedAssignment","message":"Cannot assign $specifier to a mixed type","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t$specifier = $right_operand->getSpecifier();","selected_text":"$specifier","from":733,"to":743,"snippet_from":730,"snippet_to":777,"column_from":4,"column_to":14},{"severity":"error","line_from":23,"line_to":23,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getspecifier does not exist","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t$specifier = $right_operand->getSpecifier();","selected_text":"getSpecifier","from":762,"to":774,"snippet_from":730,"snippet_to":777,"column_from":33,"column_to":45},{"severity":"info","line_from":28,"line_to":28,"type":"MixedArgument","message":"Argument 1 of get_class cannot be mixed, expecting object","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\tswitch (get_class($specifier)) {","selected_text":"$specifier","from":905,"to":915,"snippet_from":885,"snippet_to":919,"column_from":21,"column_to":31},{"severity":"error","line_from":32,"line_to":32,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr} provided","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left]","selected_text":"[$left]","from":1062,"to":1069,"snippet_from":1057,"snippet_to":1069,"column_from":6,"column_to":13},{"severity":"error","line_from":38,"line_to":38,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr} provided","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left]","selected_text":"[$left]","from":1218,"to":1225,"snippet_from":1213,"snippet_to":1225,"column_from":6,"column_to":13},{"severity":"error","line_from":44,"line_to":44,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr} provided","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left]","selected_text":"[$left]","from":1370,"to":1377,"snippet_from":1365,"snippet_to":1377,"column_from":6,"column_to":13},{"severity":"error","line_from":56,"line_to":56,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Assign} provided","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t\t\t\t[$left_assignment]","selected_text":"[$left_assignment]","from":1697,"to":1715,"snippet_from":1691,"snippet_to":1715,"column_from":7,"column_to":25},{"severity":"error","line_from":60,"line_to":60,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr\\Variable} provided","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t\t\t\t[new PhpParser\\Node\\Expr\\Variable('__tmp__')]","selected_text":"[new PhpParser\\Node\\Expr\\Variable('__tmp__')]","from":1827,"to":1872,"snippet_from":1821,"snippet_to":1872,"column_from":7,"column_to":52},{"severity":"error","line_from":70,"line_to":70,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr} provided","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left]","selected_text":"[$left]","from":2125,"to":2132,"snippet_from":2120,"snippet_to":2132,"column_from":6,"column_to":13},{"severity":"error","line_from":77,"line_to":77,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr} provided","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left]","selected_text":"[$left]","from":2314,"to":2321,"snippet_from":2309,"snippet_to":2321,"column_from":6,"column_to":13},{"severity":"error","line_from":83,"line_to":83,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr} provided","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left]","selected_text":"[$left]","from":2472,"to":2479,"snippet_from":2467,"snippet_to":2479,"column_from":6,"column_to":13},{"severity":"error","line_from":89,"line_to":89,"type":"InvalidArgument","message":"Argument 2 of PhpParser\\Node\\Expr\\FuncCall::__construct expects array<array-key, PhpParser\\Node\\Arg>, array{0:PhpParser\\Node\\Expr} provided","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\t\t\t\t[$left]","selected_text":"[$left]","from":2634,"to":2641,"snippet_from":2629,"snippet_to":2641,"column_from":6,"column_to":13},{"severity":"info","line_from":112,"line_to":112,"type":"MixedArgument","message":"Argument 1 of get_class cannot be mixed, expecting object","file_name":"src\/HackToPhp\/Transform\/IsExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/IsExpressionTransformer.php","snippet":"\t\tthrow new \\UnexpectedValueException('Unknown is-expression type ' . get_class($specifier));","selected_text":"$specifier","from":3251,"to":3261,"snippet_from":3171,"snippet_to":3264,"column_from":81,"column_to":91},{"severity":"error","line_from":29,"line_to":29,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::hasparameters does not exist","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t} elseif ($signature && $signature->hasParameters()) {","selected_text":"hasParameters","from":707,"to":720,"snippet_from":669,"snippet_to":725,"column_from":39,"column_to":52},{"severity":"info","line_from":30,"line_to":30,"type":"MixedAssignment","message":"Cannot assign $params_list_params to a mixed type","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t$params_list_params = $signature->getParameters()->getDescendantsOfType(HHAST\\ParameterDeclaration::class);","selected_text":"$params_list_params","from":729,"to":748,"snippet_from":726,"snippet_to":836,"column_from":4,"column_to":23},{"severity":"error","line_from":30,"line_to":30,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getparameters does not exist","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t$params_list_params = $signature->getParameters()->getDescendantsOfType(HHAST\\ParameterDeclaration::class);","selected_text":"getParameters","from":763,"to":776,"snippet_from":726,"snippet_to":836,"column_from":38,"column_to":51},{"severity":"info","line_from":32,"line_to":32,"type":"MixedAssignment","message":"Cannot assign $params_list_param to a mixed type","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\tforeach ($params_list_params as $offset => $params_list_param) {","selected_text":"$params_list_param","from":884,"to":902,"snippet_from":838,"snippet_to":905,"column_from":47,"column_to":65},{"severity":"info","line_from":33,"line_to":33,"type":"MixedAssignment","message":"Cannot assign $param_name_node to a mixed type","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t$param_name_node = $params_list_param->getName();","selected_text":"$param_name_node","from":910,"to":926,"snippet_from":906,"snippet_to":959,"column_from":5,"column_to":21},{"severity":"info","line_from":33,"line_to":33,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t$param_name_node = $params_list_param->getName();","selected_text":"getName","from":949,"to":956,"snippet_from":906,"snippet_to":959,"column_from":44,"column_to":51},{"severity":"info","line_from":39,"line_to":39,"type":"MixedAssignment","message":"Cannot assign $param_name to a mixed type","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t$param_name = $param_name_node->getText();","selected_text":"$param_name","from":1096,"to":1107,"snippet_from":1092,"snippet_to":1138,"column_from":5,"column_to":16},{"severity":"info","line_from":39,"line_to":39,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t$param_name = $param_name_node->getText();","selected_text":"getText","from":1128,"to":1135,"snippet_from":1092,"snippet_to":1138,"column_from":37,"column_to":44},{"severity":"error","line_from":39,"line_to":39,"type":"PossiblyUndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::gettext does not exist","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t$param_name = $param_name_node->getText();","selected_text":"getText","from":1128,"to":1135,"snippet_from":1092,"snippet_to":1138,"column_from":37,"column_to":44},{"severity":"info","line_from":40,"line_to":40,"type":"MixedArrayOffset","message":"Cannot access value on variable $param_names[$param_name] using mixed offset","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t$param_names[$param_name] = true;","selected_text":"$param_names[$param_name]","from":1143,"to":1168,"snippet_from":1139,"snippet_to":1176,"column_from":5,"column_to":30},{"severity":"info","line_from":43,"line_to":43,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\FunctionDeclarationTransformer::getParam cannot be mixed, expecting Facebook\\HHAST\\ParameterDeclaration","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t\t$params_list_param,","selected_text":"$params_list_param","from":1245,"to":1263,"snippet_from":1240,"snippet_to":1264,"column_from":6,"column_to":24},{"severity":"info","line_from":44,"line_to":44,"type":"MixedArgument","message":"Argument 2 of HackToPhp\\Transform\\FunctionDeclarationTransformer::getParam cannot be mixed, expecting int","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t\t$offset,","selected_text":"$offset","from":1270,"to":1277,"snippet_from":1265,"snippet_to":1278,"column_from":6,"column_to":13},{"severity":"info","line_from":60,"line_to":60,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t$stmts = NodeTransformer::transform($body, $project, $file, $scope);","selected_text":"$stmts","from":1526,"to":1532,"snippet_from":1523,"snippet_to":1594,"column_from":4,"column_to":10},{"severity":"info","line_from":62,"line_to":62,"type":"MixedArgument","message":"Argument 1 of count cannot be mixed, expecting array<array-key, mixed>|Countable","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\tif (count($stmts) === 1","selected_text":"$stmts","from":1609,"to":1615,"snippet_from":1596,"snippet_to":1622,"column_from":14,"column_to":20},{"severity":"info","line_from":63,"line_to":63,"type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $stmts","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t&& !$stmts[0] instanceof PhpParser\\Node\\Stmt","selected_text":"$stmts[0]","from":1631,"to":1640,"snippet_from":1623,"snippet_to":1671,"column_from":9,"column_to":18},{"severity":"info","line_from":67,"line_to":67,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Stmt\\Return_::__construct cannot be mixed, expecting PhpParser\\Node\\Expr|null","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t\t\t$stmts[0]->expr","selected_text":"$stmts[0]->expr","from":1738,"to":1753,"snippet_from":1732,"snippet_to":1753,"column_from":7,"column_to":22},{"severity":"info","line_from":67,"line_to":67,"type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $stmts[0]","file_name":"src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LambdaExpressionTransformer.php","snippet":"\t\t\t\t\t\t$stmts[0]->expr","selected_text":"$stmts[0]->expr","from":1738,"to":1753,"snippet_from":1732,"snippet_to":1753,"column_from":7,"column_to":22},{"severity":"error","line_from":90,"line_to":90,"type":"InvalidArrayOffset","message":"Cannot access value on variable $children using offset value of 0, expecting string","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t$first_child = $children[0];","selected_text":"$children[0]","from":2664,"to":2676,"snippet_from":2645,"snippet_to":2677,"column_from":20,"column_to":32},{"severity":"error","line_from":95,"line_to":95,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Expr","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\t\tfunction($item) use ($project, $file, $scope) {","selected_text":"function($item) use ($project, $file, $scope) {","from":2823,"to":2870,"snippet_from":2816,"snippet_to":2870,"column_from":8,"column_to":55},{"severity":"error","line_from":95,"line_to":95,"type":"MissingClosureParamType","message":"Parameter $item has no provided type","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\t\tfunction($item) use ($project, $file, $scope) {","selected_text":"$item","from":2832,"to":2837,"snippet_from":2816,"snippet_to":2870,"column_from":17,"column_to":22},{"severity":"info","line_from":108,"line_to":108,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\t\t\treturn ExpressionTransformer::transform($item, $project, $file, $scope);","selected_text":"$item","from":3339,"to":3344,"snippet_from":3291,"snippet_to":3371,"column_from":49,"column_to":54},{"severity":"error","line_from":122,"line_to":122,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Expr","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\t\tfunction($item) use ($project, $file, $scope, $quoted_label) {","selected_text":"function($item) use ($project, $file, $scope, $quoted_label) {","from":3751,"to":3813,"snippet_from":3744,"snippet_to":3813,"column_from":8,"column_to":70},{"severity":"error","line_from":122,"line_to":122,"type":"MissingClosureParamType","message":"Parameter $item has no provided type","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\t\tfunction($item) use ($project, $file, $scope, $quoted_label) {","selected_text":"$item","from":3760,"to":3765,"snippet_from":3744,"snippet_to":3813,"column_from":17,"column_to":22},{"severity":"error","line_from":125,"line_to":128,"type":"InternalMethod","message":"The method PhpParser\\Node\\Scalar\\String_::parseEscapeSequences has been marked as internal","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t\tPhpParser\\Node\\Scalar\\String_::parseEscapeSequences(\n\t\t\t\t\t\t\t\t\t\t\tpreg_replace('\/^<<<' . $quoted_label . '\\n\/', '', $item->getText()),\n\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t)","selected_text":"PhpParser\\Node\\Scalar\\String_::parseEscapeSequences(\n\t\t\t\t\t\t\t\t\t\t\tpreg_replace('\/^<<<' . $quoted_label . '\\n\/', '', $item->getText()),\n\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t)","from":3954,"to":4114,"snippet_from":3944,"snippet_to":4114,"column_from":11,"column_to":0},{"severity":"error","line_from":134,"line_to":137,"type":"InternalMethod","message":"The method PhpParser\\Node\\Scalar\\String_::parseEscapeSequences has been marked as internal","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t\tPhpParser\\Node\\Scalar\\String_::parseEscapeSequences(\n\t\t\t\t\t\t\t\t\t\t\tpreg_replace('\/\\n' . $quoted_label . '$\/', '', $item->getText()),\n\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t)","selected_text":"PhpParser\\Node\\Scalar\\String_::parseEscapeSequences(\n\t\t\t\t\t\t\t\t\t\t\tpreg_replace('\/\\n' . $quoted_label . '$\/', '', $item->getText()),\n\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t)","from":4278,"to":4435,"snippet_from":4268,"snippet_to":4435,"column_from":11,"column_to":0},{"severity":"error","line_from":143,"line_to":146,"type":"InternalMethod","message":"The method PhpParser\\Node\\Scalar\\String_::parseEscapeSequences has been marked as internal","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\t\t\t\t\tPhpParser\\Node\\Scalar\\String_::parseEscapeSequences(\n\t\t\t\t\t\t\t\t\t\t\t$item->getText(),\n\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t)","selected_text":"PhpParser\\Node\\Scalar\\String_::parseEscapeSequences(\n\t\t\t\t\t\t\t\t\t\t\t$item->getText(),\n\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t)","from":4592,"to":4701,"snippet_from":4582,"snippet_to":4701,"column_from":11,"column_to":0},{"severity":"info","line_from":150,"line_to":150,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\t\t\treturn ExpressionTransformer::transform($item, $project, $file, $scope);","selected_text":"$item","from":4773,"to":4778,"snippet_from":4725,"snippet_to":4805,"column_from":49,"column_to":54},{"severity":"error","line_from":164,"line_to":164,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Expr","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\tfunction($item) use ($project, $file, $scope) {","selected_text":"function($item) use ($project, $file, $scope) {","from":5068,"to":5115,"snippet_from":5062,"snippet_to":5115,"column_from":7,"column_to":54},{"severity":"error","line_from":164,"line_to":164,"type":"MissingClosureParamType","message":"Parameter $item has no provided type","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\tfunction($item) use ($project, $file, $scope) {","selected_text":"$item","from":5077,"to":5082,"snippet_from":5062,"snippet_to":5115,"column_from":16,"column_to":21},{"severity":"info","line_from":183,"line_to":183,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/LiteralExpressionTransformer.php","snippet":"\t\t\t\t\t\t\treturn ExpressionTransformer::transform($item, $project, $file, $scope);","selected_text":"$item","from":5762,"to":5767,"snippet_from":5715,"snippet_to":5794,"column_from":48,"column_to":53},{"severity":"error","line_from":10,"line_to":10,"type":"InvalidReturnType","message":"Not all code paths of HackToPhp\\Transform\\NamespaceGroupUseDeclarationTransformer::transform end in a return statement, return type PhpParser\\Node expected","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\tpublic static function transform(HHAST\\NamespaceGroupUseDeclaration $node, Project $project, HackFile $file, Scope $scope) : PhpParser\\Node\n\t{\n\t\t$kind = $node->getKind();\n\t\t$prefix = QualifiedNameTransformer::transform($node->getPrefix());\n\n\t\t$aliases = [];\n\n\t\t$uses = array_map(","selected_text":"PhpParser\\Node","from":249,"to":263,"snippet_from":123,"snippet_to":403,"column_from":127,"column_to":141},{"severity":"error","line_from":18,"line_to":18,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Stmt\\UseUse","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\tfunction(HHAST\\NamespaceUseClause $clause) use (&$aliases, $prefix) {","selected_text":"function(HHAST\\NamespaceUseClause $clause) use (&$aliases, $prefix) {","from":407,"to":476,"snippet_from":404,"snippet_to":476,"column_from":4,"column_to":73},{"severity":"error","line_from":26,"line_to":26,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting mixed","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"function($t) { return $t->getText(); }","from":688,"to":726,"snippet_from":678,"snippet_to":727,"column_from":11,"column_to":49},{"severity":"error","line_from":26,"line_to":26,"type":"MissingClosureParamType","message":"Parameter $t has no provided type","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"$t","from":697,"to":699,"snippet_from":678,"snippet_to":727,"column_from":20,"column_to":22},{"severity":"info","line_from":26,"line_to":26,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"getText","from":714,"to":721,"snippet_from":678,"snippet_to":727,"column_from":37,"column_to":44},{"severity":"error","line_from":35,"line_to":35,"type":"PossiblyNullReference","message":"Cannot call method getText on possibly null value","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t $real_alias = $clause->hasAlias() ? $clause->getAlias()->getText() : null;","selected_text":"getText","from":987,"to":994,"snippet_from":923,"snippet_to":1004,"column_from":65,"column_to":72},{"severity":"info","line_from":45,"line_to":45,"type":"MixedAssignment","message":"Cannot assign $value to a mixed type","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\tforeach ($aliases as $key => $value) {","selected_text":"$value","from":1356,"to":1362,"snippet_from":1324,"snippet_to":1365,"column_from":33,"column_to":39},{"severity":"info","line_from":46,"line_to":46,"type":"MixedTypeCoercion","message":"$file->aliased_namespaces expects 'array<string, string>', parent type `non-empty-array<string|mixed, mixed>` provided","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_namespaces[$key] = $value;","selected_text":"$file->aliased_namespaces","from":1370,"to":1395,"snippet_from":1366,"snippet_to":1411,"column_from":5,"column_to":30},{"severity":"info","line_from":46,"line_to":46,"type":"MixedArrayOffset","message":"Cannot access value on variable $file->aliased_namespaces[$key] using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_namespaces[$key] = $value;","selected_text":"$file->aliased_namespaces[$key]","from":1370,"to":1401,"snippet_from":1366,"snippet_to":1411,"column_from":5,"column_to":36},{"severity":"info","line_from":55,"line_to":55,"type":"MixedAssignment","message":"Cannot assign $value to a mixed type","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\tforeach ($aliases as $key => $value) {","selected_text":"$value","from":1589,"to":1595,"snippet_from":1557,"snippet_to":1598,"column_from":33,"column_to":39},{"severity":"info","line_from":56,"line_to":56,"type":"MixedArrayOffset","message":"Cannot access value on variable $project->types using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\tif (isset($project->types[$value])) {","selected_text":"$project->types[$value]","from":1613,"to":1636,"snippet_from":1599,"snippet_to":1640,"column_from":15,"column_to":38},{"severity":"info","line_from":57,"line_to":57,"type":"MixedTypeCoercion","message":"$file->aliased_types expects 'array<string, string>', parent type `non-empty-array<string|mixed, mixed>` provided","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t\t$file->aliased_types[$key] = $value;","selected_text":"$file->aliased_types","from":1646,"to":1666,"snippet_from":1641,"snippet_to":1682,"column_from":6,"column_to":26},{"severity":"info","line_from":57,"line_to":57,"type":"MixedArrayOffset","message":"Cannot access value on variable $file->aliased_types[$key] using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t\t$file->aliased_types[$key] = $value;","selected_text":"$file->aliased_types[$key]","from":1646,"to":1672,"snippet_from":1641,"snippet_to":1682,"column_from":6,"column_to":32},{"severity":"info","line_from":59,"line_to":59,"type":"MixedTypeCoercion","message":"$file->aliased_namespaces expects 'array<string, string>', parent type `non-empty-array<string|mixed, mixed>` provided","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t\t$file->aliased_namespaces[$key] = $value;","selected_text":"$file->aliased_namespaces","from":1701,"to":1726,"snippet_from":1696,"snippet_to":1742,"column_from":6,"column_to":31},{"severity":"info","line_from":59,"line_to":59,"type":"MixedArrayOffset","message":"Cannot access value on variable $file->aliased_namespaces[$key] using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t\t$file->aliased_namespaces[$key] = $value;","selected_text":"$file->aliased_namespaces[$key]","from":1701,"to":1732,"snippet_from":1696,"snippet_to":1742,"column_from":6,"column_to":37},{"severity":"info","line_from":72,"line_to":72,"type":"MixedAssignment","message":"Cannot assign $value to a mixed type","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\tforeach ($aliases as $key => $value) {","selected_text":"$value","from":2007,"to":2013,"snippet_from":1975,"snippet_to":2016,"column_from":33,"column_to":39},{"severity":"info","line_from":73,"line_to":73,"type":"MixedArrayOffset","message":"Cannot access value on variable $file->aliased_functions[$key] using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_functions[$key] = $value;","selected_text":"$file->aliased_functions[$key]","from":2021,"to":2051,"snippet_from":2017,"snippet_to":2061,"column_from":5,"column_to":35},{"severity":"info","line_from":73,"line_to":73,"type":"MixedTypeCoercion","message":"$file->aliased_functions expects 'array<string, string>', parent type `non-empty-array<string|mixed, mixed>` provided","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_functions[$key] = $value;","selected_text":"$file->aliased_functions","from":2021,"to":2045,"snippet_from":2017,"snippet_to":2061,"column_from":5,"column_to":29},{"severity":"info","line_from":80,"line_to":80,"type":"MixedAssignment","message":"Cannot assign $value to a mixed type","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\tforeach ($aliases as $key => $value) {","selected_text":"$value","from":2249,"to":2255,"snippet_from":2217,"snippet_to":2258,"column_from":33,"column_to":39},{"severity":"info","line_from":81,"line_to":81,"type":"MixedArrayOffset","message":"Cannot access value on variable $file->aliased_constants[$key] using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_constants[$key] = $value;","selected_text":"$file->aliased_constants[$key]","from":2263,"to":2293,"snippet_from":2259,"snippet_to":2303,"column_from":5,"column_to":35},{"severity":"info","line_from":81,"line_to":81,"type":"MixedTypeCoercion","message":"$file->aliased_constants expects 'array<string, string>', parent type `non-empty-array<string|mixed, mixed>` provided","file_name":"src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceGroupUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_constants[$key] = $value;","selected_text":"$file->aliased_constants","from":2263,"to":2287,"snippet_from":2259,"snippet_to":2303,"column_from":5,"column_to":29},{"severity":"error","line_from":17,"line_to":17,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Stmt\\UseUse","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\tfunction(HHAST\\NamespaceUseClause $clause) use (&$aliases) {","selected_text":"function(HHAST\\NamespaceUseClause $clause) use (&$aliases) {","from":328,"to":388,"snippet_from":325,"snippet_to":388,"column_from":4,"column_to":64},{"severity":"error","line_from":25,"line_to":25,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting mixed","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"function($t) { return $t->getText(); }","from":600,"to":638,"snippet_from":590,"snippet_to":639,"column_from":11,"column_to":49},{"severity":"error","line_from":25,"line_to":25,"type":"MissingClosureParamType","message":"Parameter $t has no provided type","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"$t","from":609,"to":611,"snippet_from":590,"snippet_to":639,"column_from":20,"column_to":22},{"severity":"info","line_from":25,"line_to":25,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"getText","from":626,"to":633,"snippet_from":590,"snippet_to":639,"column_from":37,"column_to":44},{"severity":"error","line_from":34,"line_to":34,"type":"PossiblyNullReference","message":"Cannot call method getText on possibly null value","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t $real_alias = $clause->hasAlias() ? $clause->getAlias()->getText() : null;","selected_text":"getText","from":899,"to":906,"snippet_from":835,"snippet_to":916,"column_from":65,"column_to":72},{"severity":"info","line_from":44,"line_to":44,"type":"MixedAssignment","message":"Cannot assign $value to a mixed type","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\tforeach ($aliases as $key => $value) {","selected_text":"$value","from":1249,"to":1255,"snippet_from":1217,"snippet_to":1258,"column_from":33,"column_to":39},{"severity":"info","line_from":45,"line_to":45,"type":"MixedArrayOffset","message":"Cannot access value on variable $file->aliased_namespaces[$key] using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_namespaces[$key] = $value;","selected_text":"$file->aliased_namespaces[$key]","from":1263,"to":1294,"snippet_from":1259,"snippet_to":1304,"column_from":5,"column_to":36},{"severity":"info","line_from":45,"line_to":45,"type":"MixedTypeCoercion","message":"$file->aliased_namespaces expects 'array<string, string>', parent type `non-empty-array<string|mixed, mixed>` provided","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_namespaces[$key] = $value;","selected_text":"$file->aliased_namespaces","from":1263,"to":1288,"snippet_from":1259,"snippet_to":1304,"column_from":5,"column_to":30},{"severity":"info","line_from":54,"line_to":54,"type":"MixedAssignment","message":"Cannot assign $value to a mixed type","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\tforeach ($aliases as $key => $value) {","selected_text":"$value","from":1469,"to":1475,"snippet_from":1437,"snippet_to":1478,"column_from":33,"column_to":39},{"severity":"info","line_from":55,"line_to":55,"type":"MixedArrayOffset","message":"Cannot access value on variable $project->types using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\tif (isset($project->types[$value])) {","selected_text":"$project->types[$value]","from":1493,"to":1516,"snippet_from":1479,"snippet_to":1520,"column_from":15,"column_to":38},{"severity":"info","line_from":56,"line_to":56,"type":"MixedArrayOffset","message":"Cannot access value on variable $file->aliased_types[$key] using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t\t$file->aliased_types[$key] = $value;","selected_text":"$file->aliased_types[$key]","from":1526,"to":1552,"snippet_from":1521,"snippet_to":1562,"column_from":6,"column_to":32},{"severity":"info","line_from":56,"line_to":56,"type":"MixedTypeCoercion","message":"$file->aliased_types expects 'array<string, string>', parent type `non-empty-array<string|mixed, mixed>` provided","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t\t$file->aliased_types[$key] = $value;","selected_text":"$file->aliased_types","from":1526,"to":1546,"snippet_from":1521,"snippet_to":1562,"column_from":6,"column_to":26},{"severity":"info","line_from":58,"line_to":58,"type":"MixedArrayOffset","message":"Cannot access value on variable $file->aliased_namespaces[$key] using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t\t$file->aliased_namespaces[$key] = $value;","selected_text":"$file->aliased_namespaces[$key]","from":1581,"to":1612,"snippet_from":1576,"snippet_to":1622,"column_from":6,"column_to":37},{"severity":"info","line_from":58,"line_to":58,"type":"MixedTypeCoercion","message":"$file->aliased_namespaces expects 'array<string, string>', parent type `non-empty-array<string|mixed, mixed>` provided","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t\t$file->aliased_namespaces[$key] = $value;","selected_text":"$file->aliased_namespaces","from":1581,"to":1606,"snippet_from":1576,"snippet_to":1622,"column_from":6,"column_to":31},{"severity":"info","line_from":71,"line_to":71,"type":"MixedAssignment","message":"Cannot assign $value to a mixed type","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\tforeach ($aliases as $key => $value) {","selected_text":"$value","from":1874,"to":1880,"snippet_from":1842,"snippet_to":1883,"column_from":33,"column_to":39},{"severity":"info","line_from":72,"line_to":72,"type":"MixedArrayOffset","message":"Cannot access value on variable $file->aliased_functions[$key] using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_functions[$key] = $value;","selected_text":"$file->aliased_functions[$key]","from":1888,"to":1918,"snippet_from":1884,"snippet_to":1928,"column_from":5,"column_to":35},{"severity":"info","line_from":72,"line_to":72,"type":"MixedTypeCoercion","message":"$file->aliased_functions expects 'array<string, string>', parent type `non-empty-array<string|mixed, mixed>` provided","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_functions[$key] = $value;","selected_text":"$file->aliased_functions","from":1888,"to":1912,"snippet_from":1884,"snippet_to":1928,"column_from":5,"column_to":29},{"severity":"info","line_from":79,"line_to":79,"type":"MixedAssignment","message":"Cannot assign $value to a mixed type","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\tforeach ($aliases as $key => $value) {","selected_text":"$value","from":2103,"to":2109,"snippet_from":2071,"snippet_to":2112,"column_from":33,"column_to":39},{"severity":"info","line_from":80,"line_to":80,"type":"MixedArrayOffset","message":"Cannot access value on variable $file->aliased_constants[$key] using mixed offset","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_constants[$key] = $value;","selected_text":"$file->aliased_constants[$key]","from":2117,"to":2147,"snippet_from":2113,"snippet_to":2157,"column_from":5,"column_to":35},{"severity":"info","line_from":80,"line_to":80,"type":"MixedTypeCoercion","message":"$file->aliased_constants expects 'array<string, string>', parent type `non-empty-array<string|mixed, mixed>` provided","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\t\t\t$file->aliased_constants[$key] = $value;","selected_text":"$file->aliased_constants","from":2117,"to":2141,"snippet_from":2113,"snippet_to":2157,"column_from":5,"column_to":29},{"severity":"error","line_from":86,"line_to":86,"type":"RedundantConditionGivenDocblockType","message":"Found a redundant condition when evaluating docblock-defined type $kind and trying to reconcile type 'Facebook\\HHAST\\EditableToken' to !falsy","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\tthrow new \\UnexpectedValueException('Nothing returned for ' . ($kind ? get_class($kind) : 'null'));","selected_text":"$kind","from":2322,"to":2327,"snippet_from":2257,"snippet_to":2358,"column_from":66,"column_to":71},{"severity":"error","line_from":86,"line_to":86,"type":"DocblockTypeContradiction","message":"Found a contradiction with a docblock-defined type when evaluating $kind and trying to reconcile type 'Facebook\\HHAST\\EditableToken' to falsy","file_name":"src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NamespaceUseDeclarationTransformer.php","snippet":"\t\tthrow new \\UnexpectedValueException('Nothing returned for ' . ($kind ? get_class($kind) : 'null'));","selected_text":"'null'","from":2349,"to":2355,"snippet_from":2257,"snippet_to":2358,"column_from":93,"column_to":99},{"severity":"error","line_from":10,"line_to":10,"type":"MissingReturnType","message":"Method HackToPhp\\Transform\\NodeTransformer::transformList does not have a return type, expecting array<string, mixed>","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\tpublic static function transformList(HHAST\\EditableList $list, Project $project, HackFile $file, Scope $scope)","selected_text":"transformList","from":123,"to":136,"snippet_from":99,"snippet_to":210,"column_from":25,"column_to":38},{"severity":"error","line_from":15,"line_to":15,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting mixed","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\tfunction(HHAST\\EditableNode $node) use ($project, $file, $scope) { return self::transform($node, $project, $file, $scope); },","selected_text":"function(HHAST\\EditableNode $node) use ($project, $file, $scope) { return self::transform($node, $project, $file, $scope); }","from":260,"to":384,"snippet_from":255,"snippet_to":385,"column_from":6,"column_to":130},{"severity":"error","line_from":18,"line_to":18,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting bool","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (PhpParser\\Node\\Stmt $node) {","selected_text":"function (PhpParser\\Node\\Stmt $node) {","from":423,"to":461,"snippet_from":419,"snippet_to":461,"column_from":5,"column_to":43},{"severity":"error","line_from":24,"line_to":24,"type":"MissingReturnType","message":"Method HackToPhp\\Transform\\NodeTransformer::transform does not have a return type","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\tpublic static function transform(HHAST\\EditableNode $node, Project $project, HackFile $file, Scope $scope)","selected_text":"transform","from":557,"to":566,"snippet_from":533,"snippet_to":640,"column_from":25,"column_to":34},{"severity":"error","line_from":35,"line_to":35,"type":"PossiblyNullReference","message":"Cannot call method getName on possibly null value","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\tif ($node->hasSuffix() && $node->getSuffix()->getName()->getText() !== 'hh') {","selected_text":"getName","from":970,"to":977,"snippet_from":921,"snippet_to":1002,"column_from":50,"column_to":57},{"severity":"error","line_from":35,"line_to":35,"type":"PossiblyNullReference","message":"Cannot call method getText on possibly null value","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\tif ($node->hasSuffix() && $node->getSuffix()->getName()->getText() !== 'hh') {","selected_text":"getText","from":981,"to":988,"snippet_from":921,"snippet_to":1002,"column_from":61,"column_to":68},{"severity":"error","line_from":68,"line_to":68,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t$node->hasLevel() ? ExpressionTransformer::transform($node->getLevel(), $project, $file, $scope) : null","selected_text":"$node->getLevel()","from":1990,"to":2007,"snippet_from":1933,"snippet_to":2040,"column_from":58,"column_to":75},{"severity":"error","line_from":74,"line_to":74,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t$node->hasLevel() ? ExpressionTransformer::transform($node->getLevel(), $project, $file, $scope) : null","selected_text":"$node->getLevel()","from":2204,"to":2221,"snippet_from":2147,"snippet_to":2254,"column_from":58,"column_to":75},{"severity":"error","line_from":108,"line_to":108,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Expr","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {","from":3249,"to":3312,"snippet_from":3245,"snippet_to":3312,"column_from":5,"column_to":68},{"severity":"error","line_from":108,"line_to":111,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\t$node = $node->getItem();\n\t\t\t\t\treturn ExpressionTransformer::transform($node, $project, $file, $scope);\n\t\t\t\t},","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\t$node = $node->getItem();\n\t\t\t\t\treturn ExpressionTransformer::transform($node, $project, $file, $scope);\n\t\t\t\t}","from":3249,"to":3427,"snippet_from":3245,"snippet_to":3428,"column_from":5,"column_to":6},{"severity":"error","line_from":110,"line_to":110,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\treturn ExpressionTransformer::transform($node, $project, $file, $scope);","selected_text":"$node","from":3389,"to":3394,"snippet_from":3344,"snippet_to":3421,"column_from":46,"column_to":51},{"severity":"error","line_from":122,"line_to":122,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Expr","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {","from":3613,"to":3676,"snippet_from":3609,"snippet_to":3676,"column_from":5,"column_to":68},{"severity":"error","line_from":122,"line_to":125,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\t$node = $node->getItem();\n\t\t\t\t\treturn ExpressionTransformer::transform($node, $project, $file, $scope);\n\t\t\t\t},","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\t$node = $node->getItem();\n\t\t\t\t\treturn ExpressionTransformer::transform($node, $project, $file, $scope);\n\t\t\t\t}","from":3613,"to":3791,"snippet_from":3609,"snippet_to":3792,"column_from":5,"column_to":6},{"severity":"error","line_from":124,"line_to":124,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\treturn ExpressionTransformer::transform($node, $project, $file, $scope);","selected_text":"$node","from":3753,"to":3758,"snippet_from":3708,"snippet_to":3785,"column_from":46,"column_to":51},{"severity":"error","line_from":136,"line_to":136,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {","from":3980,"to":4043,"snippet_from":3976,"snippet_to":4043,"column_from":5,"column_to":68},{"severity":"error","line_from":136,"line_to":139,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\t$node = $node->getItem();\n\t\t\t\t\treturn ExpressionTransformer::transformVariableName($node, $project, $file, $scope);\n\t\t\t\t},","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\t$node = $node->getItem();\n\t\t\t\t\treturn ExpressionTransformer::transformVariableName($node, $project, $file, $scope);\n\t\t\t\t}","from":3980,"to":4170,"snippet_from":3976,"snippet_to":4171,"column_from":5,"column_to":6},{"severity":"error","line_from":138,"line_to":138,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transformVariableName cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\treturn ExpressionTransformer::transformVariableName($node, $project, $file, $scope);","selected_text":"$node","from":4132,"to":4137,"snippet_from":4075,"snippet_to":4164,"column_from":58,"column_to":63},{"severity":"error","line_from":144,"line_to":144,"type":"TypeCoercion","message":"Argument 1 of PhpParser\\Node\\Stmt\\Global_::__construct expects array<array-key, PhpParser\\Node\\Expr>, parent type array<string, PhpParser\\Node> provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t$vars","selected_text":"$vars","from":4267,"to":4272,"snippet_from":4263,"snippet_to":4272,"column_from":5,"column_to":10},{"severity":"error","line_from":150,"line_to":156,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\t$node = $node->getItem();\n\t\t\t\t\treturn new PhpParser\\Node\\Stmt\\StaticVar(\n\t\t\t\t\t\tExpressionTransformer::transformVariableName($node->getName(), $project, $file, $scope),\n\t\t\t\t\t\t$node->hasInitializer() ? ExpressionTransformer::transform($node->getInitializer(), $project, $file, $scope) : null\n\t\t\t\t\t);\n\t\t\t\t},","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\t$node = $node->getItem();\n\t\t\t\t\treturn new PhpParser\\Node\\Stmt\\StaticVar(\n\t\t\t\t\t\tExpressionTransformer::transformVariableName($node->getName(), $project, $file, $scope),\n\t\t\t\t\t\t$node->hasInitializer() ? ExpressionTransformer::transform($node->getInitializer(), $project, $file, $scope) : null\n\t\t\t\t\t);\n\t\t\t\t}","from":4366,"to":4738,"snippet_from":4362,"snippet_to":4739,"column_from":5,"column_to":6},{"severity":"error","line_from":150,"line_to":150,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Stmt\\StaticVar","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {","from":4366,"to":4429,"snippet_from":4362,"snippet_to":4429,"column_from":5,"column_to":68},{"severity":"error","line_from":153,"line_to":153,"type":"TypeCoercion","message":"Argument 1 of PhpParser\\Node\\Stmt\\StaticVar::__construct expects PhpParser\\Node\\Expr\\Variable, parent type PhpParser\\Node provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t\tExpressionTransformer::transformVariableName($node->getName(), $project, $file, $scope),","selected_text":"ExpressionTransformer::transformVariableName($node->getName(), $project, $file, $scope)","from":4514,"to":4601,"snippet_from":4508,"snippet_to":4602,"column_from":7,"column_to":94},{"severity":"info","line_from":153,"line_to":153,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transformVariableName cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t\tExpressionTransformer::transformVariableName($node->getName(), $project, $file, $scope),","selected_text":"$node->getName()","from":4559,"to":4575,"snippet_from":4508,"snippet_to":4602,"column_from":52,"column_to":68},{"severity":"error","line_from":153,"line_to":153,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getname does not exist","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t\tExpressionTransformer::transformVariableName($node->getName(), $project, $file, $scope),","selected_text":"getName","from":4566,"to":4573,"snippet_from":4508,"snippet_to":4602,"column_from":59,"column_to":66},{"severity":"error","line_from":153,"line_to":153,"type":"PossiblyNullReference","message":"Cannot call method getName on possibly null value","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t\tExpressionTransformer::transformVariableName($node->getName(), $project, $file, $scope),","selected_text":"getName","from":4566,"to":4573,"snippet_from":4508,"snippet_to":4602,"column_from":59,"column_to":66},{"severity":"error","line_from":154,"line_to":154,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::hasinitializer does not exist","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t\t$node->hasInitializer() ? ExpressionTransformer::transform($node->getInitializer(), $project, $file, $scope) : null","selected_text":"hasInitializer","from":4616,"to":4630,"snippet_from":4603,"snippet_to":4724,"column_from":14,"column_to":28},{"severity":"error","line_from":154,"line_to":154,"type":"PossiblyNullReference","message":"Cannot call method hasInitializer on possibly null value","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t\t$node->hasInitializer() ? ExpressionTransformer::transform($node->getInitializer(), $project, $file, $scope) : null","selected_text":"hasInitializer","from":4616,"to":4630,"snippet_from":4603,"snippet_to":4724,"column_from":14,"column_to":28},{"severity":"info","line_from":154,"line_to":154,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t\t$node->hasInitializer() ? ExpressionTransformer::transform($node->getInitializer(), $project, $file, $scope) : null","selected_text":"$node->getInitializer()","from":4668,"to":4691,"snippet_from":4603,"snippet_to":4724,"column_from":66,"column_to":89},{"severity":"error","line_from":154,"line_to":154,"type":"PossiblyNullReference","message":"Cannot call method getInitializer on possibly null value","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t\t$node->hasInitializer() ? ExpressionTransformer::transform($node->getInitializer(), $project, $file, $scope) : null","selected_text":"getInitializer","from":4675,"to":4689,"snippet_from":4603,"snippet_to":4724,"column_from":73,"column_to":87},{"severity":"error","line_from":154,"line_to":154,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getinitializer does not exist","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t\t$node->hasInitializer() ? ExpressionTransformer::transform($node->getInitializer(), $project, $file, $scope) : null","selected_text":"getInitializer","from":4675,"to":4689,"snippet_from":4603,"snippet_to":4724,"column_from":73,"column_to":87},{"severity":"error","line_from":170,"line_to":170,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\NodeTransformer::transformList cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\treturn self::transformList($node->getStatements(), $project, $file, $scope);","selected_text":"$node->getStatements()","from":4990,"to":5012,"snippet_from":4960,"snippet_to":5039,"column_from":31,"column_to":53},{"severity":"error","line_from":194,"line_to":194,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t? ExpressionTransformer::transform($node->getExpression(), $project, $file, $scope)","selected_text":"$node->getExpression()","from":5869,"to":5891,"snippet_from":5829,"snippet_to":5917,"column_from":41,"column_to":63},{"severity":"error","line_from":234,"line_to":234,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Stmt\\Expression","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {","from":7026,"to":7089,"snippet_from":7022,"snippet_to":7089,"column_from":5,"column_to":68},{"severity":"error","line_from":234,"line_to":236,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\tfunction (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\treturn new PhpParser\\Node\\Stmt\\Expression(ExpressionTransformer::transform($node->getItem(), $project, $file, $scope));\n\t\t\t\t},","selected_text":"function (HHAST\\ListItem $node) use ($project, $file, $scope) {\n\t\t\t\t\treturn new PhpParser\\Node\\Stmt\\Expression(ExpressionTransformer::transform($node->getItem(), $project, $file, $scope));\n\t\t\t\t}","from":7026,"to":7220,"snippet_from":7022,"snippet_to":7221,"column_from":5,"column_to":6},{"severity":"error","line_from":235,"line_to":235,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\treturn new PhpParser\\Node\\Stmt\\Expression(ExpressionTransformer::transform($node->getItem(), $project, $file, $scope));","selected_text":"$node->getItem()","from":7170,"to":7186,"snippet_from":7090,"snippet_to":7214,"column_from":81,"column_to":97},{"severity":"info","line_from":240,"line_to":240,"type":"MixedAssignment","message":"Cannot assign $using_body_statements to a mixed type","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t$using_body_statements = NodeTransformer::transform($node->getBody(), $project, $file, $scope);","selected_text":"$using_body_statements","from":7275,"to":7297,"snippet_from":7272,"snippet_to":7370,"column_from":4,"column_to":26},{"severity":"info","line_from":245,"line_to":245,"type":"MixedTypeCoercion","message":"Argument 1 of PhpParser\\Node\\Stmt\\TryCatch::__construct expects array<array-key, PhpParser\\Node\\Stmt>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t$stmts,","selected_text":"$stmts","from":7478,"to":7484,"snippet_from":7474,"snippet_to":7485,"column_from":5,"column_to":11},{"severity":"error","line_from":254,"line_to":254,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t$enumerators = $node->getEnumerators()->getChildren();","selected_text":"getChildren","from":7682,"to":7693,"snippet_from":7639,"snippet_to":7696,"column_from":44,"column_to":55},{"severity":"info","line_from":259,"line_to":259,"type":"MixedAssignment","message":"Cannot assign $enum_name to a mixed type","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t$enum_name = $enumerator->getName()->getText();","selected_text":"$enum_name","from":7763,"to":7773,"snippet_from":7759,"snippet_to":7810,"column_from":5,"column_to":15},{"severity":"error","line_from":259,"line_to":259,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getname does not exist","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t$enum_name = $enumerator->getName()->getText();","selected_text":"getName","from":7789,"to":7796,"snippet_from":7759,"snippet_to":7810,"column_from":31,"column_to":38},{"severity":"info","line_from":260,"line_to":260,"type":"MixedAssignment","message":"Cannot assign $enum_value to a mixed type","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t$enum_value = $enumerator->getValue();","selected_text":"$enum_value","from":7815,"to":7826,"snippet_from":7811,"snippet_to":7853,"column_from":5,"column_to":16},{"severity":"error","line_from":260,"line_to":260,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getvalue does not exist","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t$enum_value = $enumerator->getValue();","selected_text":"getValue","from":7842,"to":7850,"snippet_from":7811,"snippet_to":7853,"column_from":32,"column_to":40},{"severity":"info","line_from":262,"line_to":262,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t$enum_value = ExpressionTransformer::transform($enum_value, $project, $file, $scope);","selected_text":"$enum_value","from":7906,"to":7917,"snippet_from":7855,"snippet_to":7944,"column_from":52,"column_to":63},{"severity":"info","line_from":267,"line_to":267,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Const_::__construct cannot be mixed, expecting string|PhpParser\\Node\\Identifier","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t\t\t$enum_name,","selected_text":"$enum_name","from":8045,"to":8055,"snippet_from":8038,"snippet_to":8056,"column_from":8,"column_to":18},{"severity":"info","line_from":309,"line_to":309,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Stmt\\DeclareDeclare::__construct cannot be mixed, expecting string|PhpParser\\Node\\Identifier","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t$key->getText(),","selected_text":"$key->getText()","from":8891,"to":8906,"snippet_from":8886,"snippet_to":8907,"column_from":6,"column_to":21},{"severity":"error","line_from":309,"line_to":309,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::gettext does not exist","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\t$key->getText(),","selected_text":"getText","from":8897,"to":8904,"snippet_from":8886,"snippet_to":8907,"column_from":12,"column_to":19},{"severity":"error","line_from":310,"line_to":310,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/NodeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/NodeTransformer.php","snippet":"\t\t\t\t\tExpressionTransformer::transform($value, $project, $file, $scope)","selected_text":"$value","from":8946,"to":8952,"snippet_from":8908,"snippet_to":8978,"column_from":39,"column_to":45},{"severity":"info","line_from":10,"line_to":10,"type":"MixedInferredReturnType","message":"Could not verify return type 'PhpParser\\Node\\Expr' for HackToPhp\\Transform\\ObjectCreationExpressionTransformer::transform","file_name":"src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","snippet":"\tpublic static function transform(HHAST\\ObjectCreationExpression $node, Project $project, HackFile $file, Scope $scope) : PhpParser\\Node\\Expr\n\t{\n\t\t$object = $node->getObject();\n\n\t\t$args = FunctionCallExpressionTransformer::transformArguments($object->getArgumentList(), $project, $file, $scope);\n\n\t\tswitch (get_class($object)) {","selected_text":"PhpParser\\Node\\Expr","from":241,"to":260,"snippet_from":119,"snippet_to":447,"column_from":123,"column_to":142},{"severity":"info","line_from":14,"line_to":14,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\FunctionCallExpressionTransformer::transformArguments cannot be mixed, expecting Facebook\\HHAST\\EditableList|null","file_name":"src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","snippet":"\t\t$args = FunctionCallExpressionTransformer::transformArguments($object->getArgumentList(), $project, $file, $scope);","selected_text":"$object->getArgumentList()","from":361,"to":387,"snippet_from":297,"snippet_to":414,"column_from":65,"column_to":91},{"severity":"error","line_from":14,"line_to":14,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getargumentlist does not exist","file_name":"src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","snippet":"\t\t$args = FunctionCallExpressionTransformer::transformArguments($object->getArgumentList(), $project, $file, $scope);","selected_text":"getArgumentList","from":370,"to":385,"snippet_from":297,"snippet_to":414,"column_from":74,"column_to":89},{"severity":"info","line_from":30,"line_to":30,"type":"MixedAssignment","message":"Cannot assign $class to a mixed type","file_name":"src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","snippet":"\t\t\t\t\t\t$class = TypeTransformer::getPhpParserTypeFromAtomicPsalm($psalm_type, $project, $file, $scope);","selected_text":"$class","from":1105,"to":1111,"snippet_from":1099,"snippet_to":1201,"column_from":7,"column_to":13},{"severity":"info","line_from":33,"line_to":33,"type":"MixedArgument","message":"Argument 1 of get_class cannot be mixed, expecting object","file_name":"src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","snippet":"\t\t\t\t\t\t\tthrow new \\UnexpectedValueException('Unexpected new class ' . get_class($class));","selected_text":"$class","from":1334,"to":1340,"snippet_from":1255,"snippet_to":1343,"column_from":80,"column_to":86},{"severity":"error","line_from":42,"line_to":42,"type":"PossiblyUndefinedVariable","message":"Possibly undefined variable $class, first seen on line 18","file_name":"src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ObjectCreationExpressionTransformer.php","snippet":"\t\t\t$class,","selected_text":"$class","from":1424,"to":1430,"snippet_from":1421,"snippet_to":1431,"column_from":4,"column_to":10},{"severity":"error","line_from":25,"line_to":33,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\ListItem, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/QualifiedNameTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/QualifiedNameTransformer.php","snippet":"\t\t\t\tfunction(HHAST\\ListItem $list_item) {\n\t\t\t\t\t$item = $list_item->getItem();\n\t\t\t\t\t\n\t\t\t\t\tif (!$item) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn $item->getText();\n\t\t\t\t},","selected_text":"function(HHAST\\ListItem $list_item) {\n\t\t\t\t\t$item = $list_item->getItem();\n\t\t\t\t\t\n\t\t\t\t\tif (!$item) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn $item->getText();\n\t\t\t\t}","from":509,"to":668,"snippet_from":505,"snippet_to":669,"column_from":5,"column_to":6},{"severity":"error","line_from":25,"line_to":25,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting mixed","file_name":"src\/HackToPhp\/Transform\/QualifiedNameTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/QualifiedNameTransformer.php","snippet":"\t\t\t\tfunction(HHAST\\ListItem $list_item) {","selected_text":"function(HHAST\\ListItem $list_item) {","from":509,"to":546,"snippet_from":505,"snippet_to":546,"column_from":5,"column_to":42},{"severity":"error","line_from":32,"line_to":32,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::gettext does not exist","file_name":"src\/HackToPhp\/Transform\/QualifiedNameTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/QualifiedNameTransformer.php","snippet":"\t\t\t\t\treturn $item->getText();","selected_text":"getText","from":652,"to":659,"snippet_from":633,"snippet_to":662,"column_from":20,"column_to":27},{"severity":"error","line_from":10,"line_to":10,"type":"MissingReturnType","message":"Method HackToPhp\\Transform\\ScriptTransformer::transform does not have a return type, expecting array<int, mixed>","file_name":"src\/HackToPhp\/Transform\/ScriptTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ScriptTransformer.php","snippet":"\tpublic static function transform(HHAST\\Script $node, Project $project, HackFile $file, Scope $scope)","selected_text":"transform","from":125,"to":134,"snippet_from":101,"snippet_to":202,"column_from":25,"column_to":34},{"severity":"info","line_from":25,"line_to":25,"type":"MixedAssignment","message":"Cannot assign $namespace_stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/ScriptTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ScriptTransformer.php","snippet":"\t\t\t\t\t$namespace_stmts = NodeTransformer::transform($declaration->getBody()->getDeclarations(), $project, $file, $scope);","selected_text":"$namespace_stmts","from":655,"to":671,"snippet_from":650,"snippet_to":770,"column_from":6,"column_to":22},{"severity":"info","line_from":25,"line_to":25,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\NodeTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/ScriptTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ScriptTransformer.php","snippet":"\t\t\t\t\t$namespace_stmts = NodeTransformer::transform($declaration->getBody()->getDeclarations(), $project, $file, $scope);","selected_text":"$declaration->getBody()->getDeclarations()","from":701,"to":743,"snippet_from":650,"snippet_to":770,"column_from":52,"column_to":94},{"severity":"error","line_from":25,"line_to":25,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getdeclarations does not exist","file_name":"src\/HackToPhp\/Transform\/ScriptTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ScriptTransformer.php","snippet":"\t\t\t\t\t$namespace_stmts = NodeTransformer::transform($declaration->getBody()->getDeclarations(), $project, $file, $scope);","selected_text":"getDeclarations","from":726,"to":741,"snippet_from":650,"snippet_to":770,"column_from":77,"column_to":92},{"severity":"info","line_from":30,"line_to":30,"type":"MixedAssignment","message":"Cannot assign to a mixed type","file_name":"src\/HackToPhp\/Transform\/ScriptTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ScriptTransformer.php","snippet":"\t\t\t\t\t\t$namespace_stmts[] = NodeTransformer::transform($sub_node, $project, $file, $scope);","selected_text":"$namespace_stmts[]","from":884,"to":902,"snippet_from":878,"snippet_to":968,"column_from":7,"column_to":25},{"severity":"info","line_from":36,"line_to":36,"type":"MixedArgument","message":"Argument 2 of PhpParser\\Node\\Stmt\\Namespace_::__construct cannot be mixed, expecting array<array-key, PhpParser\\Node\\Stmt>|null","file_name":"src\/HackToPhp\/Transform\/ScriptTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ScriptTransformer.php","snippet":"\t\t\t\t\t$namespace_stmts,","selected_text":"$namespace_stmts","from":1111,"to":1127,"snippet_from":1106,"snippet_to":1128,"column_from":6,"column_to":22},{"severity":"info","line_from":51,"line_to":51,"type":"MixedAssignment","message":"Cannot assign to a mixed type","file_name":"src\/HackToPhp\/Transform\/ScriptTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ScriptTransformer.php","snippet":"\t\t\t$stmts[] = NodeTransformer::transform($declaration, $project, $file, $scope);","selected_text":"$stmts[]","from":1409,"to":1417,"snippet_from":1406,"snippet_to":1486,"column_from":4,"column_to":12},{"severity":"error","line_from":56,"line_to":56,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting bool","file_name":"src\/HackToPhp\/Transform\/ScriptTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/ScriptTransformer.php","snippet":"\t\t\tfunction (PhpParser\\Node\\Stmt $node) {","selected_text":"function (PhpParser\\Node\\Stmt $node) {","from":1531,"to":1569,"snippet_from":1528,"snippet_to":1569,"column_from":4,"column_to":42},{"severity":"error","line_from":13,"line_to":13,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\SwitchStatementTransformer::transformCases cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","snippet":"\t\t$cases = self::transformCases($node->getSections(), $project, $file, $scope);","selected_text":"$node->getSections()","from":372,"to":392,"snippet_from":340,"snippet_to":419,"column_from":33,"column_to":53},{"severity":"info","line_from":17,"line_to":17,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Stmt\\Switch_::__construct expects array<array-key, PhpParser\\Node\\Stmt\\Case_>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","snippet":"\t\t\t$cases","selected_text":"$cases","from":482,"to":488,"snippet_from":479,"snippet_to":488,"column_from":4,"column_to":10},{"severity":"info","line_from":36,"line_to":36,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","snippet":"\t\t\t\t\t$label instanceof HHAST\\DefaultLabel ? null : ExpressionTransformer::transform($label->getExpression(), $project, $file, $scope)","selected_text":"$label->getExpression()","from":1112,"to":1135,"snippet_from":1028,"snippet_to":1161,"column_from":85,"column_to":108},{"severity":"error","line_from":36,"line_to":36,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getexpression does not exist","file_name":"src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","snippet":"\t\t\t\t\t$label instanceof HHAST\\DefaultLabel ? null : ExpressionTransformer::transform($label->getExpression(), $project, $file, $scope)","selected_text":"getExpression","from":1120,"to":1133,"snippet_from":1028,"snippet_to":1161,"column_from":93,"column_to":106},{"severity":"info","line_from":43,"line_to":43,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\ExpressionTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","snippet":"\t\t\t\t$last_label instanceof HHAST\\DefaultLabel ? null : ExpressionTransformer::transform($last_label->getExpression(), $project, $file, $scope),","selected_text":"$last_label->getExpression()","from":1342,"to":1370,"snippet_from":1254,"snippet_to":1397,"column_from":89,"column_to":117},{"severity":"error","line_from":43,"line_to":43,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getexpression does not exist","file_name":"src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","snippet":"\t\t\t\t$last_label instanceof HHAST\\DefaultLabel ? null : ExpressionTransformer::transform($last_label->getExpression(), $project, $file, $scope),","selected_text":"getExpression","from":1355,"to":1368,"snippet_from":1254,"snippet_to":1397,"column_from":102,"column_to":115},{"severity":"info","line_from":44,"line_to":44,"type":"MixedArgument","message":"Argument 2 of PhpParser\\Node\\Stmt\\Case_::__construct cannot be mixed, expecting array<array-key, PhpParser\\Node\\Stmt>","file_name":"src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","snippet":"\t\t\t\t$section->hasStatements() ? NodeTransformer::transform($section->getStatements(), $project, $file, $scope) : []","selected_text":"$section->hasStatements() ? NodeTransformer::transform($section->getStatements(), $project, $file, $scope) : []","from":1402,"to":1513,"snippet_from":1398,"snippet_to":1513,"column_from":5,"column_to":116},{"severity":"error","line_from":44,"line_to":44,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\NodeTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/SwitchStatementTransformer.php","snippet":"\t\t\t\t$section->hasStatements() ? NodeTransformer::transform($section->getStatements(), $project, $file, $scope) : []","selected_text":"$section->getStatements()","from":1457,"to":1482,"snippet_from":1398,"snippet_to":1513,"column_from":60,"column_to":85},{"severity":"info","line_from":12,"line_to":12,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t$stmts = NodeTransformer::transform($node->getCompoundStatement(), $project, $file, $scope);","selected_text":"$stmts","from":237,"to":243,"snippet_from":235,"snippet_to":329,"column_from":3,"column_to":9},{"severity":"error","line_from":14,"line_to":14,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\TryStatementTransformer::transformCatches cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t$catches = $node->hasCatchClauses() ? self::transformCatches($node->getCatchClauses(), $project, $file, $scope) : [];","selected_text":"$node->getCatchClauses()","from":394,"to":418,"snippet_from":331,"snippet_to":450,"column_from":64,"column_to":88},{"severity":"info","line_from":17,"line_to":17,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Stmt\\Finally_::__construct cannot be mixed, expecting array<array-key, PhpParser\\Node\\Stmt>","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t\t\tNodeTransformer::transform($node->getFinallyClause()->getBody(), $project, $file, $scope)","selected_text":"NodeTransformer::transform($node->getFinallyClause()->getBody(), $project, $file, $scope)","from":533,"to":622,"snippet_from":529,"snippet_to":622,"column_from":5,"column_to":94},{"severity":"error","line_from":17,"line_to":17,"type":"PossiblyNullReference","message":"Cannot call method getBody on possibly null value","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t\t\tNodeTransformer::transform($node->getFinallyClause()->getBody(), $project, $file, $scope)","selected_text":"getBody","from":587,"to":594,"snippet_from":529,"snippet_to":622,"column_from":59,"column_to":66},{"severity":"info","line_from":22,"line_to":22,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\Stmt\\TryCatch::__construct cannot be mixed, expecting array<array-key, PhpParser\\Node\\Stmt>","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t\t$stmts,","selected_text":"$stmts","from":686,"to":692,"snippet_from":683,"snippet_to":693,"column_from":4,"column_to":10},{"severity":"info","line_from":23,"line_to":23,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Stmt\\TryCatch::__construct expects array<array-key, PhpParser\\Node\\Stmt\\Catch_>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t\t$catches,","selected_text":"$catches","from":697,"to":705,"snippet_from":694,"snippet_to":706,"column_from":4,"column_to":12},{"severity":"error","line_from":31,"line_to":42,"type":"TypeCoercion","message":"First parameter of closure passed to function array_map expects Facebook\\HHAST\\CatchClause, parent type Facebook\\HHAST\\EditableNode provided","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t\tfunction(HHAST\\CatchClause $node) use ($project, $file, $scope) {\n\t\t\t\t$class_type = TypeTransformer::transform($node->getType(), $project, $file, $scope);\n\t\t\t\t$psalm_type = array_values(\\Psalm\\Type::parseString($class_type)->getTypes())[0];\n\t\t\t\t$class = TypeTransformer::getPhpParserTypeFromAtomicPsalm($psalm_type, $project, $file, $scope);\n\t\t\t\t$variable = ExpressionTransformer::transformVariableName($node->getVariable(), $project, $file, $scope);\n\n\t\t\t\treturn new PhpParser\\Node\\Stmt\\Catch_(\n\t\t\t\t\t[$class],\n\t\t\t\t\t$variable,\n\t\t\t\t\tNodeTransformer::transform($node->getBody(), $project, $file, $scope)\n\t\t\t\t);\n\t\t\t},","selected_text":"function(HHAST\\CatchClause $node) use ($project, $file, $scope) {\n\t\t\t\t$class_type = TypeTransformer::transform($node->getType(), $project, $file, $scope);\n\t\t\t\t$psalm_type = array_values(\\Psalm\\Type::parseString($class_type)->getTypes())[0];\n\t\t\t\t$class = TypeTransformer::getPhpParserTypeFromAtomicPsalm($psalm_type, $project, $file, $scope);\n\t\t\t\t$variable = ExpressionTransformer::transformVariableName($node->getVariable(), $project, $file, $scope);\n\n\t\t\t\treturn new PhpParser\\Node\\Stmt\\Catch_(\n\t\t\t\t\t[$class],\n\t\t\t\t\t$variable,\n\t\t\t\t\tNodeTransformer::transform($node->getBody(), $project, $file, $scope)\n\t\t\t\t);\n\t\t\t}","from":878,"to":1490,"snippet_from":875,"snippet_to":1491,"column_from":4,"column_to":5},{"severity":"error","line_from":31,"line_to":31,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting PhpParser\\Node\\Stmt\\Catch_","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t\tfunction(HHAST\\CatchClause $node) use ($project, $file, $scope) {","selected_text":"function(HHAST\\CatchClause $node) use ($project, $file, $scope) {","from":878,"to":943,"snippet_from":875,"snippet_to":943,"column_from":4,"column_to":69},{"severity":"info","line_from":34,"line_to":34,"type":"MixedAssignment","message":"Cannot assign $class to a mixed type","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t\t\t$class = TypeTransformer::getPhpParserTypeFromAtomicPsalm($psalm_type, $project, $file, $scope);","selected_text":"$class","from":1123,"to":1129,"snippet_from":1119,"snippet_to":1219,"column_from":5,"column_to":11},{"severity":"info","line_from":38,"line_to":38,"type":"MixedTypeCoercion","message":"Argument 1 of PhpParser\\Node\\Stmt\\Catch_::__construct expects array<array-key, PhpParser\\Node\\Name>, parent type array{0:mixed} provided","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t\t\t\t[$class],","selected_text":"[$class]","from":1378,"to":1386,"snippet_from":1373,"snippet_to":1387,"column_from":6,"column_to":14},{"severity":"error","line_from":39,"line_to":39,"type":"TypeCoercion","message":"Argument 2 of PhpParser\\Node\\Stmt\\Catch_::__construct expects PhpParser\\Node\\Expr\\Variable, parent type PhpParser\\Node provided","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t\t\t\t$variable,","selected_text":"$variable","from":1393,"to":1402,"snippet_from":1388,"snippet_to":1403,"column_from":6,"column_to":15},{"severity":"info","line_from":40,"line_to":40,"type":"MixedArgument","message":"Argument 3 of PhpParser\\Node\\Stmt\\Catch_::__construct cannot be mixed, expecting array<array-key, PhpParser\\Node\\Stmt>","file_name":"src\/HackToPhp\/Transform\/TryStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TryStatementTransformer.php","snippet":"\t\t\t\t\tNodeTransformer::transform($node->getBody(), $project, $file, $scope)","selected_text":"NodeTransformer::transform($node->getBody(), $project, $file, $scope)","from":1409,"to":1478,"snippet_from":1404,"snippet_to":1478,"column_from":6,"column_to":75},{"severity":"error","line_from":11,"line_to":11,"type":"MissingReturnType","message":"Method HackToPhp\\Transform\\TypeCollector::collect does not have a return type, expecting void","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\tpublic static function collect(HHAST\\EditableNode $node, Project $project, HackFile $file, Scope $scope)","selected_text":"collect","from":132,"to":139,"snippet_from":108,"snippet_to":213,"column_from":25,"column_to":32},{"severity":"info","line_from":41,"line_to":41,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\TypeCollector::collect cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t\t\tself::collect($declaration->getBody()->getDeclarations(), $project, $file, $scope);","selected_text":"$declaration->getBody()->getDeclarations()","from":1031,"to":1073,"snippet_from":1011,"snippet_to":1100,"column_from":21,"column_to":63},{"severity":"error","line_from":41,"line_to":41,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getdeclarations does not exist","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t\t\tself::collect($declaration->getBody()->getDeclarations(), $project, $file, $scope);","selected_text":"getDeclarations","from":1056,"to":1071,"snippet_from":1011,"snippet_to":1100,"column_from":46,"column_to":61},{"severity":"error","line_from":68,"line_to":68,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting void","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t\tfunction(HHAST\\NamespaceUseClause $clause) use ($file) {","selected_text":"function(HHAST\\NamespaceUseClause $clause) use ($file) {","from":1676,"to":1732,"snippet_from":1671,"snippet_to":1732,"column_from":6,"column_to":62},{"severity":"error","line_from":76,"line_to":76,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting mixed","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"function($t) { return $t->getText(); }","from":1960,"to":1998,"snippet_from":1948,"snippet_to":1999,"column_from":13,"column_to":51},{"severity":"error","line_from":76,"line_to":76,"type":"MissingClosureParamType","message":"Parameter $t has no provided type","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"$t","from":1969,"to":1971,"snippet_from":1948,"snippet_to":1999,"column_from":22,"column_to":24},{"severity":"info","line_from":76,"line_to":76,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"getText","from":1986,"to":1993,"snippet_from":1948,"snippet_to":1999,"column_from":39,"column_to":46},{"severity":"error","line_from":100,"line_to":100,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting void","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t\tfunction(HHAST\\NamespaceUseClause $clause) use ($file, $prefix) {","selected_text":"function(HHAST\\NamespaceUseClause $clause) use ($file, $prefix) {","from":2612,"to":2677,"snippet_from":2607,"snippet_to":2677,"column_from":6,"column_to":71},{"severity":"error","line_from":108,"line_to":108,"type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting mixed","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"function($t) { return $t->getText(); }","from":2905,"to":2943,"snippet_from":2893,"snippet_to":2944,"column_from":13,"column_to":51},{"severity":"error","line_from":108,"line_to":108,"type":"MissingClosureParamType","message":"Parameter $t has no provided type","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"$t","from":2914,"to":2916,"snippet_from":2893,"snippet_to":2944,"column_from":22,"column_to":24},{"severity":"info","line_from":108,"line_to":108,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t\t\t \t\tfunction($t) { return $t->getText(); },","selected_text":"getText","from":2931,"to":2938,"snippet_from":2893,"snippet_to":2944,"column_from":39,"column_to":46},{"severity":"error","line_from":129,"line_to":129,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t$enumerators = $node->getEnumerators()->getChildren();","selected_text":"getChildren","from":3516,"to":3527,"snippet_from":3473,"snippet_to":3530,"column_from":44,"column_to":55},{"severity":"info","line_from":134,"line_to":134,"type":"MixedOperand","message":"Right operand cannot be mixed","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t$enum_union[] = $name . '::' . $enumerator->getName()->getText();","selected_text":"$enumerator->getName()->getText()","from":3632,"to":3665,"snippet_from":3597,"snippet_to":3666,"column_from":36,"column_to":69},{"severity":"error","line_from":134,"line_to":134,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getname does not exist","file_name":"src\/HackToPhp\/Transform\/TypeCollector.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeCollector.php","snippet":"\t\t\t\t$enum_union[] = $name . '::' . $enumerator->getName()->getText();","selected_text":"getName","from":3645,"to":3652,"snippet_from":3597,"snippet_to":3666,"column_from":49,"column_to":56},{"severity":"error","line_from":14,"line_to":14,"type":"TooManyArguments","message":"Too many arguments for method HackToPhp\\Transform\\TypeTransformer::transformShape - expecting 4 but saw 5","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\treturn self::transformShape($node, $project, $file, $scope, $template_map);","selected_text":"self::transformShape($node, $project, $file, $scope, $template_map)","from":317,"to":384,"snippet_from":307,"snippet_to":385,"column_from":11,"column_to":78},{"severity":"error","line_from":30,"line_to":30,"type":"TooManyArguments","message":"Too many arguments for method HackToPhp\\Transform\\TypeTransformer::transformTuple - expecting 4 but saw 5","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\treturn self::transformTuple($node, $project, $file, $scope, $template_map);","selected_text":"self::transformTuple($node, $project, $file, $scope, $template_map)","from":862,"to":929,"snippet_from":852,"snippet_to":930,"column_from":11,"column_to":78},{"severity":"info","line_from":39,"line_to":39,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\TypeTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t\t$dictionary_types[] = self::transform($member->getItem(), $project, $file, $scope, $template_map);","selected_text":"$member->getItem()","from":1148,"to":1166,"snippet_from":1106,"snippet_to":1208,"column_from":43,"column_to":61},{"severity":"error","line_from":39,"line_to":39,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t\t$dictionary_types[] = self::transform($member->getItem(), $project, $file, $scope, $template_map);","selected_text":"getItem","from":1157,"to":1164,"snippet_from":1106,"snippet_to":1208,"column_from":52,"column_to":59},{"severity":"error","line_from":50,"line_to":50,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\TypeTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$type = self::transform($node->getType(), $project, $file, $scope, $template_map);","selected_text":"$node->getType()","from":1423,"to":1439,"snippet_from":1396,"snippet_to":1481,"column_from":28,"column_to":44},{"severity":"error","line_from":85,"line_to":85,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t\t$children = $node->getParameterList()->getChildren();","selected_text":"getChildren","from":2296,"to":2307,"snippet_from":2253,"snippet_to":2310,"column_from":44,"column_to":55},{"severity":"info","line_from":88,"line_to":88,"type":"MixedAssignment","message":"Cannot assign $child to a mixed type","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t\t\t$child = $child->getItem();","selected_text":"$child","from":2353,"to":2359,"snippet_from":2348,"snippet_to":2380,"column_from":6,"column_to":12},{"severity":"error","line_from":88,"line_to":88,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t\t\t$child = $child->getItem();","selected_text":"getItem","from":2370,"to":2377,"snippet_from":2348,"snippet_to":2380,"column_from":23,"column_to":30},{"severity":"error","line_from":93,"line_to":93,"type":"PossiblyNullArgument","message":"Argument 1 of HackToPhp\\Transform\\TypeTransformer::transform cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t\t\t\t$params[] = self::transform($child->getType(), $project, $file, $scope, $template_map) . '...';","selected_text":"$child->getType()","from":2636,"to":2653,"snippet_from":2602,"snippet_to":2703,"column_from":35,"column_to":52},{"severity":"info","line_from":117,"line_to":117,"type":"MixedAssignment","message":"Cannot assign $child to a mixed type","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t\t$child = $child->getItem();","selected_text":"$child","from":3213,"to":3219,"snippet_from":3209,"snippet_to":3240,"column_from":5,"column_to":11},{"severity":"error","line_from":117,"line_to":117,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t\t$child = $child->getItem();","selected_text":"getItem","from":3230,"to":3237,"snippet_from":3209,"snippet_to":3240,"column_from":22,"column_to":29},{"severity":"info","line_from":128,"line_to":128,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\TypeTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t\t$string_types[] = self::transform($child, $project, $file, $scope, $template_map);","selected_text":"$child","from":3485,"to":3491,"snippet_from":3447,"snippet_to":3533,"column_from":39,"column_to":45},{"severity":"error","line_from":160,"line_to":160,"type":"MissingReturnType","message":"Method HackToPhp\\Transform\\TypeTransformer::getPhpParserTypeFromPsalm does not have a return type","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\tpublic static function getPhpParserTypeFromPsalm(Psalm\\Type\\Union $psalm_type, Project $project, HackFile $file, Scope $scope)","selected_text":"getPhpParserTypeFromPsalm","from":4174,"to":4199,"snippet_from":4150,"snippet_to":4277,"column_from":25,"column_to":50},{"severity":"info","line_from":173,"line_to":173,"type":"MixedAssignment","message":"Cannot assign $inner_type to a mixed type","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$inner_type = self::getPhpParserTypeFromAtomicPsalm($atomic_type, $project, $file, $scope);","selected_text":"$inner_type","from":4589,"to":4600,"snippet_from":4586,"snippet_to":4680,"column_from":4,"column_to":15},{"severity":"info","line_from":180,"line_to":180,"type":"MixedArgument","message":"Argument 1 of PhpParser\\Node\\NullableType::__construct cannot be mixed, expecting string|PhpParser\\Node\\Identifier|PhpParser\\Node\\Name","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t\t$inner_type","selected_text":"$inner_type","from":4783,"to":4794,"snippet_from":4779,"snippet_to":4794,"column_from":5,"column_to":16},{"severity":"error","line_from":185,"line_to":185,"type":"MissingReturnType","message":"Method HackToPhp\\Transform\\TypeTransformer::getPhpParserTypeFromAtomicPsalm does not have a return type, expecting null|string|PhpParser\\Node\\Name","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\tpublic static function getPhpParserTypeFromAtomicPsalm(Psalm\\Type\\Atomic $psalm_type, Project $project, HackFile $file, Scope $scope)","selected_text":"getPhpParserTypeFromAtomicPsalm","from":4833,"to":4864,"snippet_from":4809,"snippet_to":4943,"column_from":25,"column_to":56},{"severity":"error","line_from":216,"line_to":216,"type":"PossiblyNullArgument","message":"Argument 1 of PhpParser\\Node\\Name::__construct cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\treturn new PhpParser\\Node\\Name($psalm_type->toPhpString($file->namespace, [], null, 7, 2));","selected_text":"$psalm_type->toPhpString($file->namespace, [], null, 7, 2)","from":5713,"to":5771,"snippet_from":5679,"snippet_to":5773,"column_from":35,"column_to":93},{"severity":"error","line_from":222,"line_to":222,"type":"PossiblyNullReference","message":"Cannot call method getChildren on possibly null value","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t$children = $node->hasFields () ? $node->getFields()->getChildren() : [];","selected_text":"getChildren","from":5969,"to":5980,"snippet_from":5913,"snippet_to":5988,"column_from":57,"column_to":68},{"severity":"info","line_from":227,"line_to":227,"type":"MixedAssignment","message":"Cannot assign $field_item to a mixed type","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$field_item = $child->getItem();","selected_text":"$field_item","from":6049,"to":6060,"snippet_from":6046,"snippet_to":6081,"column_from":4,"column_to":15},{"severity":"error","line_from":227,"line_to":227,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$field_item = $child->getItem();","selected_text":"getItem","from":6071,"to":6078,"snippet_from":6046,"snippet_to":6081,"column_from":26,"column_to":33},{"severity":"info","line_from":229,"line_to":229,"type":"MixedAssignment","message":"Cannot assign $name to a mixed type","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$name = $field_item->getName();","selected_text":"$name","from":6086,"to":6091,"snippet_from":6083,"snippet_to":6117,"column_from":4,"column_to":9},{"severity":"info","line_from":229,"line_to":229,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$name = $field_item->getName();","selected_text":"getName","from":6107,"to":6114,"snippet_from":6083,"snippet_to":6117,"column_from":25,"column_to":32},{"severity":"info","line_from":248,"line_to":248,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\TypeTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$type = self::transform($field_item->getType(), $project, $file, $scope);","selected_text":"$field_item->getType()","from":6535,"to":6557,"snippet_from":6508,"snippet_to":6584,"column_from":28,"column_to":50},{"severity":"info","line_from":248,"line_to":248,"type":"MixedMethodCall","message":"Cannot determine the type of the object on the left hand side of this expression","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$type = self::transform($field_item->getType(), $project, $file, $scope);","selected_text":"getType","from":6548,"to":6555,"snippet_from":6508,"snippet_to":6584,"column_from":41,"column_to":48},{"severity":"info","line_from":268,"line_to":268,"type":"MixedAssignment","message":"Cannot assign $field_item to a mixed type","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$field_item = $child->getItem();","selected_text":"$field_item","from":7003,"to":7014,"snippet_from":7000,"snippet_to":7035,"column_from":4,"column_to":15},{"severity":"error","line_from":268,"line_to":268,"type":"UndefinedMethod","message":"Method Facebook\\HHAST\\EditableNode::getitem does not exist","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$field_item = $child->getItem();","selected_text":"getItem","from":7025,"to":7032,"snippet_from":7000,"snippet_to":7035,"column_from":26,"column_to":33},{"severity":"info","line_from":270,"line_to":270,"type":"MixedArgument","message":"Argument 1 of HackToPhp\\Transform\\TypeTransformer::transform cannot be mixed, expecting Facebook\\HHAST\\EditableNode","file_name":"src\/HackToPhp\/Transform\/TypeTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/TypeTransformer.php","snippet":"\t\t\t$type = self::transform($field_item, $project, $file, $scope);","selected_text":"$field_item","from":7064,"to":7075,"snippet_from":7037,"snippet_to":7102,"column_from":28,"column_to":39},{"severity":"info","line_from":14,"line_to":14,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/Transform\/WhileStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/WhileStatementTransformer.php","snippet":"\t\t$stmts = NodeTransformer::transform($node->getBody(), $project, $file, $scope);","selected_text":"$stmts","from":340,"to":346,"snippet_from":338,"snippet_to":419,"column_from":3,"column_to":9},{"severity":"info","line_from":22,"line_to":22,"type":"MixedTypeCoercion","message":"Argument 2 of PhpParser\\Node\\Stmt\\While_::__construct expects array<array-key, PhpParser\\Node\\Stmt>, parent type array<array-key, mixed> provided","file_name":"src\/HackToPhp\/Transform\/WhileStatementTransformer.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/Transform\/WhileStatementTransformer.php","snippet":"\t\t\t$stmts","selected_text":"$stmts","from":535,"to":541,"snippet_from":532,"snippet_to":541,"column_from":4,"column_to":10},{"severity":"info","line_from":68,"line_to":68,"type":"MixedArgument","message":"Argument 1 of realpath cannot be mixed, expecting string","file_name":"src\/HackToPhp\/hack-to-php.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/hack-to-php.php","snippet":"\t\t$output_path = realpath($p['dirname']) . DIRECTORY_SEPARATOR . $p['basename'];","selected_text":"$p['dirname']","from":1572,"to":1585,"snippet_from":1546,"snippet_to":1626,"column_from":27,"column_to":40},{"severity":"info","line_from":68,"line_to":68,"type":"MixedOperand","message":"Right operand cannot be mixed","file_name":"src\/HackToPhp\/hack-to-php.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/hack-to-php.php","snippet":"\t\t$output_path = realpath($p['dirname']) . DIRECTORY_SEPARATOR . $p['basename'];","selected_text":"$p['basename']","from":1611,"to":1625,"snippet_from":1546,"snippet_to":1626,"column_from":66,"column_to":80},{"severity":"error","line_from":111,"line_to":111,"type":"PossiblyNullArgument","message":"Argument 1 of preg_quote cannot be null, possibly null value provided","file_name":"src\/HackToPhp\/hack-to-php.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/hack-to-php.php","snippet":"\t\t\t$stubbed_path = preg_replace('\/^' . preg_quote($common_path, '\/\/') . '\/', '', $dir_input_file_path);","selected_text":"$common_path","from":2749,"to":2761,"snippet_from":2699,"snippet_to":2802,"column_from":51,"column_to":63},{"severity":"info","line_from":147,"line_to":147,"type":"MixedAssignment","message":"Cannot assign $stmts to a mixed type","file_name":"src\/HackToPhp\/hack-to-php.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/hack-to-php.php","snippet":"\t$stmts = HackToPhp\\Transform\\NodeTransformer::transform(","selected_text":"$stmts","from":3793,"to":3799,"snippet_from":3792,"snippet_to":3849,"column_from":2,"column_to":8},{"severity":"info","line_from":155,"line_to":155,"type":"MixedArgument","message":"Argument 1 of PhpParser\\PrettyPrinterAbstract::prettyPrint cannot be mixed, expecting array<array-key, PhpParser\\Node>","file_name":"src\/HackToPhp\/hack-to-php.php","file_path":"\/Users\/matthewbrown\/Desktop\/vimeo\/git\/hhast-to-php\/src\/HackToPhp\/hack-to-php.php","snippet":"\t$file_output = '<?php' . PHP_EOL . $prettyPrinter->prettyPrint($stmts) . PHP_EOL;","selected_text":"$stmts","from":4068,"to":4074,"snippet_from":4004,"snippet_to":4086,"column_from":65,"column_to":71}]