4 "script_declarations":{
8 "kind":"markup_section",
24 "kind":"markup_suffix",
25 "markup_suffix_less_than_question":{
39 "markup_suffix_name":{
49 "trailing":[{"kind":"end_of_line","text":"\n","offset":4,"width":1}],
56 "kind":"classish_declaration",
57 "classish_attribute":{"kind":"missing"},
58 "classish_modifiers":{"kind":"missing"},
59 "classish_xhp":{"kind":"missing"},
69 "leading":[{"kind":"end_of_line","text":"\n","offset":5,"width":1}],
70 "trailing":[{"kind":"whitespace","text":" ","offset":11,"width":1}],
84 "trailing":[{"kind":"whitespace","text":" ","offset":13,"width":1}],
88 "classish_type_parameters":{"kind":"missing"},
89 "classish_extends_keyword":{"kind":"missing"},
90 "classish_extends_list":{"kind":"missing"},
91 "classish_implements_keyword":{"kind":"missing"},
92 "classish_implements_list":{"kind":"missing"},
93 "classish_where_clause":{"kind":"missing"},
95 "kind":"classish_body",
96 "classish_body_left_brace":{
106 "trailing":[{"kind":"end_of_line","text":"\n","offset":15,"width":1}],
110 "classish_body_elements":{
114 "kind":"methodish_declaration",
115 "methodish_attribute":{"kind":"missing"},
116 "methodish_function_decl_header":{
117 "kind":"function_declaration_header",
118 "function_modifiers":{
130 "leading":[{"kind":"whitespace","text":" ","offset":16,"width":2}],
131 "trailing":[{"kind":"whitespace","text":" ","offset":24,"width":1}],
147 "trailing":[{"kind":"whitespace","text":" ","offset":33,"width":1}],
165 "function_type_parameter_list":{
166 "kind":"type_parameters",
167 "type_parameters_left_angle":{
181 "type_parameters_parameters":{
187 "kind":"type_parameter",
188 "type_attribute_spec":{"kind":"missing"},
189 "type_reified":{"kind":"missing"},
190 "type_variance":{"kind":"missing"},
205 "type_param_params":{"kind":"missing"},
206 "type_constraints":{"kind":"missing"}
208 "list_separator":{"kind":"missing"}
212 "type_parameters_right_angle":{
227 "function_left_paren":{
241 "function_parameter_list":{"kind":"missing"},
242 "function_right_paren":{
252 "trailing":[{"kind":"whitespace","text":" ","offset":40,"width":1}],
256 "function_capability":{"kind":"missing"},
257 "function_colon":{"kind":"missing"},
258 "function_type":{"kind":"missing"},
259 "function_where_clause":{"kind":"missing"}
261 "methodish_function_body":{
262 "kind":"compound_statement",
263 "compound_left_brace":{
277 "compound_statements":{"kind":"missing"},
278 "compound_right_brace":{
288 "trailing":[{"kind":"end_of_line","text":"\n","offset":43,"width":1}],
293 "methodish_semicolon":{"kind":"missing"}
297 "classish_body_right_brace":{
307 "trailing":[{"kind":"end_of_line","text":"\n","offset":45,"width":1}],
314 "kind":"classish_declaration",
315 "classish_attribute":{"kind":"missing"},
316 "classish_modifiers":{"kind":"missing"},
317 "classish_xhp":{"kind":"missing"},
328 "trailing":[{"kind":"whitespace","text":" ","offset":51,"width":1}],
342 "trailing":[{"kind":"whitespace","text":" ","offset":53,"width":1}],
346 "classish_type_parameters":{"kind":"missing"},
347 "classish_extends_keyword":{"kind":"missing"},
348 "classish_extends_list":{"kind":"missing"},
349 "classish_implements_keyword":{"kind":"missing"},
350 "classish_implements_list":{"kind":"missing"},
351 "classish_where_clause":{"kind":"missing"},
353 "kind":"classish_body",
354 "classish_body_left_brace":{
364 "trailing":[{"kind":"end_of_line","text":"\n","offset":55,"width":1}],
368 "classish_body_elements":{
372 "kind":"methodish_declaration",
373 "methodish_attribute":{"kind":"missing"},
374 "methodish_function_decl_header":{
375 "kind":"function_declaration_header",
376 "function_modifiers":{
388 "leading":[{"kind":"whitespace","text":" ","offset":56,"width":2}],
389 "trailing":[{"kind":"whitespace","text":" ","offset":64,"width":1}],
403 "trailing":[{"kind":"whitespace","text":" ","offset":71,"width":1}],
419 "trailing":[{"kind":"whitespace","text":" ","offset":80,"width":1}],
437 "function_type_parameter_list":{
438 "kind":"type_parameters",
439 "type_parameters_left_angle":{
453 "type_parameters_parameters":{
459 "kind":"type_parameter",
460 "type_attribute_spec":{"kind":"missing"},
461 "type_reified":{"kind":"missing"},
462 "type_variance":{"kind":"missing"},
477 "type_param_params":{"kind":"missing"},
478 "type_constraints":{"kind":"missing"}
480 "list_separator":{"kind":"missing"}
484 "type_parameters_right_angle":{
499 "function_left_paren":{
513 "function_parameter_list":{"kind":"missing"},
514 "function_right_paren":{
524 "trailing":[{"kind":"whitespace","text":" ","offset":87,"width":1}],
528 "function_capability":{"kind":"missing"},
529 "function_colon":{"kind":"missing"},
530 "function_type":{"kind":"missing"},
531 "function_where_clause":{"kind":"missing"}
533 "methodish_function_body":{
534 "kind":"compound_statement",
535 "compound_left_brace":{
549 "compound_statements":{"kind":"missing"},
550 "compound_right_brace":{
560 "trailing":[{"kind":"end_of_line","text":"\n","offset":90,"width":1}],
565 "methodish_semicolon":{"kind":"missing"}
569 "classish_body_right_brace":{
579 "trailing":[{"kind":"end_of_line","text":"\n","offset":92,"width":1}],
586 "kind":"expression_statement",
587 "expression_statement_expression":{
588 "kind":"binary_expression",
589 "binary_left_operand":{
591 "variable_expression":{
600 "leading":[{"kind":"end_of_line","text":"\n","offset":93,"width":1}],
601 "trailing":[{"kind":"whitespace","text":" ","offset":96,"width":1}],
616 "trailing":[{"kind":"whitespace","text":" ","offset":98,"width":1}],
620 "binary_right_operand":{
622 "literal_expression":{
625 "kind":"single_quoted_string_literal",
638 "expression_statement_semicolon":{
648 "trailing":[{"kind":"end_of_line","text":"\n","offset":103,"width":1}],
654 "kind":"expression_statement",
655 "expression_statement_expression":{
656 "kind":"binary_expression",
657 "binary_left_operand":{
659 "variable_expression":{
669 "trailing":[{"kind":"whitespace","text":" ","offset":106,"width":1}],
684 "trailing":[{"kind":"whitespace","text":" ","offset":108,"width":1}],
688 "binary_right_operand":{
689 "kind":"object_creation_expression",
690 "object_creation_new_keyword":{
700 "trailing":[{"kind":"whitespace","text":" ","offset":112,"width":1}],
704 "object_creation_object":{
705 "kind":"constructor_call",
706 "constructor_call_type":{
707 "kind":"simple_type_specifier",
708 "simple_type_specifier":{
723 "constructor_call_left_paren":{
737 "constructor_call_argument_list":{"kind":"missing"},
738 "constructor_call_right_paren":{
755 "expression_statement_semicolon":{
765 "trailing":[{"kind":"end_of_line","text":"\n","offset":117,"width":1}],
771 "kind":"expression_statement",
772 "expression_statement_expression":{
773 "kind":"function_call_expression",
774 "function_call_receiver":{
775 "kind":"member_selection_expression",
778 "variable_expression":{
787 "leading":[{"kind":"end_of_line","text":"\n","offset":118,"width":1}],
822 "function_call_type_args":{
823 "kind":"type_arguments",
824 "type_arguments_left_angle":{
838 "type_arguments_types":{
844 "kind":"simple_type_specifier",
845 "simple_type_specifier":{
860 "list_separator":{"kind":"missing"}
864 "type_arguments_right_angle":{
879 "function_call_left_paren":{
893 "function_call_argument_list":{"kind":"missing"},
894 "function_call_right_paren":{
909 "expression_statement_semicolon":{
920 {"kind":"whitespace","text":" ","offset":132,"width":2},
921 {"kind":"single_line_comment","text":"// ok","offset":134,"width":5},
922 {"kind":"end_of_line","text":"\n","offset":139,"width":1}
929 "kind":"expression_statement",
930 "expression_statement_expression":{
931 "kind":"function_call_expression",
932 "function_call_receiver":{
933 "kind":"member_selection_expression",
936 "variable_expression":{
980 "function_call_type_args":{
981 "kind":"type_arguments",
982 "type_arguments_left_angle":{
996 "type_arguments_types":{
1002 "kind":"simple_type_specifier",
1003 "simple_type_specifier":{
1018 "list_separator":{"kind":"missing"}
1022 "type_arguments_right_angle":{
1037 "function_call_left_paren":{
1051 "function_call_argument_list":{"kind":"missing"},
1052 "function_call_right_paren":{
1067 "expression_statement_semicolon":{
1075 "trailing_width":16,
1078 {"kind":"whitespace","text":" ","offset":154,"width":1},
1079 {"kind":"single_line_comment","text":"// parse error","offset":155,"width":14},
1080 {"kind":"end_of_line","text":"\n","offset":169,"width":1}
1087 "kind":"expression_statement",
1088 "expression_statement_expression":{
1089 "kind":"function_call_expression",
1090 "function_call_receiver":{
1091 "kind":"safe_member_selection_expression",
1092 "safe_member_object":{
1094 "variable_expression":{
1103 "leading":[{"kind":"end_of_line","text":"\n","offset":170,"width":1}],
1109 "safe_member_operator":{
1123 "safe_member_name":{
1138 "function_call_type_args":{
1139 "kind":"type_arguments",
1140 "type_arguments_left_angle":{
1154 "type_arguments_types":{
1160 "kind":"simple_type_specifier",
1161 "simple_type_specifier":{
1176 "list_separator":{"kind":"missing"}
1180 "type_arguments_right_angle":{
1195 "function_call_left_paren":{
1209 "function_call_argument_list":{"kind":"missing"},
1210 "function_call_right_paren":{
1225 "expression_statement_semicolon":{
1236 {"kind":"whitespace","text":" ","offset":185,"width":1},
1237 {"kind":"single_line_comment","text":"// ok","offset":186,"width":5},
1238 {"kind":"end_of_line","text":"\n","offset":191,"width":1}
1245 "kind":"expression_statement",
1246 "expression_statement_expression":{
1247 "kind":"function_call_expression",
1248 "function_call_receiver":{
1249 "kind":"safe_member_selection_expression",
1250 "safe_member_object":{
1252 "variable_expression":{
1267 "safe_member_operator":{
1281 "safe_member_name":{
1296 "function_call_type_args":{
1297 "kind":"type_arguments",
1298 "type_arguments_left_angle":{
1312 "type_arguments_types":{
1318 "kind":"simple_type_specifier",
1319 "simple_type_specifier":{
1334 "list_separator":{"kind":"missing"}
1338 "type_arguments_right_angle":{
1353 "function_call_left_paren":{
1367 "function_call_argument_list":{"kind":"missing"},
1368 "function_call_right_paren":{
1383 "expression_statement_semicolon":{
1391 "trailing_width":17,
1394 {"kind":"whitespace","text":" ","offset":207,"width":1},
1395 {"kind":"single_line_comment","text":"// parse errors","offset":208,"width":15},
1396 {"kind":"end_of_line","text":"\n","offset":223,"width":1}
1403 "kind":"expression_statement",
1404 "expression_statement_expression":{
1405 "kind":"function_call_expression",
1406 "function_call_receiver":{
1407 "kind":"scope_resolution_expression",
1408 "scope_resolution_qualifier":{
1417 "leading":[{"kind":"end_of_line","text":"\n","offset":224,"width":1}],
1422 "scope_resolution_operator":{
1436 "scope_resolution_name":{
1451 "function_call_type_args":{
1452 "kind":"type_arguments",
1453 "type_arguments_left_angle":{
1467 "type_arguments_types":{
1473 "kind":"simple_type_specifier",
1474 "simple_type_specifier":{
1489 "list_separator":{"kind":"missing"}
1493 "type_arguments_right_angle":{
1508 "function_call_left_paren":{
1522 "function_call_argument_list":{"kind":"missing"},
1523 "function_call_right_paren":{
1538 "expression_statement_semicolon":{
1549 {"kind":"whitespace","text":" ","offset":237,"width":3},
1550 {"kind":"single_line_comment","text":"// ok","offset":240,"width":5},
1551 {"kind":"end_of_line","text":"\n","offset":245,"width":1}
1558 "kind":"expression_statement",
1559 "expression_statement_expression":{
1560 "kind":"function_call_expression",
1561 "function_call_receiver":{
1562 "kind":"scope_resolution_expression",
1563 "scope_resolution_qualifier":{
1577 "scope_resolution_operator":{
1591 "scope_resolution_name":{
1606 "function_call_type_args":{
1607 "kind":"type_arguments",
1608 "type_arguments_left_angle":{
1622 "type_arguments_types":{
1628 "kind":"simple_type_specifier",
1629 "simple_type_specifier":{
1644 "list_separator":{"kind":"missing"}
1648 "type_arguments_right_angle":{
1663 "function_call_left_paren":{
1677 "function_call_argument_list":{"kind":"missing"},
1678 "function_call_right_paren":{
1693 "expression_statement_semicolon":{
1701 "trailing_width":17,
1704 {"kind":"whitespace","text":" ","offset":259,"width":2},
1705 {"kind":"single_line_comment","text":"// parse error","offset":261,"width":14},
1706 {"kind":"end_of_line","text":"\n","offset":275,"width":1}
1713 "kind":"end_of_file",
1714 "end_of_file_token":{
1717 "kind":"end_of_file",
1732 "program_text":"<?hh\n\nclass C {\n public function f<T>() {}\n}\nclass D {\n public static function f<T>() {}\n}\n\n$x = 'f';\n$c = new C();\n\n$c->f<int>(); // ok\n$c->$x<int>(); // parse error\n\n$c?->f<int>(); // ok\n$c?->$x<int>(); // parse errors\n\nD::f<int>(); // ok\nD::$x<int>(); // parse error\n",
1733 "version":"2020-12-09-0001"