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":"alias_declaration",
57 "alias_attribute_spec":{"kind":"missing"},
67 "leading":[{"kind":"end_of_line","text":"\n","offset":5,"width":1}],
68 "trailing":[{"kind":"whitespace","text":" ","offset":10,"width":1}],
82 "trailing":[{"kind":"whitespace","text":" ","offset":12,"width":1}],
86 "alias_generic_parameter":{"kind":"missing"},
87 "alias_constraint":{"kind":"missing"},
98 "trailing":[{"kind":"whitespace","text":" ","offset":14,"width":1}],
103 "kind":"attributized_specifier",
104 "attributized_specifier_attribute_spec":{
105 "kind":"old_attribute_specification",
106 "old_attribute_specification_left_double_angle":{
120 "old_attribute_specification_attributes":{
126 "kind":"constructor_call",
127 "constructor_call_type":{
141 "constructor_call_left_paren":{"kind":"missing"},
142 "constructor_call_argument_list":{"kind":"missing"},
143 "constructor_call_right_paren":{"kind":"missing"}
145 "list_separator":{"kind":"missing"}
149 "old_attribute_specification_right_double_angle":{
159 "trailing":[{"kind":"whitespace","text":" ","offset":25,"width":1}],
164 "attributized_specifier_type":{
165 "kind":"darray_type_specifier",
180 "darray_left_angle":{
195 "kind":"simple_type_specifier",
196 "simple_type_specifier":{
221 "trailing":[{"kind":"whitespace","text":" ","offset":37,"width":1}],
226 "kind":"attributized_specifier",
227 "attributized_specifier_attribute_spec":{
228 "kind":"old_attribute_specification",
229 "old_attribute_specification_left_double_angle":{
243 "old_attribute_specification_attributes":{
249 "kind":"constructor_call",
250 "constructor_call_type":{
264 "constructor_call_left_paren":{"kind":"missing"},
265 "constructor_call_argument_list":{"kind":"missing"},
266 "constructor_call_right_paren":{"kind":"missing"}
268 "list_separator":{"kind":"missing"}
272 "old_attribute_specification_right_double_angle":{
282 "trailing":[{"kind":"whitespace","text":" ","offset":48,"width":1}],
287 "attributized_specifier_type":{
288 "kind":"simple_type_specifier",
289 "simple_type_specifier":{
305 "darray_trailing_comma":{"kind":"missing"},
306 "darray_right_angle":{
332 "trailing":[{"kind":"end_of_line","text":"\n","offset":57,"width":1}],
338 "kind":"alias_declaration",
339 "alias_attribute_spec":{"kind":"missing"},
350 "trailing":[{"kind":"whitespace","text":" ","offset":62,"width":1}],
364 "trailing":[{"kind":"whitespace","text":" ","offset":64,"width":1}],
368 "alias_generic_parameter":{"kind":"missing"},
369 "alias_constraint":{"kind":"missing"},
380 "trailing":[{"kind":"whitespace","text":" ","offset":66,"width":1}],
385 "kind":"varray_type_specifier",
400 "varray_left_angle":{
415 "kind":"attributized_specifier",
416 "attributized_specifier_attribute_spec":{
417 "kind":"old_attribute_specification",
418 "old_attribute_specification_left_double_angle":{
432 "old_attribute_specification_attributes":{
438 "kind":"constructor_call",
439 "constructor_call_type":{
453 "constructor_call_left_paren":{"kind":"missing"},
454 "constructor_call_argument_list":{"kind":"missing"},
455 "constructor_call_right_paren":{"kind":"missing"}
457 "list_separator":{"kind":"missing"}
461 "old_attribute_specification_right_double_angle":{
471 "trailing":[{"kind":"whitespace","text":" ","offset":84,"width":1}],
476 "attributized_specifier_type":{
477 "kind":"simple_type_specifier",
478 "simple_type_specifier":{
494 "varray_trailing_comma":{"kind":"missing"},
495 "varray_right_angle":{
520 "trailing":[{"kind":"end_of_line","text":"\n","offset":90,"width":1}],
526 "kind":"function_declaration",
527 "function_attribute_spec":{"kind":"missing"},
528 "function_declaration_header":{
529 "kind":"function_declaration_header",
530 "function_modifiers":{"kind":"missing"},
540 "leading":[{"kind":"end_of_line","text":"\n","offset":91,"width":1}],
541 "trailing":[{"kind":"whitespace","text":" ","offset":100,"width":1}],
559 "function_type_parameter_list":{
560 "kind":"type_parameters",
561 "type_parameters_left_angle":{
575 "type_parameters_parameters":{
581 "kind":"type_parameter",
582 "type_attribute_spec":{"kind":"missing"},
583 "type_reified":{"kind":"missing"},
584 "type_variance":{"kind":"missing"},
599 "type_constraints":{"kind":"missing"}
601 "list_separator":{"kind":"missing"}
605 "type_parameters_right_angle":{
620 "function_left_paren":{
634 "function_parameter_list":{"kind":"missing"},
635 "function_right_paren":{
659 "trailing":[{"kind":"whitespace","text":" ","offset":108,"width":1}],
664 "kind":"simple_type_specifier",
665 "simple_type_specifier":{
675 "trailing":[{"kind":"whitespace","text":" ","offset":113,"width":1}],
680 "function_where_clause":{"kind":"missing"}
683 "kind":"compound_statement",
684 "compound_left_brace":{
698 "compound_statements":{"kind":"missing"},
699 "compound_right_brace":{
709 "trailing":[{"kind":"end_of_line","text":"\n","offset":116,"width":1}],
716 "kind":"function_declaration",
717 "function_attribute_spec":{"kind":"missing"},
718 "function_declaration_header":{
719 "kind":"function_declaration_header",
720 "function_modifiers":{"kind":"missing"},
730 "leading":[{"kind":"end_of_line","text":"\n","offset":117,"width":1}],
731 "trailing":[{"kind":"whitespace","text":" ","offset":126,"width":1}],
749 "function_type_parameter_list":{"kind":"missing"},
750 "function_left_paren":{
764 "function_parameter_list":{
770 "kind":"parameter_declaration",
771 "parameter_attribute":{
772 "kind":"old_attribute_specification",
773 "old_attribute_specification_left_double_angle":{
787 "old_attribute_specification_attributes":{
793 "kind":"constructor_call",
794 "constructor_call_type":{
808 "constructor_call_left_paren":{"kind":"missing"},
809 "constructor_call_argument_list":{"kind":"missing"},
810 "constructor_call_right_paren":{"kind":"missing"}
812 "list_separator":{"kind":"missing"}
816 "old_attribute_specification_right_double_angle":{
826 "trailing":[{"kind":"whitespace","text":" ","offset":139,"width":1}],
831 "parameter_visibility":{"kind":"missing"},
832 "parameter_call_convention":{"kind":"missing"},
834 "kind":"simple_type_specifier",
835 "simple_type_specifier":{
845 "trailing":[{"kind":"whitespace","text":" ","offset":143,"width":1}],
864 "parameter_default_value":{"kind":"missing"}
866 "list_separator":{"kind":"missing"}
870 "function_right_paren":{
894 "trailing":[{"kind":"whitespace","text":" ","offset":148,"width":1}],
899 "kind":"attributized_specifier",
900 "attributized_specifier_attribute_spec":{
901 "kind":"old_attribute_specification",
902 "old_attribute_specification_left_double_angle":{
916 "old_attribute_specification_attributes":{
922 "kind":"constructor_call",
923 "constructor_call_type":{
937 "constructor_call_left_paren":{"kind":"missing"},
938 "constructor_call_argument_list":{"kind":"missing"},
939 "constructor_call_right_paren":{"kind":"missing"}
941 "list_separator":{"kind":"missing"}
945 "old_attribute_specification_right_double_angle":{
955 "trailing":[{"kind":"whitespace","text":" ","offset":159,"width":1}],
960 "attributized_specifier_type":{
961 "kind":"simple_type_specifier",
962 "simple_type_specifier":{
972 "trailing":[{"kind":"whitespace","text":" ","offset":166,"width":1}],
978 "function_where_clause":{"kind":"missing"}
981 "kind":"compound_statement",
982 "compound_left_brace":{
992 "trailing":[{"kind":"end_of_line","text":"\n","offset":168,"width":1}],
996 "compound_statements":{
1000 "kind":"expression_statement",
1001 "expression_statement_expression":{
1002 "kind":"function_call_expression",
1003 "function_call_receiver":{
1012 "leading":[{"kind":"whitespace","text":" ","offset":169,"width":2}],
1017 "function_call_type_args":{
1018 "kind":"type_arguments",
1019 "type_arguments_left_angle":{
1033 "type_arguments_types":{
1039 "kind":"attributized_specifier",
1040 "attributized_specifier_attribute_spec":{
1041 "kind":"old_attribute_specification",
1042 "old_attribute_specification_left_double_angle":{
1056 "old_attribute_specification_attributes":{
1062 "kind":"constructor_call",
1063 "constructor_call_type":{
1077 "constructor_call_left_paren":{"kind":"missing"},
1078 "constructor_call_argument_list":{"kind":"missing"},
1079 "constructor_call_right_paren":{"kind":"missing"}
1081 "list_separator":{"kind":"missing"}
1085 "old_attribute_specification_right_double_angle":{
1095 "trailing":[{"kind":"whitespace","text":" ","offset":183,"width":1}],
1100 "attributized_specifier_type":{
1101 "kind":"simple_type_specifier",
1102 "simple_type_specifier":{
1118 "list_separator":{"kind":"missing"}
1122 "type_arguments_right_angle":{
1137 "function_call_left_paren":{
1151 "function_call_argument_list":{"kind":"missing"},
1152 "function_call_right_paren":{
1167 "expression_statement_semicolon":{
1177 "trailing":[{"kind":"end_of_line","text":"\n","offset":193,"width":1}],
1183 "kind":"return_statement",
1193 "leading":[{"kind":"whitespace","text":" ","offset":194,"width":2}],
1194 "trailing":[{"kind":"whitespace","text":" ","offset":202,"width":1}],
1198 "return_expression":{
1200 "literal_expression":{
1203 "kind":"double_quoted_string_literal",
1215 "return_semicolon":{
1225 "trailing":[{"kind":"end_of_line","text":"\n","offset":211,"width":1}],
1232 "compound_right_brace":{
1242 "trailing":[{"kind":"end_of_line","text":"\n","offset":213,"width":1}],
1249 "kind":"classish_declaration",
1250 "classish_attribute":{"kind":"missing"},
1251 "classish_modifiers":{
1263 "leading":[{"kind":"end_of_line","text":"\n","offset":214,"width":1}],
1264 "trailing":[{"kind":"whitespace","text":" ","offset":223,"width":1}],
1270 "classish_xhp":{"kind":"missing"},
1271 "classish_keyword":{
1281 "trailing":[{"kind":"whitespace","text":" ","offset":229,"width":1}],
1295 "trailing":[{"kind":"whitespace","text":" ","offset":231,"width":1}],
1299 "classish_type_parameters":{"kind":"missing"},
1300 "classish_extends_keyword":{"kind":"missing"},
1301 "classish_extends_list":{"kind":"missing"},
1302 "classish_implements_keyword":{"kind":"missing"},
1303 "classish_implements_list":{"kind":"missing"},
1304 "classish_where_clause":{"kind":"missing"},
1306 "kind":"classish_body",
1307 "classish_body_left_brace":{
1317 "trailing":[{"kind":"end_of_line","text":"\n","offset":233,"width":1}],
1321 "classish_body_elements":{
1325 "kind":"property_declaration",
1326 "property_attribute_spec":{
1327 "kind":"old_attribute_specification",
1328 "old_attribute_specification_left_double_angle":{
1337 "leading":[{"kind":"whitespace","text":" ","offset":234,"width":2}],
1342 "old_attribute_specification_attributes":{
1348 "kind":"constructor_call",
1349 "constructor_call_type":{
1363 "constructor_call_left_paren":{"kind":"missing"},
1364 "constructor_call_argument_list":{"kind":"missing"},
1365 "constructor_call_right_paren":{"kind":"missing"}
1367 "list_separator":{"kind":"missing"}
1371 "old_attribute_specification_right_double_angle":{
1381 "trailing":[{"kind":"whitespace","text":" ","offset":246,"width":1}],
1386 "property_modifiers":{
1399 "trailing":[{"kind":"whitespace","text":" ","offset":256,"width":1}],
1406 "kind":"simple_type_specifier",
1407 "simple_type_specifier":{
1417 "trailing":[{"kind":"whitespace","text":" ","offset":262,"width":1}],
1422 "property_declarators":{
1428 "kind":"property_declarator",
1443 "property_initializer":{"kind":"missing"}
1445 "list_separator":{"kind":"missing"}
1449 "property_semicolon":{
1459 "trailing":[{"kind":"end_of_line","text":"\n","offset":266,"width":1}],
1465 "kind":"type_const_declaration",
1466 "type_const_attribute_spec":{"kind":"missing"},
1467 "type_const_modifiers":{"kind":"missing"},
1468 "type_const_keyword":{
1477 "leading":[{"kind":"whitespace","text":" ","offset":267,"width":2}],
1478 "trailing":[{"kind":"whitespace","text":" ","offset":274,"width":1}],
1482 "type_const_type_keyword":{
1492 "trailing":[{"kind":"whitespace","text":" ","offset":279,"width":1}],
1506 "trailing":[{"kind":"whitespace","text":" ","offset":281,"width":1}],
1510 "type_const_type_parameters":{"kind":"missing"},
1511 "type_const_type_constraint":{"kind":"missing"},
1512 "type_const_equal":{
1522 "trailing":[{"kind":"whitespace","text":" ","offset":283,"width":1}],
1526 "type_const_type_specifier":{
1527 "kind":"attributized_specifier",
1528 "attributized_specifier_attribute_spec":{
1529 "kind":"old_attribute_specification",
1530 "old_attribute_specification_left_double_angle":{
1544 "old_attribute_specification_attributes":{
1550 "kind":"constructor_call",
1551 "constructor_call_type":{
1565 "constructor_call_left_paren":{"kind":"missing"},
1566 "constructor_call_argument_list":{"kind":"missing"},
1567 "constructor_call_right_paren":{"kind":"missing"}
1569 "list_separator":{"kind":"missing"}
1573 "old_attribute_specification_right_double_angle":{
1583 "trailing":[{"kind":"whitespace","text":" ","offset":294,"width":1}],
1588 "attributized_specifier_type":{
1589 "kind":"simple_type_specifier",
1590 "simple_type_specifier":{
1606 "type_const_semicolon":{
1616 "trailing":[{"kind":"end_of_line","text":"\n","offset":299,"width":1}],
1622 "kind":"methodish_declaration",
1623 "methodish_attribute":{"kind":"missing"},
1624 "methodish_function_decl_header":{
1625 "kind":"function_declaration_header",
1626 "function_modifiers":{
1639 {"kind":"end_of_line","text":"\n","offset":300,"width":1},
1640 {"kind":"whitespace","text":" ","offset":301,"width":2}
1642 "trailing":[{"kind":"whitespace","text":" ","offset":309,"width":1}],
1656 "trailing":[{"kind":"whitespace","text":" ","offset":315,"width":1}],
1662 "function_keyword":{
1672 "trailing":[{"kind":"whitespace","text":" ","offset":324,"width":1}],
1690 "function_type_parameter_list":{"kind":"missing"},
1691 "function_left_paren":{
1705 "function_parameter_list":{"kind":"missing"},
1706 "function_right_paren":{
1730 "trailing":[{"kind":"whitespace","text":" ","offset":329,"width":1}],
1735 "kind":"generic_type_specifier",
1736 "generic_class_type":{
1750 "generic_argument_list":{
1751 "kind":"type_arguments",
1752 "type_arguments_left_angle":{
1766 "type_arguments_types":{
1772 "kind":"attributized_specifier",
1773 "attributized_specifier_attribute_spec":{
1774 "kind":"old_attribute_specification",
1775 "old_attribute_specification_left_double_angle":{
1789 "old_attribute_specification_attributes":{
1795 "kind":"constructor_call",
1796 "constructor_call_type":{
1810 "constructor_call_left_paren":{"kind":"missing"},
1811 "constructor_call_argument_list":{"kind":"missing"},
1812 "constructor_call_right_paren":{"kind":"missing"}
1814 "list_separator":{"kind":"missing"}
1818 "old_attribute_specification_right_double_angle":{
1828 "trailing":[{"kind":"whitespace","text":" ","offset":350,"width":1}],
1833 "attributized_specifier_type":{
1834 "kind":"simple_type_specifier",
1835 "simple_type_specifier":{
1851 "list_separator":{"kind":"missing"}
1855 "type_arguments_right_angle":{
1865 "trailing":[{"kind":"whitespace","text":" ","offset":355,"width":1}],
1871 "function_where_clause":{"kind":"missing"}
1873 "methodish_function_body":{
1874 "kind":"compound_statement",
1875 "compound_left_brace":{
1885 "trailing":[{"kind":"end_of_line","text":"\n","offset":357,"width":1}],
1889 "compound_statements":{
1893 "kind":"return_statement",
1903 "leading":[{"kind":"whitespace","text":" ","offset":358,"width":4}],
1904 "trailing":[{"kind":"whitespace","text":" ","offset":368,"width":1}],
1908 "return_expression":{
1910 "literal_expression":{
1913 "kind":"decimal_literal",
1925 "return_semicolon":{
1935 "trailing":[{"kind":"end_of_line","text":"\n","offset":372,"width":1}],
1942 "compound_right_brace":{
1951 "leading":[{"kind":"whitespace","text":" ","offset":373,"width":2}],
1952 "trailing":[{"kind":"end_of_line","text":"\n","offset":376,"width":1}],
1957 "methodish_semicolon":{"kind":"missing"}
1961 "classish_body_right_brace":{
1971 "trailing":[{"kind":"end_of_line","text":"\n","offset":378,"width":1}],
1978 "kind":"classish_declaration",
1979 "classish_attribute":{"kind":"missing"},
1980 "classish_modifiers":{"kind":"missing"},
1981 "classish_xhp":{"kind":"missing"},
1982 "classish_keyword":{
1991 "leading":[{"kind":"end_of_line","text":"\n","offset":379,"width":1}],
1992 "trailing":[{"kind":"whitespace","text":" ","offset":385,"width":1}],
2006 "trailing":[{"kind":"whitespace","text":" ","offset":387,"width":1}],
2010 "classish_type_parameters":{"kind":"missing"},
2011 "classish_extends_keyword":{"kind":"missing"},
2012 "classish_extends_list":{"kind":"missing"},
2013 "classish_implements_keyword":{"kind":"missing"},
2014 "classish_implements_list":{"kind":"missing"},
2015 "classish_where_clause":{"kind":"missing"},
2017 "kind":"classish_body",
2018 "classish_body_left_brace":{
2028 "trailing":[{"kind":"end_of_line","text":"\n","offset":389,"width":1}],
2032 "classish_body_elements":{
2036 "kind":"const_declaration",
2037 "const_modifiers":{"kind":"missing"},
2047 "leading":[{"kind":"whitespace","text":" ","offset":390,"width":2}],
2048 "trailing":[{"kind":"whitespace","text":" ","offset":397,"width":1}],
2052 "const_type_specifier":{
2053 "kind":"attributized_specifier",
2054 "attributized_specifier_attribute_spec":{
2055 "kind":"old_attribute_specification",
2056 "old_attribute_specification_left_double_angle":{
2070 "old_attribute_specification_attributes":{
2076 "kind":"constructor_call",
2077 "constructor_call_type":{
2091 "constructor_call_left_paren":{"kind":"missing"},
2092 "constructor_call_argument_list":{"kind":"missing"},
2093 "constructor_call_right_paren":{"kind":"missing"}
2095 "list_separator":{"kind":"missing"}
2099 "old_attribute_specification_right_double_angle":{
2109 "trailing":[{"kind":"whitespace","text":" ","offset":408,"width":1}],
2114 "attributized_specifier_type":{
2115 "kind":"simple_type_specifier",
2116 "simple_type_specifier":{
2126 "trailing":[{"kind":"whitespace","text":" ","offset":412,"width":1}],
2132 "const_declarators":{
2138 "kind":"constant_declarator",
2139 "constant_declarator_name":{
2149 "trailing":[{"kind":"whitespace","text":" ","offset":414,"width":1}],
2153 "constant_declarator_initializer":{
2154 "kind":"simple_initializer",
2155 "simple_initializer_equal":{
2165 "trailing":[{"kind":"whitespace","text":" ","offset":416,"width":1}],
2169 "simple_initializer_value":{
2171 "literal_expression":{
2174 "kind":"decimal_literal",
2188 "list_separator":{"kind":"missing"}
2202 "trailing":[{"kind":"end_of_line","text":"\n","offset":419,"width":1}],
2209 "classish_body_right_brace":{
2219 "trailing":[{"kind":"end_of_line","text":"\n","offset":421,"width":1}],
2226 "kind":"end_of_file",
2227 "end_of_file_token":{
2230 "kind":"end_of_file",
2245 "program_text":"<?hh\n\ntype t = <<__Soft>> darray<int, <<__Soft>> string>;\ntype u = varray<<<__Soft>> int>;\n\nfunction f<T>(): void {}\n\nfunction g(<<__Soft>> int $_): <<__Soft>> string {\n f<<<__Soft>> float>();\n return \"hello\";\n}\n\nabstract class C {\n <<__Soft>> protected float $x;\n const type T = <<__Soft>> int;\n\n public async function f(): Awaitable<<<__Soft>> int> {\n return 42;\n }\n}\n\nclass D {\n const <<__Soft>> int X = 0;\n}\n",
2246 "version":"2020-04-14-0002"