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":8},
52 {"kind":"end_of_line","text":"\n","offset":13,"width":1}
60 "kind":"namespace_declaration",
62 "kind":"namespace_declaration_header",
72 "leading":[{"kind":"end_of_line","text":"\n","offset":14,"width":1}],
73 "trailing":[{"kind":"whitespace","text":" ","offset":24,"width":1}],
87 "trailing":[{"kind":"whitespace","text":" ","offset":28,"width":1}],
93 "kind":"namespace_body",
94 "namespace_left_brace":{
104 "trailing":[{"kind":"end_of_line","text":"\n","offset":30,"width":1}],
108 "namespace_declarations":{
112 "kind":"classish_declaration",
113 "classish_attribute":{"kind":"missing"},
114 "classish_modifiers":{"kind":"missing"},
115 "classish_xhp":{"kind":"missing"},
125 "leading":[{"kind":"whitespace","text":" ","offset":31,"width":4}],
126 "trailing":[{"kind":"whitespace","text":" ","offset":40,"width":1}],
140 "trailing":[{"kind":"whitespace","text":" ","offset":42,"width":1}],
144 "classish_type_parameters":{"kind":"missing"},
145 "classish_extends_keyword":{"kind":"missing"},
146 "classish_extends_list":{"kind":"missing"},
147 "classish_implements_keyword":{"kind":"missing"},
148 "classish_implements_list":{"kind":"missing"},
149 "classish_where_clause":{"kind":"missing"},
151 "kind":"classish_body",
152 "classish_body_left_brace":{
162 "trailing":[{"kind":"whitespace","text":" ","offset":44,"width":1}],
166 "classish_body_elements":{"kind":"missing"},
167 "classish_body_right_brace":{
177 "trailing":[{"kind":"end_of_line","text":"\n","offset":46,"width":1}],
184 "kind":"classish_declaration",
185 "classish_attribute":{"kind":"missing"},
186 "classish_modifiers":{"kind":"missing"},
187 "classish_xhp":{"kind":"missing"},
197 "leading":[{"kind":"whitespace","text":" ","offset":47,"width":4}],
198 "trailing":[{"kind":"whitespace","text":" ","offset":56,"width":1}],
212 "trailing":[{"kind":"whitespace","text":" ","offset":58,"width":1}],
216 "classish_type_parameters":{"kind":"missing"},
217 "classish_extends_keyword":{"kind":"missing"},
218 "classish_extends_list":{"kind":"missing"},
219 "classish_implements_keyword":{"kind":"missing"},
220 "classish_implements_list":{"kind":"missing"},
221 "classish_where_clause":{"kind":"missing"},
223 "kind":"classish_body",
224 "classish_body_left_brace":{
234 "trailing":[{"kind":"whitespace","text":" ","offset":60,"width":1}],
238 "classish_body_elements":{"kind":"missing"},
239 "classish_body_right_brace":{
249 "trailing":[{"kind":"end_of_line","text":"\n","offset":62,"width":1}],
257 "namespace_right_brace":{
267 "trailing":[{"kind":"end_of_line","text":"\n","offset":64,"width":1}],
274 "kind":"namespace_declaration",
276 "kind":"namespace_declaration_header",
277 "namespace_keyword":{
286 "leading":[{"kind":"end_of_line","text":"\n","offset":65,"width":1}],
287 "trailing":[{"kind":"whitespace","text":" ","offset":75,"width":1}],
301 "trailing":[{"kind":"whitespace","text":" ","offset":84,"width":1}],
307 "kind":"namespace_body",
308 "namespace_left_brace":{
318 "trailing":[{"kind":"end_of_line","text":"\n","offset":86,"width":1}],
322 "namespace_declarations":{
326 "kind":"namespace_group_use_declaration",
327 "namespace_group_use_keyword":{
336 "leading":[{"kind":"whitespace","text":" ","offset":87,"width":2}],
337 "trailing":[{"kind":"whitespace","text":" ","offset":92,"width":1}],
341 "namespace_group_use_kind":{"kind":"missing"},
342 "namespace_group_use_prefix":{
343 "kind":"qualified_name",
344 "qualified_name_parts":{
349 "list_item":{"kind":"missing"},
377 "trailing":[{"kind":"whitespace","text":" ","offset":97,"width":1}],
381 "list_separator":{"kind":"missing"}
386 "namespace_group_use_left_brace":{
396 "trailing":[{"kind":"whitespace","text":" ","offset":99,"width":1}],
400 "namespace_group_use_clauses":{
406 "kind":"namespace_use_clause",
407 "namespace_use_clause_kind":{"kind":"missing"},
408 "namespace_use_name":{
422 "namespace_use_as":{"kind":"missing"},
423 "namespace_use_alias":{"kind":"missing"}
435 "trailing":[{"kind":"whitespace","text":" ","offset":102,"width":1}],
443 "kind":"namespace_use_clause",
444 "namespace_use_clause_kind":{"kind":"missing"},
445 "namespace_use_name":{
455 "trailing":[{"kind":"whitespace","text":" ","offset":104,"width":1}],
459 "namespace_use_as":{"kind":"missing"},
460 "namespace_use_alias":{"kind":"missing"}
462 "list_separator":{"kind":"missing"}
466 "namespace_group_use_right_brace":{
480 "namespace_group_use_semicolon":{
490 "trailing":[{"kind":"end_of_line","text":"\n","offset":107,"width":1}],
497 "namespace_right_brace":{
507 "trailing":[{"kind":"end_of_line","text":"\n","offset":109,"width":1}],
514 "kind":"namespace_declaration",
516 "kind":"namespace_declaration_header",
517 "namespace_keyword":{
526 "leading":[{"kind":"end_of_line","text":"\n","offset":110,"width":1}],
527 "trailing":[{"kind":"whitespace","text":" ","offset":120,"width":1}],
541 "trailing":[{"kind":"whitespace","text":" ","offset":129,"width":1}],
547 "kind":"namespace_body",
548 "namespace_left_brace":{
558 "trailing":[{"kind":"end_of_line","text":"\n","offset":131,"width":1}],
562 "namespace_declarations":{
566 "kind":"namespace_group_use_declaration",
567 "namespace_group_use_keyword":{
576 "leading":[{"kind":"whitespace","text":" ","offset":132,"width":2}],
577 "trailing":[{"kind":"whitespace","text":" ","offset":137,"width":1}],
581 "namespace_group_use_kind":{"kind":"missing"},
582 "namespace_group_use_prefix":{
583 "kind":"qualified_name",
584 "qualified_name_parts":{
589 "list_item":{"kind":"missing"},
631 "trailing":[{"kind":"whitespace","text":" ","offset":143,"width":1}],
639 "namespace_group_use_left_brace":{
649 "trailing":[{"kind":"whitespace","text":" ","offset":145,"width":1}],
653 "namespace_group_use_clauses":{
659 "kind":"namespace_use_clause",
660 "namespace_use_clause_kind":{
670 "trailing":[{"kind":"whitespace","text":" ","offset":150,"width":1}],
674 "namespace_use_name":{
688 "namespace_use_as":{"kind":"missing"},
689 "namespace_use_alias":{"kind":"missing"}
701 "trailing":[{"kind":"whitespace","text":" ","offset":153,"width":1}],
709 "kind":"namespace_use_clause",
710 "namespace_use_clause_kind":{"kind":"missing"},
711 "namespace_use_name":{
721 "trailing":[{"kind":"whitespace","text":" ","offset":155,"width":1}],
725 "namespace_use_as":{"kind":"missing"},
726 "namespace_use_alias":{"kind":"missing"}
728 "list_separator":{"kind":"missing"}
732 "namespace_group_use_right_brace":{
746 "namespace_group_use_semicolon":{
756 "trailing":[{"kind":"end_of_line","text":"\n","offset":158,"width":1}],
763 "namespace_right_brace":{
773 "trailing":[{"kind":"end_of_line","text":"\n","offset":160,"width":1}],
780 "kind":"namespace_declaration",
782 "kind":"namespace_declaration_header",
783 "namespace_keyword":{
792 "leading":[{"kind":"end_of_line","text":"\n","offset":161,"width":1}],
793 "trailing":[{"kind":"whitespace","text":" ","offset":171,"width":1}],
807 "trailing":[{"kind":"whitespace","text":" ","offset":180,"width":1}],
813 "kind":"namespace_body",
814 "namespace_left_brace":{
824 "trailing":[{"kind":"end_of_line","text":"\n","offset":182,"width":1}],
828 "namespace_declarations":{
832 "kind":"namespace_group_use_declaration",
833 "namespace_group_use_keyword":{
842 "leading":[{"kind":"whitespace","text":" ","offset":183,"width":2}],
843 "trailing":[{"kind":"whitespace","text":" ","offset":188,"width":1}],
847 "namespace_group_use_kind":{"kind":"missing"},
848 "namespace_group_use_prefix":{
849 "kind":"qualified_name",
850 "qualified_name_parts":{
855 "list_item":{"kind":"missing"},
897 "trailing":[{"kind":"whitespace","text":" ","offset":194,"width":1}],
905 "namespace_group_use_left_brace":{
915 "trailing":[{"kind":"whitespace","text":" ","offset":196,"width":1}],
919 "namespace_group_use_clauses":{
925 "kind":"namespace_use_clause",
926 "namespace_use_clause_kind":{
936 "trailing":[{"kind":"whitespace","text":" ","offset":201,"width":1}],
940 "namespace_use_name":{
954 "namespace_use_as":{"kind":"missing"},
955 "namespace_use_alias":{"kind":"missing"}
967 "trailing":[{"kind":"whitespace","text":" ","offset":204,"width":1}],
975 "kind":"namespace_use_clause",
976 "namespace_use_clause_kind":{
986 "trailing":[{"kind":"whitespace","text":" ","offset":209,"width":1}],
990 "namespace_use_name":{
1000 "trailing":[{"kind":"whitespace","text":" ","offset":211,"width":1}],
1004 "namespace_use_as":{"kind":"missing"},
1005 "namespace_use_alias":{"kind":"missing"}
1007 "list_separator":{"kind":"missing"}
1011 "namespace_group_use_right_brace":{
1025 "namespace_group_use_semicolon":{
1035 "trailing":[{"kind":"end_of_line","text":"\n","offset":214,"width":1}],
1042 "namespace_right_brace":{
1052 "trailing":[{"kind":"end_of_line","text":"\n","offset":216,"width":1}],
1059 "kind":"namespace_declaration",
1060 "namespace_header":{
1061 "kind":"namespace_declaration_header",
1062 "namespace_keyword":{
1071 "leading":[{"kind":"end_of_line","text":"\n","offset":217,"width":1}],
1072 "trailing":[{"kind":"whitespace","text":" ","offset":227,"width":1}],
1086 "trailing":[{"kind":"whitespace","text":" ","offset":234,"width":1}],
1092 "kind":"namespace_body",
1093 "namespace_left_brace":{
1103 "trailing":[{"kind":"end_of_line","text":"\n","offset":236,"width":1}],
1107 "namespace_declarations":{
1111 "kind":"namespace_group_use_declaration",
1112 "namespace_group_use_keyword":{
1121 "leading":[{"kind":"whitespace","text":" ","offset":237,"width":2}],
1122 "trailing":[{"kind":"whitespace","text":" ","offset":242,"width":1}],
1126 "namespace_group_use_kind":{"kind":"missing"},
1127 "namespace_group_use_prefix":{
1128 "kind":"qualified_name",
1129 "qualified_name_parts":{
1134 "list_item":{"kind":"missing"},
1176 "trailing":[{"kind":"whitespace","text":" ","offset":248,"width":1}],
1184 "namespace_group_use_left_brace":{
1194 "trailing":[{"kind":"whitespace","text":" ","offset":250,"width":1}],
1198 "namespace_group_use_clauses":{
1204 "kind":"namespace_use_clause",
1205 "namespace_use_clause_kind":{"kind":"missing"},
1206 "namespace_use_name":{
1220 "namespace_use_as":{"kind":"missing"},
1221 "namespace_use_alias":{"kind":"missing"}
1233 "trailing":[{"kind":"whitespace","text":" ","offset":253,"width":1}],
1241 "kind":"namespace_use_clause",
1242 "namespace_use_clause_kind":{"kind":"missing"},
1243 "namespace_use_name":{
1253 "trailing":[{"kind":"whitespace","text":" ","offset":255,"width":1}],
1257 "namespace_use_as":{"kind":"missing"},
1258 "namespace_use_alias":{"kind":"missing"}
1260 "list_separator":{"kind":"missing"}
1264 "namespace_group_use_right_brace":{
1278 "namespace_group_use_semicolon":{
1288 "trailing":[{"kind":"end_of_line","text":"\n","offset":258,"width":1}],
1295 "namespace_right_brace":{
1305 "trailing":[{"kind":"end_of_line","text":"\n","offset":260,"width":1}],
1312 "kind":"namespace_declaration",
1313 "namespace_header":{
1314 "kind":"namespace_declaration_header",
1315 "namespace_keyword":{
1324 "leading":[{"kind":"end_of_line","text":"\n","offset":261,"width":1}],
1325 "trailing":[{"kind":"whitespace","text":" ","offset":271,"width":1}],
1339 "trailing":[{"kind":"whitespace","text":" ","offset":278,"width":1}],
1345 "kind":"namespace_body",
1346 "namespace_left_brace":{
1356 "trailing":[{"kind":"end_of_line","text":"\n","offset":280,"width":1}],
1360 "namespace_declarations":{
1364 "kind":"namespace_use_declaration",
1365 "namespace_use_keyword":{
1374 "leading":[{"kind":"whitespace","text":" ","offset":281,"width":2}],
1375 "trailing":[{"kind":"whitespace","text":" ","offset":286,"width":1}],
1379 "namespace_use_kind":{"kind":"missing"},
1380 "namespace_use_clauses":{
1386 "kind":"namespace_use_clause",
1387 "namespace_use_clause_kind":{"kind":"missing"},
1388 "namespace_use_name":{
1389 "kind":"qualified_name",
1390 "qualified_name_parts":{
1395 "list_item":{"kind":"missing"},
1427 "list_separator":{"kind":"missing"}
1432 "namespace_use_as":{"kind":"missing"},
1433 "namespace_use_alias":{"kind":"missing"}
1435 "list_separator":{"kind":"missing"}
1439 "namespace_use_semicolon":{
1449 "trailing":[{"kind":"end_of_line","text":"\n","offset":292,"width":1}],
1456 "namespace_right_brace":{
1466 "trailing":[{"kind":"end_of_line","text":"\n","offset":294,"width":1}],
1473 "kind":"namespace_declaration",
1474 "namespace_header":{
1475 "kind":"namespace_declaration_header",
1476 "namespace_keyword":{
1485 "leading":[{"kind":"end_of_line","text":"\n","offset":295,"width":1}],
1486 "trailing":[{"kind":"whitespace","text":" ","offset":305,"width":1}],
1500 "trailing":[{"kind":"whitespace","text":" ","offset":314,"width":1}],
1506 "kind":"namespace_body",
1507 "namespace_left_brace":{
1517 "trailing":[{"kind":"end_of_line","text":"\n","offset":316,"width":1}],
1521 "namespace_declarations":{
1525 "kind":"namespace_use_declaration",
1526 "namespace_use_keyword":{
1535 "leading":[{"kind":"whitespace","text":" ","offset":317,"width":2}],
1536 "trailing":[{"kind":"whitespace","text":" ","offset":322,"width":1}],
1540 "namespace_use_kind":{"kind":"missing"},
1541 "namespace_use_clauses":{
1547 "kind":"namespace_use_clause",
1548 "namespace_use_clause_kind":{"kind":"missing"},
1549 "namespace_use_name":{
1550 "kind":"qualified_name",
1551 "qualified_name_parts":{
1556 "list_item":{"kind":"missing"},
1584 "trailing":[{"kind":"whitespace","text":" ","offset":327,"width":1}],
1588 "list_separator":{"kind":"missing"}
1593 "namespace_use_as":{
1603 "trailing":[{"kind":"whitespace","text":" ","offset":330,"width":1}],
1607 "namespace_use_alias":{"kind":"missing"}
1609 "list_separator":{"kind":"missing"}
1613 "namespace_use_semicolon":{
1622 "leading":[{"kind":"extra_token_error","text":"\n}\n\nn","offset":337,"width":5}],
1623 "trailing":[{"kind":"end_of_line","text":"\n","offset":337,"width":1}],
1630 "namespace_right_brace":{
1640 "trailing":[{"kind":"end_of_line","text":"\n","offset":339,"width":1}],
1647 "kind":"namespace_declaration",
1648 "namespace_header":{
1649 "kind":"namespace_declaration_header",
1650 "namespace_keyword":{
1659 "leading":[{"kind":"end_of_line","text":"\n","offset":340,"width":1}],
1660 "trailing":[{"kind":"whitespace","text":" ","offset":350,"width":1}],
1674 "trailing":[{"kind":"whitespace","text":" ","offset":357,"width":1}],
1680 "kind":"namespace_body",
1681 "namespace_left_brace":{
1691 "trailing":[{"kind":"end_of_line","text":"\n","offset":359,"width":1}],
1695 "namespace_declarations":{
1699 "kind":"namespace_use_declaration",
1700 "namespace_use_keyword":{
1709 "leading":[{"kind":"whitespace","text":" ","offset":360,"width":2}],
1710 "trailing":[{"kind":"whitespace","text":" ","offset":365,"width":1}],
1714 "namespace_use_kind":{
1724 "trailing":[{"kind":"whitespace","text":" ","offset":370,"width":1}],
1728 "namespace_use_clauses":{
1734 "kind":"namespace_use_clause",
1735 "namespace_use_clause_kind":{"kind":"missing"},
1736 "namespace_use_name":{
1737 "kind":"qualified_name",
1738 "qualified_name_parts":{
1743 "list_item":{"kind":"missing"},
1806 "list_separator":{"kind":"missing"}
1811 "namespace_use_as":{"kind":"missing"},
1812 "namespace_use_alias":{"kind":"missing"}
1824 "trailing":[{"kind":"whitespace","text":" ","offset":378,"width":1}],
1832 "kind":"namespace_use_clause",
1833 "namespace_use_clause_kind":{"kind":"missing"},
1834 "namespace_use_name":{
1835 "kind":"qualified_name",
1836 "qualified_name_parts":{
1841 "list_item":{"kind":"missing"},
1904 "list_separator":{"kind":"missing"}
1909 "namespace_use_as":{"kind":"missing"},
1910 "namespace_use_alias":{"kind":"missing"}
1912 "list_separator":{"kind":"missing"}
1916 "namespace_use_semicolon":{
1926 "trailing":[{"kind":"end_of_line","text":"\n","offset":386,"width":1}],
1933 "namespace_right_brace":{
1943 "trailing":[{"kind":"end_of_line","text":"\n","offset":388,"width":1}],
1950 "kind":"namespace_declaration",
1951 "namespace_header":{
1952 "kind":"namespace_declaration_header",
1953 "namespace_keyword":{
1962 "leading":[{"kind":"end_of_line","text":"\n","offset":389,"width":1}],
1963 "trailing":[{"kind":"whitespace","text":" ","offset":399,"width":1}],
1977 "trailing":[{"kind":"whitespace","text":" ","offset":406,"width":1}],
1983 "kind":"namespace_body",
1984 "namespace_left_brace":{
1994 "trailing":[{"kind":"end_of_line","text":"\n","offset":408,"width":1}],
1998 "namespace_declarations":{
2002 "kind":"namespace_group_use_declaration",
2003 "namespace_group_use_keyword":{
2012 "leading":[{"kind":"whitespace","text":" ","offset":409,"width":2}],
2013 "trailing":[{"kind":"whitespace","text":" ","offset":414,"width":1}],
2017 "namespace_group_use_kind":{
2027 "trailing":[{"kind":"whitespace","text":" ","offset":419,"width":1}],
2031 "namespace_group_use_prefix":{
2032 "kind":"qualified_name",
2033 "qualified_name_parts":{
2038 "list_item":{"kind":"missing"},
2080 "trailing":[{"kind":"whitespace","text":" ","offset":425,"width":1}],
2088 "namespace_group_use_left_brace":{
2098 "trailing":[{"kind":"whitespace","text":" ","offset":427,"width":1}],
2102 "namespace_group_use_clauses":{
2108 "kind":"namespace_use_clause",
2109 "namespace_use_clause_kind":{"kind":"missing"},
2110 "namespace_use_name":{
2124 "namespace_use_as":{"kind":"missing"},
2125 "namespace_use_alias":{"kind":"missing"}
2137 "trailing":[{"kind":"whitespace","text":" ","offset":430,"width":1}],
2145 "kind":"namespace_use_clause",
2146 "namespace_use_clause_kind":{"kind":"missing"},
2147 "namespace_use_name":{
2157 "trailing":[{"kind":"whitespace","text":" ","offset":432,"width":1}],
2161 "namespace_use_as":{"kind":"missing"},
2162 "namespace_use_alias":{"kind":"missing"}
2164 "list_separator":{"kind":"missing"}
2168 "namespace_group_use_right_brace":{
2182 "namespace_group_use_semicolon":{
2192 "trailing":[{"kind":"end_of_line","text":"\n","offset":435,"width":1}],
2199 "namespace_right_brace":{
2209 "trailing":[{"kind":"end_of_line","text":"\n","offset":437,"width":1}],
2216 "kind":"end_of_file",
2217 "end_of_file_token":{
2220 "kind":"end_of_file",
2235 "program_text":"<?hh //strict\n\nnamespace foo {\n class C { }\n class D { }\n}\n\nnamespace illegal1 {\n use \\foo { C, D };\n}\n\nnamespace illegal2 {\n use \\foo\\ { type C, D };\n}\n\nnamespace illegal3 {\n use \\foo\\ { type C, type D };\n}\n\nnamespace legal1 {\n use \\foo\\ { C, D };\n}\n\nnamespace legal2 {\n use \\foo;\n}\n\nnamespace illegal4 {\n use \\foo as false;\n}\n\nnamespace legal3 {\n use type \\foo\\C, \\foo\\D;\n}\n\nnamespace legal4 {\n use type \\foo\\ { C, D };\n}\n",
2236 "version":"2020-04-14-0002"