Delete provisional syntax for capabilities
[hiphop-php.git] / hphp / hack / test / full_fidelity / cases / test_errors_dynamic_method_call.php.json.exp
blob34262f0f532a39498b2446d04662d1ec878d1d63
2 "parse_tree":{
3 "kind":"script",
4 "script_declarations":{
5 "kind":"list",
6 "elements":[
8 "kind":"markup_section",
9 "markup_hashbang":{
10 "kind":"token",
11 "token":{
12 "kind":"hashbang",
13 "text":"",
14 "offset":0,
15 "leading_width":0,
16 "width":0,
17 "trailing_width":0,
18 "leading":[],
19 "trailing":[],
20 "line_number":1
23 "markup_suffix":{
24 "kind":"markup_suffix",
25 "markup_suffix_less_than_question":{
26 "kind":"token",
27 "token":{
28 "kind":"<?",
29 "text":"<?",
30 "offset":0,
31 "leading_width":0,
32 "width":2,
33 "trailing_width":0,
34 "leading":[],
35 "trailing":[],
36 "line_number":1
39 "markup_suffix_name":{
40 "kind":"token",
41 "token":{
42 "kind":"name",
43 "text":"hh",
44 "offset":2,
45 "leading_width":0,
46 "width":2,
47 "trailing_width":1,
48 "leading":[],
49 "trailing":[{"kind":"end_of_line","text":"\n","offset":4,"width":1}],
50 "line_number":1
56 "kind":"classish_declaration",
57 "classish_attribute":{"kind":"missing"},
58 "classish_modifiers":{"kind":"missing"},
59 "classish_xhp":{"kind":"missing"},
60 "classish_keyword":{
61 "kind":"token",
62 "token":{
63 "kind":"class",
64 "text":"class",
65 "offset":5,
66 "leading_width":1,
67 "width":5,
68 "trailing_width":1,
69 "leading":[{"kind":"end_of_line","text":"\n","offset":5,"width":1}],
70 "trailing":[{"kind":"whitespace","text":" ","offset":11,"width":1}],
71 "line_number":3
74 "classish_name":{
75 "kind":"token",
76 "token":{
77 "kind":"name",
78 "text":"C",
79 "offset":12,
80 "leading_width":0,
81 "width":1,
82 "trailing_width":1,
83 "leading":[],
84 "trailing":[{"kind":"whitespace","text":" ","offset":13,"width":1}],
85 "line_number":3
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"},
94 "classish_body":{
95 "kind":"classish_body",
96 "classish_body_left_brace":{
97 "kind":"token",
98 "token":{
99 "kind":"{",
100 "text":"{",
101 "offset":14,
102 "leading_width":0,
103 "width":1,
104 "trailing_width":1,
105 "leading":[],
106 "trailing":[{"kind":"end_of_line","text":"\n","offset":15,"width":1}],
107 "line_number":3
110 "classish_body_elements":{
111 "kind":"list",
112 "elements":[
114 "kind":"methodish_declaration",
115 "methodish_attribute":{"kind":"missing"},
116 "methodish_function_decl_header":{
117 "kind":"function_declaration_header",
118 "function_modifiers":{
119 "kind":"list",
120 "elements":[
122 "kind":"token",
123 "token":{
124 "kind":"public",
125 "text":"public",
126 "offset":16,
127 "leading_width":2,
128 "width":6,
129 "trailing_width":1,
130 "leading":[{"kind":"whitespace","text":" ","offset":16,"width":2}],
131 "trailing":[{"kind":"whitespace","text":" ","offset":24,"width":1}],
132 "line_number":4
137 "function_keyword":{
138 "kind":"token",
139 "token":{
140 "kind":"function",
141 "text":"function",
142 "offset":25,
143 "leading_width":0,
144 "width":8,
145 "trailing_width":1,
146 "leading":[],
147 "trailing":[{"kind":"whitespace","text":" ","offset":33,"width":1}],
148 "line_number":4
151 "function_name":{
152 "kind":"token",
153 "token":{
154 "kind":"name",
155 "text":"f",
156 "offset":34,
157 "leading_width":0,
158 "width":1,
159 "trailing_width":0,
160 "leading":[],
161 "trailing":[],
162 "line_number":4
165 "function_type_parameter_list":{
166 "kind":"type_parameters",
167 "type_parameters_left_angle":{
168 "kind":"token",
169 "token":{
170 "kind":"<",
171 "text":"<",
172 "offset":35,
173 "leading_width":0,
174 "width":1,
175 "trailing_width":0,
176 "leading":[],
177 "trailing":[],
178 "line_number":4
181 "type_parameters_parameters":{
182 "kind":"list",
183 "elements":[
185 "kind":"list_item",
186 "list_item":{
187 "kind":"type_parameter",
188 "type_attribute_spec":{"kind":"missing"},
189 "type_reified":{"kind":"missing"},
190 "type_variance":{"kind":"missing"},
191 "type_name":{
192 "kind":"token",
193 "token":{
194 "kind":"name",
195 "text":"T",
196 "offset":36,
197 "leading_width":0,
198 "width":1,
199 "trailing_width":0,
200 "leading":[],
201 "trailing":[],
202 "line_number":4
205 "type_param_params":{"kind":"missing"},
206 "type_constraints":{"kind":"missing"}
208 "list_separator":{"kind":"missing"}
212 "type_parameters_right_angle":{
213 "kind":"token",
214 "token":{
215 "kind":">",
216 "text":">",
217 "offset":37,
218 "leading_width":0,
219 "width":1,
220 "trailing_width":0,
221 "leading":[],
222 "trailing":[],
223 "line_number":4
227 "function_left_paren":{
228 "kind":"token",
229 "token":{
230 "kind":"(",
231 "text":"(",
232 "offset":38,
233 "leading_width":0,
234 "width":1,
235 "trailing_width":0,
236 "leading":[],
237 "trailing":[],
238 "line_number":4
241 "function_parameter_list":{"kind":"missing"},
242 "function_right_paren":{
243 "kind":"token",
244 "token":{
245 "kind":")",
246 "text":")",
247 "offset":39,
248 "leading_width":0,
249 "width":1,
250 "trailing_width":1,
251 "leading":[],
252 "trailing":[{"kind":"whitespace","text":" ","offset":40,"width":1}],
253 "line_number":4
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":{
264 "kind":"token",
265 "token":{
266 "kind":"{",
267 "text":"{",
268 "offset":41,
269 "leading_width":0,
270 "width":1,
271 "trailing_width":0,
272 "leading":[],
273 "trailing":[],
274 "line_number":4
277 "compound_statements":{"kind":"missing"},
278 "compound_right_brace":{
279 "kind":"token",
280 "token":{
281 "kind":"}",
282 "text":"}",
283 "offset":42,
284 "leading_width":0,
285 "width":1,
286 "trailing_width":1,
287 "leading":[],
288 "trailing":[{"kind":"end_of_line","text":"\n","offset":43,"width":1}],
289 "line_number":4
293 "methodish_semicolon":{"kind":"missing"}
297 "classish_body_right_brace":{
298 "kind":"token",
299 "token":{
300 "kind":"}",
301 "text":"}",
302 "offset":44,
303 "leading_width":0,
304 "width":1,
305 "trailing_width":1,
306 "leading":[],
307 "trailing":[{"kind":"end_of_line","text":"\n","offset":45,"width":1}],
308 "line_number":5
314 "kind":"classish_declaration",
315 "classish_attribute":{"kind":"missing"},
316 "classish_modifiers":{"kind":"missing"},
317 "classish_xhp":{"kind":"missing"},
318 "classish_keyword":{
319 "kind":"token",
320 "token":{
321 "kind":"class",
322 "text":"class",
323 "offset":46,
324 "leading_width":0,
325 "width":5,
326 "trailing_width":1,
327 "leading":[],
328 "trailing":[{"kind":"whitespace","text":" ","offset":51,"width":1}],
329 "line_number":6
332 "classish_name":{
333 "kind":"token",
334 "token":{
335 "kind":"name",
336 "text":"D",
337 "offset":52,
338 "leading_width":0,
339 "width":1,
340 "trailing_width":1,
341 "leading":[],
342 "trailing":[{"kind":"whitespace","text":" ","offset":53,"width":1}],
343 "line_number":6
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"},
352 "classish_body":{
353 "kind":"classish_body",
354 "classish_body_left_brace":{
355 "kind":"token",
356 "token":{
357 "kind":"{",
358 "text":"{",
359 "offset":54,
360 "leading_width":0,
361 "width":1,
362 "trailing_width":1,
363 "leading":[],
364 "trailing":[{"kind":"end_of_line","text":"\n","offset":55,"width":1}],
365 "line_number":6
368 "classish_body_elements":{
369 "kind":"list",
370 "elements":[
372 "kind":"methodish_declaration",
373 "methodish_attribute":{"kind":"missing"},
374 "methodish_function_decl_header":{
375 "kind":"function_declaration_header",
376 "function_modifiers":{
377 "kind":"list",
378 "elements":[
380 "kind":"token",
381 "token":{
382 "kind":"public",
383 "text":"public",
384 "offset":56,
385 "leading_width":2,
386 "width":6,
387 "trailing_width":1,
388 "leading":[{"kind":"whitespace","text":" ","offset":56,"width":2}],
389 "trailing":[{"kind":"whitespace","text":" ","offset":64,"width":1}],
390 "line_number":7
394 "kind":"token",
395 "token":{
396 "kind":"static",
397 "text":"static",
398 "offset":65,
399 "leading_width":0,
400 "width":6,
401 "trailing_width":1,
402 "leading":[],
403 "trailing":[{"kind":"whitespace","text":" ","offset":71,"width":1}],
404 "line_number":7
409 "function_keyword":{
410 "kind":"token",
411 "token":{
412 "kind":"function",
413 "text":"function",
414 "offset":72,
415 "leading_width":0,
416 "width":8,
417 "trailing_width":1,
418 "leading":[],
419 "trailing":[{"kind":"whitespace","text":" ","offset":80,"width":1}],
420 "line_number":7
423 "function_name":{
424 "kind":"token",
425 "token":{
426 "kind":"name",
427 "text":"f",
428 "offset":81,
429 "leading_width":0,
430 "width":1,
431 "trailing_width":0,
432 "leading":[],
433 "trailing":[],
434 "line_number":7
437 "function_type_parameter_list":{
438 "kind":"type_parameters",
439 "type_parameters_left_angle":{
440 "kind":"token",
441 "token":{
442 "kind":"<",
443 "text":"<",
444 "offset":82,
445 "leading_width":0,
446 "width":1,
447 "trailing_width":0,
448 "leading":[],
449 "trailing":[],
450 "line_number":7
453 "type_parameters_parameters":{
454 "kind":"list",
455 "elements":[
457 "kind":"list_item",
458 "list_item":{
459 "kind":"type_parameter",
460 "type_attribute_spec":{"kind":"missing"},
461 "type_reified":{"kind":"missing"},
462 "type_variance":{"kind":"missing"},
463 "type_name":{
464 "kind":"token",
465 "token":{
466 "kind":"name",
467 "text":"T",
468 "offset":83,
469 "leading_width":0,
470 "width":1,
471 "trailing_width":0,
472 "leading":[],
473 "trailing":[],
474 "line_number":7
477 "type_param_params":{"kind":"missing"},
478 "type_constraints":{"kind":"missing"}
480 "list_separator":{"kind":"missing"}
484 "type_parameters_right_angle":{
485 "kind":"token",
486 "token":{
487 "kind":">",
488 "text":">",
489 "offset":84,
490 "leading_width":0,
491 "width":1,
492 "trailing_width":0,
493 "leading":[],
494 "trailing":[],
495 "line_number":7
499 "function_left_paren":{
500 "kind":"token",
501 "token":{
502 "kind":"(",
503 "text":"(",
504 "offset":85,
505 "leading_width":0,
506 "width":1,
507 "trailing_width":0,
508 "leading":[],
509 "trailing":[],
510 "line_number":7
513 "function_parameter_list":{"kind":"missing"},
514 "function_right_paren":{
515 "kind":"token",
516 "token":{
517 "kind":")",
518 "text":")",
519 "offset":86,
520 "leading_width":0,
521 "width":1,
522 "trailing_width":1,
523 "leading":[],
524 "trailing":[{"kind":"whitespace","text":" ","offset":87,"width":1}],
525 "line_number":7
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":{
536 "kind":"token",
537 "token":{
538 "kind":"{",
539 "text":"{",
540 "offset":88,
541 "leading_width":0,
542 "width":1,
543 "trailing_width":0,
544 "leading":[],
545 "trailing":[],
546 "line_number":7
549 "compound_statements":{"kind":"missing"},
550 "compound_right_brace":{
551 "kind":"token",
552 "token":{
553 "kind":"}",
554 "text":"}",
555 "offset":89,
556 "leading_width":0,
557 "width":1,
558 "trailing_width":1,
559 "leading":[],
560 "trailing":[{"kind":"end_of_line","text":"\n","offset":90,"width":1}],
561 "line_number":7
565 "methodish_semicolon":{"kind":"missing"}
569 "classish_body_right_brace":{
570 "kind":"token",
571 "token":{
572 "kind":"}",
573 "text":"}",
574 "offset":91,
575 "leading_width":0,
576 "width":1,
577 "trailing_width":1,
578 "leading":[],
579 "trailing":[{"kind":"end_of_line","text":"\n","offset":92,"width":1}],
580 "line_number":8
586 "kind":"expression_statement",
587 "expression_statement_expression":{
588 "kind":"binary_expression",
589 "binary_left_operand":{
590 "kind":"variable",
591 "variable_expression":{
592 "kind":"token",
593 "token":{
594 "kind":"variable",
595 "text":"$x",
596 "offset":93,
597 "leading_width":1,
598 "width":2,
599 "trailing_width":1,
600 "leading":[{"kind":"end_of_line","text":"\n","offset":93,"width":1}],
601 "trailing":[{"kind":"whitespace","text":" ","offset":96,"width":1}],
602 "line_number":10
606 "binary_operator":{
607 "kind":"token",
608 "token":{
609 "kind":"=",
610 "text":"=",
611 "offset":97,
612 "leading_width":0,
613 "width":1,
614 "trailing_width":1,
615 "leading":[],
616 "trailing":[{"kind":"whitespace","text":" ","offset":98,"width":1}],
617 "line_number":10
620 "binary_right_operand":{
621 "kind":"literal",
622 "literal_expression":{
623 "kind":"token",
624 "token":{
625 "kind":"single_quoted_string_literal",
626 "text":"'f'",
627 "offset":99,
628 "leading_width":0,
629 "width":3,
630 "trailing_width":0,
631 "leading":[],
632 "trailing":[],
633 "line_number":10
638 "expression_statement_semicolon":{
639 "kind":"token",
640 "token":{
641 "kind":";",
642 "text":";",
643 "offset":102,
644 "leading_width":0,
645 "width":1,
646 "trailing_width":1,
647 "leading":[],
648 "trailing":[{"kind":"end_of_line","text":"\n","offset":103,"width":1}],
649 "line_number":10
654 "kind":"expression_statement",
655 "expression_statement_expression":{
656 "kind":"binary_expression",
657 "binary_left_operand":{
658 "kind":"variable",
659 "variable_expression":{
660 "kind":"token",
661 "token":{
662 "kind":"variable",
663 "text":"$c",
664 "offset":104,
665 "leading_width":0,
666 "width":2,
667 "trailing_width":1,
668 "leading":[],
669 "trailing":[{"kind":"whitespace","text":" ","offset":106,"width":1}],
670 "line_number":11
674 "binary_operator":{
675 "kind":"token",
676 "token":{
677 "kind":"=",
678 "text":"=",
679 "offset":107,
680 "leading_width":0,
681 "width":1,
682 "trailing_width":1,
683 "leading":[],
684 "trailing":[{"kind":"whitespace","text":" ","offset":108,"width":1}],
685 "line_number":11
688 "binary_right_operand":{
689 "kind":"object_creation_expression",
690 "object_creation_new_keyword":{
691 "kind":"token",
692 "token":{
693 "kind":"new",
694 "text":"new",
695 "offset":109,
696 "leading_width":0,
697 "width":3,
698 "trailing_width":1,
699 "leading":[],
700 "trailing":[{"kind":"whitespace","text":" ","offset":112,"width":1}],
701 "line_number":11
704 "object_creation_object":{
705 "kind":"constructor_call",
706 "constructor_call_type":{
707 "kind":"simple_type_specifier",
708 "simple_type_specifier":{
709 "kind":"token",
710 "token":{
711 "kind":"name",
712 "text":"C",
713 "offset":113,
714 "leading_width":0,
715 "width":1,
716 "trailing_width":0,
717 "leading":[],
718 "trailing":[],
719 "line_number":11
723 "constructor_call_left_paren":{
724 "kind":"token",
725 "token":{
726 "kind":"(",
727 "text":"(",
728 "offset":114,
729 "leading_width":0,
730 "width":1,
731 "trailing_width":0,
732 "leading":[],
733 "trailing":[],
734 "line_number":11
737 "constructor_call_argument_list":{"kind":"missing"},
738 "constructor_call_right_paren":{
739 "kind":"token",
740 "token":{
741 "kind":")",
742 "text":")",
743 "offset":115,
744 "leading_width":0,
745 "width":1,
746 "trailing_width":0,
747 "leading":[],
748 "trailing":[],
749 "line_number":11
755 "expression_statement_semicolon":{
756 "kind":"token",
757 "token":{
758 "kind":";",
759 "text":";",
760 "offset":116,
761 "leading_width":0,
762 "width":1,
763 "trailing_width":1,
764 "leading":[],
765 "trailing":[{"kind":"end_of_line","text":"\n","offset":117,"width":1}],
766 "line_number":11
771 "kind":"expression_statement",
772 "expression_statement_expression":{
773 "kind":"function_call_expression",
774 "function_call_receiver":{
775 "kind":"member_selection_expression",
776 "member_object":{
777 "kind":"variable",
778 "variable_expression":{
779 "kind":"token",
780 "token":{
781 "kind":"variable",
782 "text":"$c",
783 "offset":118,
784 "leading_width":1,
785 "width":2,
786 "trailing_width":0,
787 "leading":[{"kind":"end_of_line","text":"\n","offset":118,"width":1}],
788 "trailing":[],
789 "line_number":13
793 "member_operator":{
794 "kind":"token",
795 "token":{
796 "kind":"->",
797 "text":"->",
798 "offset":121,
799 "leading_width":0,
800 "width":2,
801 "trailing_width":0,
802 "leading":[],
803 "trailing":[],
804 "line_number":13
807 "member_name":{
808 "kind":"token",
809 "token":{
810 "kind":"name",
811 "text":"f",
812 "offset":123,
813 "leading_width":0,
814 "width":1,
815 "trailing_width":0,
816 "leading":[],
817 "trailing":[],
818 "line_number":13
822 "function_call_type_args":{
823 "kind":"type_arguments",
824 "type_arguments_left_angle":{
825 "kind":"token",
826 "token":{
827 "kind":"<",
828 "text":"<",
829 "offset":124,
830 "leading_width":0,
831 "width":1,
832 "trailing_width":0,
833 "leading":[],
834 "trailing":[],
835 "line_number":13
838 "type_arguments_types":{
839 "kind":"list",
840 "elements":[
842 "kind":"list_item",
843 "list_item":{
844 "kind":"simple_type_specifier",
845 "simple_type_specifier":{
846 "kind":"token",
847 "token":{
848 "kind":"int",
849 "text":"int",
850 "offset":125,
851 "leading_width":0,
852 "width":3,
853 "trailing_width":0,
854 "leading":[],
855 "trailing":[],
856 "line_number":13
860 "list_separator":{"kind":"missing"}
864 "type_arguments_right_angle":{
865 "kind":"token",
866 "token":{
867 "kind":">",
868 "text":">",
869 "offset":128,
870 "leading_width":0,
871 "width":1,
872 "trailing_width":0,
873 "leading":[],
874 "trailing":[],
875 "line_number":13
879 "function_call_left_paren":{
880 "kind":"token",
881 "token":{
882 "kind":"(",
883 "text":"(",
884 "offset":129,
885 "leading_width":0,
886 "width":1,
887 "trailing_width":0,
888 "leading":[],
889 "trailing":[],
890 "line_number":13
893 "function_call_argument_list":{"kind":"missing"},
894 "function_call_right_paren":{
895 "kind":"token",
896 "token":{
897 "kind":")",
898 "text":")",
899 "offset":130,
900 "leading_width":0,
901 "width":1,
902 "trailing_width":0,
903 "leading":[],
904 "trailing":[],
905 "line_number":13
909 "expression_statement_semicolon":{
910 "kind":"token",
911 "token":{
912 "kind":";",
913 "text":";",
914 "offset":131,
915 "leading_width":0,
916 "width":1,
917 "trailing_width":8,
918 "leading":[],
919 "trailing":[
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}
924 "line_number":13
929 "kind":"expression_statement",
930 "expression_statement_expression":{
931 "kind":"function_call_expression",
932 "function_call_receiver":{
933 "kind":"member_selection_expression",
934 "member_object":{
935 "kind":"variable",
936 "variable_expression":{
937 "kind":"token",
938 "token":{
939 "kind":"variable",
940 "text":"$c",
941 "offset":140,
942 "leading_width":0,
943 "width":2,
944 "trailing_width":0,
945 "leading":[],
946 "trailing":[],
947 "line_number":14
951 "member_operator":{
952 "kind":"token",
953 "token":{
954 "kind":"->",
955 "text":"->",
956 "offset":142,
957 "leading_width":0,
958 "width":2,
959 "trailing_width":0,
960 "leading":[],
961 "trailing":[],
962 "line_number":14
965 "member_name":{
966 "kind":"token",
967 "token":{
968 "kind":"variable",
969 "text":"$x",
970 "offset":144,
971 "leading_width":0,
972 "width":2,
973 "trailing_width":0,
974 "leading":[],
975 "trailing":[],
976 "line_number":14
980 "function_call_type_args":{
981 "kind":"type_arguments",
982 "type_arguments_left_angle":{
983 "kind":"token",
984 "token":{
985 "kind":"<",
986 "text":"<",
987 "offset":146,
988 "leading_width":0,
989 "width":1,
990 "trailing_width":0,
991 "leading":[],
992 "trailing":[],
993 "line_number":14
996 "type_arguments_types":{
997 "kind":"list",
998 "elements":[
1000 "kind":"list_item",
1001 "list_item":{
1002 "kind":"simple_type_specifier",
1003 "simple_type_specifier":{
1004 "kind":"token",
1005 "token":{
1006 "kind":"int",
1007 "text":"int",
1008 "offset":147,
1009 "leading_width":0,
1010 "width":3,
1011 "trailing_width":0,
1012 "leading":[],
1013 "trailing":[],
1014 "line_number":14
1018 "list_separator":{"kind":"missing"}
1022 "type_arguments_right_angle":{
1023 "kind":"token",
1024 "token":{
1025 "kind":">",
1026 "text":">",
1027 "offset":150,
1028 "leading_width":0,
1029 "width":1,
1030 "trailing_width":0,
1031 "leading":[],
1032 "trailing":[],
1033 "line_number":14
1037 "function_call_left_paren":{
1038 "kind":"token",
1039 "token":{
1040 "kind":"(",
1041 "text":"(",
1042 "offset":151,
1043 "leading_width":0,
1044 "width":1,
1045 "trailing_width":0,
1046 "leading":[],
1047 "trailing":[],
1048 "line_number":14
1051 "function_call_argument_list":{"kind":"missing"},
1052 "function_call_right_paren":{
1053 "kind":"token",
1054 "token":{
1055 "kind":")",
1056 "text":")",
1057 "offset":152,
1058 "leading_width":0,
1059 "width":1,
1060 "trailing_width":0,
1061 "leading":[],
1062 "trailing":[],
1063 "line_number":14
1067 "expression_statement_semicolon":{
1068 "kind":"token",
1069 "token":{
1070 "kind":";",
1071 "text":";",
1072 "offset":153,
1073 "leading_width":0,
1074 "width":1,
1075 "trailing_width":16,
1076 "leading":[],
1077 "trailing":[
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}
1082 "line_number":14
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":{
1093 "kind":"variable",
1094 "variable_expression":{
1095 "kind":"token",
1096 "token":{
1097 "kind":"variable",
1098 "text":"$c",
1099 "offset":170,
1100 "leading_width":1,
1101 "width":2,
1102 "trailing_width":0,
1103 "leading":[{"kind":"end_of_line","text":"\n","offset":170,"width":1}],
1104 "trailing":[],
1105 "line_number":16
1109 "safe_member_operator":{
1110 "kind":"token",
1111 "token":{
1112 "kind":"?->",
1113 "text":"?->",
1114 "offset":173,
1115 "leading_width":0,
1116 "width":3,
1117 "trailing_width":0,
1118 "leading":[],
1119 "trailing":[],
1120 "line_number":16
1123 "safe_member_name":{
1124 "kind":"token",
1125 "token":{
1126 "kind":"name",
1127 "text":"f",
1128 "offset":176,
1129 "leading_width":0,
1130 "width":1,
1131 "trailing_width":0,
1132 "leading":[],
1133 "trailing":[],
1134 "line_number":16
1138 "function_call_type_args":{
1139 "kind":"type_arguments",
1140 "type_arguments_left_angle":{
1141 "kind":"token",
1142 "token":{
1143 "kind":"<",
1144 "text":"<",
1145 "offset":177,
1146 "leading_width":0,
1147 "width":1,
1148 "trailing_width":0,
1149 "leading":[],
1150 "trailing":[],
1151 "line_number":16
1154 "type_arguments_types":{
1155 "kind":"list",
1156 "elements":[
1158 "kind":"list_item",
1159 "list_item":{
1160 "kind":"simple_type_specifier",
1161 "simple_type_specifier":{
1162 "kind":"token",
1163 "token":{
1164 "kind":"int",
1165 "text":"int",
1166 "offset":178,
1167 "leading_width":0,
1168 "width":3,
1169 "trailing_width":0,
1170 "leading":[],
1171 "trailing":[],
1172 "line_number":16
1176 "list_separator":{"kind":"missing"}
1180 "type_arguments_right_angle":{
1181 "kind":"token",
1182 "token":{
1183 "kind":">",
1184 "text":">",
1185 "offset":181,
1186 "leading_width":0,
1187 "width":1,
1188 "trailing_width":0,
1189 "leading":[],
1190 "trailing":[],
1191 "line_number":16
1195 "function_call_left_paren":{
1196 "kind":"token",
1197 "token":{
1198 "kind":"(",
1199 "text":"(",
1200 "offset":182,
1201 "leading_width":0,
1202 "width":1,
1203 "trailing_width":0,
1204 "leading":[],
1205 "trailing":[],
1206 "line_number":16
1209 "function_call_argument_list":{"kind":"missing"},
1210 "function_call_right_paren":{
1211 "kind":"token",
1212 "token":{
1213 "kind":")",
1214 "text":")",
1215 "offset":183,
1216 "leading_width":0,
1217 "width":1,
1218 "trailing_width":0,
1219 "leading":[],
1220 "trailing":[],
1221 "line_number":16
1225 "expression_statement_semicolon":{
1226 "kind":"token",
1227 "token":{
1228 "kind":";",
1229 "text":";",
1230 "offset":184,
1231 "leading_width":0,
1232 "width":1,
1233 "trailing_width":7,
1234 "leading":[],
1235 "trailing":[
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}
1240 "line_number":16
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":{
1251 "kind":"variable",
1252 "variable_expression":{
1253 "kind":"token",
1254 "token":{
1255 "kind":"variable",
1256 "text":"$c",
1257 "offset":192,
1258 "leading_width":0,
1259 "width":2,
1260 "trailing_width":0,
1261 "leading":[],
1262 "trailing":[],
1263 "line_number":17
1267 "safe_member_operator":{
1268 "kind":"token",
1269 "token":{
1270 "kind":"?->",
1271 "text":"?->",
1272 "offset":194,
1273 "leading_width":0,
1274 "width":3,
1275 "trailing_width":0,
1276 "leading":[],
1277 "trailing":[],
1278 "line_number":17
1281 "safe_member_name":{
1282 "kind":"token",
1283 "token":{
1284 "kind":"variable",
1285 "text":"$x",
1286 "offset":197,
1287 "leading_width":0,
1288 "width":2,
1289 "trailing_width":0,
1290 "leading":[],
1291 "trailing":[],
1292 "line_number":17
1296 "function_call_type_args":{
1297 "kind":"type_arguments",
1298 "type_arguments_left_angle":{
1299 "kind":"token",
1300 "token":{
1301 "kind":"<",
1302 "text":"<",
1303 "offset":199,
1304 "leading_width":0,
1305 "width":1,
1306 "trailing_width":0,
1307 "leading":[],
1308 "trailing":[],
1309 "line_number":17
1312 "type_arguments_types":{
1313 "kind":"list",
1314 "elements":[
1316 "kind":"list_item",
1317 "list_item":{
1318 "kind":"simple_type_specifier",
1319 "simple_type_specifier":{
1320 "kind":"token",
1321 "token":{
1322 "kind":"int",
1323 "text":"int",
1324 "offset":200,
1325 "leading_width":0,
1326 "width":3,
1327 "trailing_width":0,
1328 "leading":[],
1329 "trailing":[],
1330 "line_number":17
1334 "list_separator":{"kind":"missing"}
1338 "type_arguments_right_angle":{
1339 "kind":"token",
1340 "token":{
1341 "kind":">",
1342 "text":">",
1343 "offset":203,
1344 "leading_width":0,
1345 "width":1,
1346 "trailing_width":0,
1347 "leading":[],
1348 "trailing":[],
1349 "line_number":17
1353 "function_call_left_paren":{
1354 "kind":"token",
1355 "token":{
1356 "kind":"(",
1357 "text":"(",
1358 "offset":204,
1359 "leading_width":0,
1360 "width":1,
1361 "trailing_width":0,
1362 "leading":[],
1363 "trailing":[],
1364 "line_number":17
1367 "function_call_argument_list":{"kind":"missing"},
1368 "function_call_right_paren":{
1369 "kind":"token",
1370 "token":{
1371 "kind":")",
1372 "text":")",
1373 "offset":205,
1374 "leading_width":0,
1375 "width":1,
1376 "trailing_width":0,
1377 "leading":[],
1378 "trailing":[],
1379 "line_number":17
1383 "expression_statement_semicolon":{
1384 "kind":"token",
1385 "token":{
1386 "kind":";",
1387 "text":";",
1388 "offset":206,
1389 "leading_width":0,
1390 "width":1,
1391 "trailing_width":17,
1392 "leading":[],
1393 "trailing":[
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}
1398 "line_number":17
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":{
1409 "kind":"token",
1410 "token":{
1411 "kind":"name",
1412 "text":"D",
1413 "offset":224,
1414 "leading_width":1,
1415 "width":1,
1416 "trailing_width":0,
1417 "leading":[{"kind":"end_of_line","text":"\n","offset":224,"width":1}],
1418 "trailing":[],
1419 "line_number":19
1422 "scope_resolution_operator":{
1423 "kind":"token",
1424 "token":{
1425 "kind":"::",
1426 "text":"::",
1427 "offset":226,
1428 "leading_width":0,
1429 "width":2,
1430 "trailing_width":0,
1431 "leading":[],
1432 "trailing":[],
1433 "line_number":19
1436 "scope_resolution_name":{
1437 "kind":"token",
1438 "token":{
1439 "kind":"name",
1440 "text":"f",
1441 "offset":228,
1442 "leading_width":0,
1443 "width":1,
1444 "trailing_width":0,
1445 "leading":[],
1446 "trailing":[],
1447 "line_number":19
1451 "function_call_type_args":{
1452 "kind":"type_arguments",
1453 "type_arguments_left_angle":{
1454 "kind":"token",
1455 "token":{
1456 "kind":"<",
1457 "text":"<",
1458 "offset":229,
1459 "leading_width":0,
1460 "width":1,
1461 "trailing_width":0,
1462 "leading":[],
1463 "trailing":[],
1464 "line_number":19
1467 "type_arguments_types":{
1468 "kind":"list",
1469 "elements":[
1471 "kind":"list_item",
1472 "list_item":{
1473 "kind":"simple_type_specifier",
1474 "simple_type_specifier":{
1475 "kind":"token",
1476 "token":{
1477 "kind":"int",
1478 "text":"int",
1479 "offset":230,
1480 "leading_width":0,
1481 "width":3,
1482 "trailing_width":0,
1483 "leading":[],
1484 "trailing":[],
1485 "line_number":19
1489 "list_separator":{"kind":"missing"}
1493 "type_arguments_right_angle":{
1494 "kind":"token",
1495 "token":{
1496 "kind":">",
1497 "text":">",
1498 "offset":233,
1499 "leading_width":0,
1500 "width":1,
1501 "trailing_width":0,
1502 "leading":[],
1503 "trailing":[],
1504 "line_number":19
1508 "function_call_left_paren":{
1509 "kind":"token",
1510 "token":{
1511 "kind":"(",
1512 "text":"(",
1513 "offset":234,
1514 "leading_width":0,
1515 "width":1,
1516 "trailing_width":0,
1517 "leading":[],
1518 "trailing":[],
1519 "line_number":19
1522 "function_call_argument_list":{"kind":"missing"},
1523 "function_call_right_paren":{
1524 "kind":"token",
1525 "token":{
1526 "kind":")",
1527 "text":")",
1528 "offset":235,
1529 "leading_width":0,
1530 "width":1,
1531 "trailing_width":0,
1532 "leading":[],
1533 "trailing":[],
1534 "line_number":19
1538 "expression_statement_semicolon":{
1539 "kind":"token",
1540 "token":{
1541 "kind":";",
1542 "text":";",
1543 "offset":236,
1544 "leading_width":0,
1545 "width":1,
1546 "trailing_width":9,
1547 "leading":[],
1548 "trailing":[
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}
1553 "line_number":19
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":{
1564 "kind":"token",
1565 "token":{
1566 "kind":"name",
1567 "text":"D",
1568 "offset":246,
1569 "leading_width":0,
1570 "width":1,
1571 "trailing_width":0,
1572 "leading":[],
1573 "trailing":[],
1574 "line_number":20
1577 "scope_resolution_operator":{
1578 "kind":"token",
1579 "token":{
1580 "kind":"::",
1581 "text":"::",
1582 "offset":247,
1583 "leading_width":0,
1584 "width":2,
1585 "trailing_width":0,
1586 "leading":[],
1587 "trailing":[],
1588 "line_number":20
1591 "scope_resolution_name":{
1592 "kind":"token",
1593 "token":{
1594 "kind":"variable",
1595 "text":"$x",
1596 "offset":249,
1597 "leading_width":0,
1598 "width":2,
1599 "trailing_width":0,
1600 "leading":[],
1601 "trailing":[],
1602 "line_number":20
1606 "function_call_type_args":{
1607 "kind":"type_arguments",
1608 "type_arguments_left_angle":{
1609 "kind":"token",
1610 "token":{
1611 "kind":"<",
1612 "text":"<",
1613 "offset":251,
1614 "leading_width":0,
1615 "width":1,
1616 "trailing_width":0,
1617 "leading":[],
1618 "trailing":[],
1619 "line_number":20
1622 "type_arguments_types":{
1623 "kind":"list",
1624 "elements":[
1626 "kind":"list_item",
1627 "list_item":{
1628 "kind":"simple_type_specifier",
1629 "simple_type_specifier":{
1630 "kind":"token",
1631 "token":{
1632 "kind":"int",
1633 "text":"int",
1634 "offset":252,
1635 "leading_width":0,
1636 "width":3,
1637 "trailing_width":0,
1638 "leading":[],
1639 "trailing":[],
1640 "line_number":20
1644 "list_separator":{"kind":"missing"}
1648 "type_arguments_right_angle":{
1649 "kind":"token",
1650 "token":{
1651 "kind":">",
1652 "text":">",
1653 "offset":255,
1654 "leading_width":0,
1655 "width":1,
1656 "trailing_width":0,
1657 "leading":[],
1658 "trailing":[],
1659 "line_number":20
1663 "function_call_left_paren":{
1664 "kind":"token",
1665 "token":{
1666 "kind":"(",
1667 "text":"(",
1668 "offset":256,
1669 "leading_width":0,
1670 "width":1,
1671 "trailing_width":0,
1672 "leading":[],
1673 "trailing":[],
1674 "line_number":20
1677 "function_call_argument_list":{"kind":"missing"},
1678 "function_call_right_paren":{
1679 "kind":"token",
1680 "token":{
1681 "kind":")",
1682 "text":")",
1683 "offset":257,
1684 "leading_width":0,
1685 "width":1,
1686 "trailing_width":0,
1687 "leading":[],
1688 "trailing":[],
1689 "line_number":20
1693 "expression_statement_semicolon":{
1694 "kind":"token",
1695 "token":{
1696 "kind":";",
1697 "text":";",
1698 "offset":258,
1699 "leading_width":0,
1700 "width":1,
1701 "trailing_width":17,
1702 "leading":[],
1703 "trailing":[
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}
1708 "line_number":20
1713 "kind":"end_of_file",
1714 "end_of_file_token":{
1715 "kind":"token",
1716 "token":{
1717 "kind":"end_of_file",
1718 "text":"",
1719 "offset":276,
1720 "leading_width":0,
1721 "width":0,
1722 "trailing_width":0,
1723 "leading":[],
1724 "trailing":[],
1725 "line_number":21
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"