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}],
88 "classish_type_parameters":{
89 "kind":"type_parameters",
90 "type_parameters_left_angle":{
104 "type_parameters_parameters":{
110 "kind":"type_parameter",
111 "type_attribute_spec":{"kind":"missing"},
122 "trailing":[{"kind":"whitespace","text":" ","offset":19,"width":1}],
154 "type_constraints":{"kind":"missing"}
166 "trailing":[{"kind":"whitespace","text":" ","offset":24,"width":1}],
174 "kind":"type_parameter",
175 "type_attribute_spec":{"kind":"missing"},
176 "type_reified":{"kind":"missing"},
205 "type_constraints":{"kind":"missing"}
217 "trailing":[{"kind":"whitespace","text":" ","offset":29,"width":1}],
225 "kind":"type_parameter",
226 "type_attribute_spec":{"kind":"missing"},
237 "trailing":[{"kind":"whitespace","text":" ","offset":35,"width":1}],
241 "type_variance":{"kind":"missing"},
256 "type_constraints":{"kind":"missing"}
258 "list_separator":{"kind":"missing"}
262 "type_parameters_right_angle":{
277 "classish_extends_keyword":{"kind":"missing"},
278 "classish_extends_list":{"kind":"missing"},
279 "classish_implements_keyword":{"kind":"missing"},
280 "classish_implements_list":{"kind":"missing"},
281 "classish_where_clause":{"kind":"missing"},
283 "kind":"classish_body",
284 "classish_body_left_brace":{
298 "classish_body_elements":{"kind":"missing"},
299 "classish_body_right_brace":{
309 "trailing":[{"kind":"end_of_line","text":"\n","offset":41,"width":1}],
316 "kind":"function_declaration",
317 "function_attribute_spec":{"kind":"missing"},
318 "function_declaration_header":{
319 "kind":"function_declaration_header",
320 "function_modifiers":{"kind":"missing"},
330 "leading":[{"kind":"end_of_line","text":"\n","offset":42,"width":1}],
331 "trailing":[{"kind":"whitespace","text":" ","offset":51,"width":1}],
349 "function_type_parameter_list":{
350 "kind":"type_parameters",
351 "type_parameters_left_angle":{
365 "type_parameters_parameters":{
371 "kind":"type_parameter",
372 "type_attribute_spec":{"kind":"missing"},
383 "trailing":[{"kind":"whitespace","text":" ","offset":59,"width":1}],
387 "type_variance":{"kind":"missing"},
402 "type_constraints":{"kind":"missing"}
414 "trailing":[{"kind":"whitespace","text":" ","offset":63,"width":1}],
422 "kind":"type_parameter",
423 "type_attribute_spec":{"kind":"missing"},
424 "type_reified":{"kind":"missing"},
425 "type_variance":{"kind":"missing"},
440 "type_constraints":{"kind":"missing"}
452 "trailing":[{"kind":"whitespace","text":" ","offset":67,"width":1}],
460 "kind":"type_parameter",
461 "type_attribute_spec":{"kind":"missing"},
472 "trailing":[{"kind":"whitespace","text":" ","offset":73,"width":1}],
476 "type_variance":{"kind":"missing"},
491 "type_constraints":{"kind":"missing"}
493 "list_separator":{"kind":"missing"}
497 "type_parameters_right_angle":{
512 "function_left_paren":{
526 "function_parameter_list":{
532 "kind":"parameter_declaration",
533 "parameter_attribute":{"kind":"missing"},
534 "parameter_visibility":{"kind":"missing"},
535 "parameter_call_convention":{"kind":"missing"},
537 "kind":"simple_type_specifier",
538 "simple_type_specifier":{
548 "trailing":[{"kind":"whitespace","text":" ","offset":81,"width":1}],
567 "parameter_default_value":{"kind":"missing"}
569 "list_separator":{"kind":"missing"}
573 "function_right_paren":{
583 "trailing":[{"kind":"whitespace","text":" ","offset":85,"width":1}],
587 "function_colon":{"kind":"missing"},
588 "function_type":{"kind":"missing"},
589 "function_where_clause":{"kind":"missing"}
592 "kind":"compound_statement",
593 "compound_left_brace":{
607 "compound_statements":{"kind":"missing"},
608 "compound_right_brace":{
618 "trailing":[{"kind":"end_of_line","text":"\n","offset":88,"width":1}],
625 "kind":"expression_statement",
626 "expression_statement_expression":{
627 "kind":"function_call_expression",
628 "function_call_receiver":{
637 "leading":[{"kind":"end_of_line","text":"\n","offset":89,"width":1}],
642 "function_call_type_args":{
643 "kind":"type_arguments",
644 "type_arguments_left_angle":{
658 "type_arguments_types":{
664 "kind":"reified_type_argument",
665 "reified_type_argument_reified":{
675 "trailing":[{"kind":"whitespace","text":" ","offset":97,"width":1}],
679 "reified_type_argument_type":{
680 "kind":"simple_type_specifier",
681 "simple_type_specifier":{
707 "trailing":[{"kind":"whitespace","text":" ","offset":102,"width":1}],
715 "kind":"simple_type_specifier",
716 "simple_type_specifier":{
741 "trailing":[{"kind":"whitespace","text":" ","offset":110,"width":1}],
749 "kind":"reified_type_argument",
750 "reified_type_argument_reified":{
760 "trailing":[{"kind":"whitespace","text":" ","offset":116,"width":1}],
764 "reified_type_argument_type":{
765 "kind":"simple_type_specifier",
766 "simple_type_specifier":{
782 "list_separator":{"kind":"missing"}
786 "type_arguments_right_angle":{
801 "function_call_left_paren":{
815 "function_call_argument_list":{
822 "literal_expression":{
825 "kind":"decimal_literal",
837 "list_separator":{"kind":"missing"}
841 "function_call_right_paren":{
856 "expression_statement_semicolon":{
866 "trailing":[{"kind":"end_of_line","text":"\n","offset":126,"width":1}],
872 "kind":"expression_statement",
873 "expression_statement_expression":{
874 "kind":"object_creation_expression",
875 "object_creation_new_keyword":{
884 "leading":[{"kind":"end_of_line","text":"\n","offset":127,"width":1}],
885 "trailing":[{"kind":"whitespace","text":" ","offset":131,"width":1}],
889 "object_creation_object":{
890 "kind":"constructor_call",
891 "constructor_call_type":{
892 "kind":"generic_type_specifier",
893 "generic_class_type":{
907 "generic_argument_list":{
908 "kind":"type_arguments",
909 "type_arguments_left_angle":{
923 "type_arguments_types":{
929 "kind":"reified_type_argument",
930 "reified_type_argument_reified":{
940 "trailing":[{"kind":"whitespace","text":" ","offset":139,"width":1}],
944 "reified_type_argument_type":{
945 "kind":"simple_type_specifier",
946 "simple_type_specifier":{
972 "trailing":[{"kind":"whitespace","text":" ","offset":144,"width":1}],
980 "kind":"simple_type_specifier",
981 "simple_type_specifier":{
1006 "trailing":[{"kind":"whitespace","text":" ","offset":152,"width":1}],
1014 "kind":"reified_type_argument",
1015 "reified_type_argument_reified":{
1025 "trailing":[{"kind":"whitespace","text":" ","offset":158,"width":1}],
1029 "reified_type_argument_type":{
1030 "kind":"simple_type_specifier",
1031 "simple_type_specifier":{
1047 "list_separator":{"kind":"missing"}
1051 "type_arguments_right_angle":{
1067 "constructor_call_left_paren":{
1081 "constructor_call_argument_list":{"kind":"missing"},
1082 "constructor_call_right_paren":{
1098 "expression_statement_semicolon":{
1108 "trailing":[{"kind":"end_of_line","text":"\n","offset":167,"width":1}],
1114 "kind":"end_of_file",
1115 "end_of_file_token":{
1118 "kind":"end_of_file",
1133 "program_text":"<?hh\n\nclass C<reify +T1, -T2, reify T3>{}\n\nfunction f<reify T1, T2, reify T3>(int $x) {}\n\nf<reify int, string, reify bool>(1);\n\nnew C<reify int, string, reify bool>();\n",
1134 "version":"2020-04-14-0002"