4 "script_declarations":{
8 "kind":"markup_section",
24 "kind":"markup_suffix",
25 "markup_suffix_less_than_question":{
39 "markup_suffix_name":{
50 {"kind":"whitespace","text":" ","offset":4,"width":1},
51 {"kind":"single_line_comment","text":"// strict","offset":5,"width":9},
52 {"kind":"end_of_line","text":"\n","offset":14,"width":1}
60 "kind":"classish_declaration",
61 "classish_attribute":{"kind":"missing"},
62 "classish_modifiers":{"kind":"missing"},
63 "classish_xhp":{"kind":"missing"},
75 "kind":"delimited_comment",
76 "text":"/**\n * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the \"hack\" directory of this source tree.\n *\n *\n */",
80 {"kind":"end_of_line","text":"\n","offset":221,"width":1},
81 {"kind":"end_of_line","text":"\n","offset":222,"width":1},
83 "kind":"delimited_comment",
84 "text":"/**\n * Hack treats method dispatch in a different way from PHP.\n */",
88 {"kind":"end_of_line","text":"\n","offset":290,"width":1},
89 {"kind":"end_of_line","text":"\n","offset":291,"width":1}
91 "trailing":[{"kind":"whitespace","text":" ","offset":297,"width":1}],
105 "trailing":[{"kind":"whitespace","text":" ","offset":299,"width":1}],
109 "classish_type_parameters":{"kind":"missing"},
110 "classish_extends_keyword":{"kind":"missing"},
111 "classish_extends_list":{"kind":"missing"},
112 "classish_implements_keyword":{"kind":"missing"},
113 "classish_implements_list":{"kind":"missing"},
114 "classish_where_clause":{"kind":"missing"},
116 "kind":"classish_body",
117 "classish_body_left_brace":{
127 "trailing":[{"kind":"end_of_line","text":"\n","offset":301,"width":1}],
131 "classish_body_elements":{
135 "kind":"methodish_declaration",
136 "methodish_attribute":{"kind":"missing"},
137 "methodish_function_decl_header":{
138 "kind":"function_declaration_header",
139 "function_modifiers":{
151 "leading":[{"kind":"whitespace","text":" ","offset":302,"width":2}],
152 "trailing":[{"kind":"whitespace","text":" ","offset":310,"width":1}],
168 "trailing":[{"kind":"whitespace","text":" ","offset":319,"width":1}],
186 "function_type_parameter_list":{"kind":"missing"},
187 "function_left_paren":{
201 "function_parameter_list":{"kind":"missing"},
202 "function_right_paren":{
216 "function_capability":{"kind":"missing"},
227 "trailing":[{"kind":"whitespace","text":" ","offset":325,"width":1}],
232 "kind":"simple_type_specifier",
233 "simple_type_specifier":{
243 "trailing":[{"kind":"whitespace","text":" ","offset":330,"width":1}],
248 "function_where_clause":{"kind":"missing"}
250 "methodish_function_body":{
251 "kind":"compound_statement",
252 "compound_left_brace":{
266 "compound_statements":{"kind":"missing"},
267 "compound_right_brace":{
277 "trailing":[{"kind":"end_of_line","text":"\n","offset":333,"width":1}],
282 "methodish_semicolon":{"kind":"missing"}
285 "kind":"methodish_declaration",
286 "methodish_attribute":{"kind":"missing"},
287 "methodish_function_decl_header":{
288 "kind":"function_declaration_header",
289 "function_modifiers":{
301 "leading":[{"kind":"whitespace","text":" ","offset":334,"width":2}],
302 "trailing":[{"kind":"whitespace","text":" ","offset":342,"width":1}],
316 "trailing":[{"kind":"whitespace","text":" ","offset":349,"width":1}],
332 "trailing":[{"kind":"whitespace","text":" ","offset":358,"width":1}],
350 "function_type_parameter_list":{"kind":"missing"},
351 "function_left_paren":{
365 "function_parameter_list":{"kind":"missing"},
366 "function_right_paren":{
380 "function_capability":{"kind":"missing"},
391 "trailing":[{"kind":"whitespace","text":" ","offset":364,"width":1}],
396 "kind":"simple_type_specifier",
397 "simple_type_specifier":{
407 "trailing":[{"kind":"whitespace","text":" ","offset":369,"width":1}],
412 "function_where_clause":{"kind":"missing"}
414 "methodish_function_body":{
415 "kind":"compound_statement",
416 "compound_left_brace":{
430 "compound_statements":{"kind":"missing"},
431 "compound_right_brace":{
441 "trailing":[{"kind":"end_of_line","text":"\n","offset":372,"width":1}],
446 "methodish_semicolon":{"kind":"missing"}
450 "classish_body_right_brace":{
460 "trailing":[{"kind":"end_of_line","text":"\n","offset":374,"width":1}],
467 "kind":"classish_declaration",
468 "classish_attribute":{"kind":"missing"},
469 "classish_modifiers":{"kind":"missing"},
470 "classish_xhp":{"kind":"missing"},
480 "leading":[{"kind":"end_of_line","text":"\n","offset":375,"width":1}],
481 "trailing":[{"kind":"whitespace","text":" ","offset":381,"width":1}],
495 "trailing":[{"kind":"whitespace","text":" ","offset":383,"width":1}],
499 "classish_type_parameters":{"kind":"missing"},
500 "classish_extends_keyword":{
510 "trailing":[{"kind":"whitespace","text":" ","offset":391,"width":1}],
514 "classish_extends_list":{
520 "kind":"simple_type_specifier",
521 "simple_type_specifier":{
531 "trailing":[{"kind":"whitespace","text":" ","offset":393,"width":1}],
536 "list_separator":{"kind":"missing"}
540 "classish_implements_keyword":{"kind":"missing"},
541 "classish_implements_list":{"kind":"missing"},
542 "classish_where_clause":{"kind":"missing"},
544 "kind":"classish_body",
545 "classish_body_left_brace":{
555 "trailing":[{"kind":"end_of_line","text":"\n","offset":395,"width":1}],
559 "classish_body_elements":{
563 "kind":"methodish_declaration",
564 "methodish_attribute":{"kind":"missing"},
565 "methodish_function_decl_header":{
566 "kind":"function_declaration_header",
567 "function_modifiers":{
579 "leading":[{"kind":"whitespace","text":" ","offset":396,"width":2}],
580 "trailing":[{"kind":"whitespace","text":" ","offset":404,"width":1}],
596 "trailing":[{"kind":"whitespace","text":" ","offset":413,"width":1}],
614 "function_type_parameter_list":{"kind":"missing"},
615 "function_left_paren":{
629 "function_parameter_list":{"kind":"missing"},
630 "function_right_paren":{
644 "function_capability":{"kind":"missing"},
655 "trailing":[{"kind":"whitespace","text":" ","offset":419,"width":1}],
660 "kind":"simple_type_specifier",
661 "simple_type_specifier":{
671 "trailing":[{"kind":"whitespace","text":" ","offset":424,"width":1}],
676 "function_where_clause":{"kind":"missing"}
678 "methodish_function_body":{
679 "kind":"compound_statement",
680 "compound_left_brace":{
694 "compound_statements":{"kind":"missing"},
695 "compound_right_brace":{
705 "trailing":[{"kind":"end_of_line","text":"\n","offset":427,"width":1}],
710 "methodish_semicolon":{"kind":"missing"}
713 "kind":"methodish_declaration",
714 "methodish_attribute":{"kind":"missing"},
715 "methodish_function_decl_header":{
716 "kind":"function_declaration_header",
717 "function_modifiers":{
729 "leading":[{"kind":"whitespace","text":" ","offset":428,"width":2}],
730 "trailing":[{"kind":"whitespace","text":" ","offset":436,"width":1}],
744 "trailing":[{"kind":"whitespace","text":" ","offset":443,"width":1}],
760 "trailing":[{"kind":"whitespace","text":" ","offset":452,"width":1}],
778 "function_type_parameter_list":{"kind":"missing"},
779 "function_left_paren":{
793 "function_parameter_list":{"kind":"missing"},
794 "function_right_paren":{
808 "function_capability":{"kind":"missing"},
819 "trailing":[{"kind":"whitespace","text":" ","offset":458,"width":1}],
824 "kind":"simple_type_specifier",
825 "simple_type_specifier":{
835 "trailing":[{"kind":"whitespace","text":" ","offset":463,"width":1}],
840 "function_where_clause":{"kind":"missing"}
842 "methodish_function_body":{
843 "kind":"compound_statement",
844 "compound_left_brace":{
858 "compound_statements":{"kind":"missing"},
859 "compound_right_brace":{
869 "trailing":[{"kind":"end_of_line","text":"\n","offset":466,"width":1}],
874 "methodish_semicolon":{"kind":"missing"}
877 "kind":"methodish_declaration",
878 "methodish_attribute":{"kind":"missing"},
879 "methodish_function_decl_header":{
880 "kind":"function_declaration_header",
881 "function_modifiers":{
893 "leading":[{"kind":"whitespace","text":" ","offset":467,"width":2}],
894 "trailing":[{"kind":"whitespace","text":" ","offset":475,"width":1}],
910 "trailing":[{"kind":"whitespace","text":" ","offset":484,"width":1}],
928 "function_type_parameter_list":{"kind":"missing"},
929 "function_left_paren":{
943 "function_parameter_list":{"kind":"missing"},
944 "function_right_paren":{
958 "function_capability":{"kind":"missing"},
969 "trailing":[{"kind":"whitespace","text":" ","offset":493,"width":1}],
974 "kind":"simple_type_specifier",
975 "simple_type_specifier":{
985 "trailing":[{"kind":"whitespace","text":" ","offset":498,"width":1}],
990 "function_where_clause":{"kind":"missing"}
992 "methodish_function_body":{
993 "kind":"compound_statement",
994 "compound_left_brace":{
1008 "compound_statements":{"kind":"missing"},
1009 "compound_right_brace":{
1019 "trailing":[{"kind":"end_of_line","text":"\n","offset":501,"width":1}],
1024 "methodish_semicolon":{"kind":"missing"}
1027 "kind":"methodish_declaration",
1028 "methodish_attribute":{"kind":"missing"},
1029 "methodish_function_decl_header":{
1030 "kind":"function_declaration_header",
1031 "function_modifiers":{
1043 "leading":[{"kind":"whitespace","text":" ","offset":502,"width":2}],
1044 "trailing":[{"kind":"whitespace","text":" ","offset":510,"width":1}],
1058 "trailing":[{"kind":"whitespace","text":" ","offset":517,"width":1}],
1064 "function_keyword":{
1074 "trailing":[{"kind":"whitespace","text":" ","offset":526,"width":1}],
1092 "function_type_parameter_list":{"kind":"missing"},
1093 "function_left_paren":{
1107 "function_parameter_list":{"kind":"missing"},
1108 "function_right_paren":{
1122 "function_capability":{"kind":"missing"},
1133 "trailing":[{"kind":"whitespace","text":" ","offset":535,"width":1}],
1138 "kind":"simple_type_specifier",
1139 "simple_type_specifier":{
1149 "trailing":[{"kind":"whitespace","text":" ","offset":540,"width":1}],
1154 "function_where_clause":{"kind":"missing"}
1156 "methodish_function_body":{
1157 "kind":"compound_statement",
1158 "compound_left_brace":{
1168 "trailing":[{"kind":"end_of_line","text":"\n","offset":542,"width":1}],
1172 "compound_statements":{
1176 "kind":"expression_statement",
1177 "expression_statement_expression":{
1178 "kind":"function_call_expression",
1179 "function_call_receiver":{
1180 "kind":"member_selection_expression",
1183 "variable_expression":{
1192 "leading":[{"kind":"whitespace","text":" ","offset":543,"width":4}],
1227 "function_call_type_args":{"kind":"missing"},
1228 "function_call_left_paren":{
1242 "function_call_argument_list":{"kind":"missing"},
1243 "function_call_right_paren":{
1258 "expression_statement_semicolon":{
1268 "trailing":[{"kind":"end_of_line","text":"\n","offset":559,"width":1}],
1275 "compound_right_brace":{
1284 "leading":[{"kind":"whitespace","text":" ","offset":560,"width":2}],
1285 "trailing":[{"kind":"end_of_line","text":"\n","offset":563,"width":1}],
1290 "methodish_semicolon":{"kind":"missing"}
1294 "classish_body_right_brace":{
1304 "trailing":[{"kind":"end_of_line","text":"\n","offset":565,"width":1}],
1311 "kind":"classish_declaration",
1312 "classish_attribute":{"kind":"missing"},
1313 "classish_modifiers":{"kind":"missing"},
1314 "classish_xhp":{"kind":"missing"},
1315 "classish_keyword":{
1324 "leading":[{"kind":"end_of_line","text":"\n","offset":566,"width":1}],
1325 "trailing":[{"kind":"whitespace","text":" ","offset":572,"width":1}],
1339 "trailing":[{"kind":"whitespace","text":" ","offset":574,"width":1}],
1343 "classish_type_parameters":{"kind":"missing"},
1344 "classish_extends_keyword":{"kind":"missing"},
1345 "classish_extends_list":{"kind":"missing"},
1346 "classish_implements_keyword":{"kind":"missing"},
1347 "classish_implements_list":{"kind":"missing"},
1348 "classish_where_clause":{"kind":"missing"},
1350 "kind":"classish_body",
1351 "classish_body_left_brace":{
1361 "trailing":[{"kind":"end_of_line","text":"\n","offset":576,"width":1}],
1365 "classish_body_elements":{
1369 "kind":"methodish_declaration",
1370 "methodish_attribute":{"kind":"missing"},
1371 "methodish_function_decl_header":{
1372 "kind":"function_declaration_header",
1373 "function_modifiers":{
1385 "leading":[{"kind":"whitespace","text":" ","offset":577,"width":2}],
1386 "trailing":[{"kind":"whitespace","text":" ","offset":585,"width":1}],
1392 "function_keyword":{
1402 "trailing":[{"kind":"whitespace","text":" ","offset":594,"width":1}],
1420 "function_type_parameter_list":{"kind":"missing"},
1421 "function_left_paren":{
1435 "function_parameter_list":{"kind":"missing"},
1436 "function_right_paren":{
1450 "function_capability":{"kind":"missing"},
1461 "trailing":[{"kind":"whitespace","text":" ","offset":600,"width":1}],
1466 "kind":"simple_type_specifier",
1467 "simple_type_specifier":{
1477 "trailing":[{"kind":"whitespace","text":" ","offset":605,"width":1}],
1482 "function_where_clause":{"kind":"missing"}
1484 "methodish_function_body":{
1485 "kind":"compound_statement",
1486 "compound_left_brace":{
1500 "compound_statements":{"kind":"missing"},
1501 "compound_right_brace":{
1511 "trailing":[{"kind":"end_of_line","text":"\n","offset":608,"width":1}],
1516 "methodish_semicolon":{"kind":"missing"}
1519 "kind":"methodish_declaration",
1520 "methodish_attribute":{"kind":"missing"},
1521 "methodish_function_decl_header":{
1522 "kind":"function_declaration_header",
1523 "function_modifiers":{
1535 "leading":[{"kind":"whitespace","text":" ","offset":609,"width":2}],
1536 "trailing":[{"kind":"whitespace","text":" ","offset":617,"width":1}],
1550 "trailing":[{"kind":"whitespace","text":" ","offset":624,"width":1}],
1556 "function_keyword":{
1566 "trailing":[{"kind":"whitespace","text":" ","offset":633,"width":1}],
1584 "function_type_parameter_list":{"kind":"missing"},
1585 "function_left_paren":{
1599 "function_parameter_list":{"kind":"missing"},
1600 "function_right_paren":{
1614 "function_capability":{"kind":"missing"},
1625 "trailing":[{"kind":"whitespace","text":" ","offset":639,"width":1}],
1630 "kind":"simple_type_specifier",
1631 "simple_type_specifier":{
1641 "trailing":[{"kind":"whitespace","text":" ","offset":644,"width":1}],
1646 "function_where_clause":{"kind":"missing"}
1648 "methodish_function_body":{
1649 "kind":"compound_statement",
1650 "compound_left_brace":{
1664 "compound_statements":{"kind":"missing"},
1665 "compound_right_brace":{
1675 "trailing":[{"kind":"end_of_line","text":"\n","offset":647,"width":1}],
1680 "methodish_semicolon":{"kind":"missing"}
1684 "classish_body_right_brace":{
1694 "trailing":[{"kind":"end_of_line","text":"\n","offset":649,"width":1}],
1701 "kind":"end_of_file",
1702 "end_of_file_token":{
1705 "kind":"end_of_file",
1720 "program_text":"<?hh // strict\n/**\n * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the \"hack\" directory of this source tree.\n *\n *\n */\n\n/**\n * Hack treats method dispatch in a different way from PHP.\n */\n\nclass A {\n public function f1(): void {}\n public static function f2(): void {}\n}\n\nclass B extends A {\n public function f1(): void {}\n public static function f2(): void {}\n public function test1(): void {}\n public static function test2(): void {\n $this->f1();\n }\n}\n\nclass C {\n public function f3(): void {}\n public static function f4(): void {}\n}\n",
1721 "version":"2020-12-09-0001"