Delete provisional syntax for capabilities
[hiphop-php.git] / hphp / hack / test / full_fidelity / cases / method_dispatch_15.php.json.exp
blob930c10efcc556912d9bb51c2bf6561c782f51105
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":11,
48 "leading":[],
49 "trailing":[
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}
54 "line_number":1
60 "kind":"classish_declaration",
61 "classish_attribute":{"kind":"missing"},
62 "classish_modifiers":{"kind":"missing"},
63 "classish_xhp":{"kind":"missing"},
64 "classish_keyword":{
65 "kind":"token",
66 "token":{
67 "kind":"class",
68 "text":"class",
69 "offset":15,
70 "leading_width":277,
71 "width":5,
72 "trailing_width":1,
73 "leading":[
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 */",
77 "offset":15,
78 "width":206
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 */",
85 "offset":223,
86 "width":67
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}],
92 "line_number":16
95 "classish_name":{
96 "kind":"token",
97 "token":{
98 "kind":"name",
99 "text":"A",
100 "offset":298,
101 "leading_width":0,
102 "width":1,
103 "trailing_width":1,
104 "leading":[],
105 "trailing":[{"kind":"whitespace","text":" ","offset":299,"width":1}],
106 "line_number":16
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"},
115 "classish_body":{
116 "kind":"classish_body",
117 "classish_body_left_brace":{
118 "kind":"token",
119 "token":{
120 "kind":"{",
121 "text":"{",
122 "offset":300,
123 "leading_width":0,
124 "width":1,
125 "trailing_width":1,
126 "leading":[],
127 "trailing":[{"kind":"end_of_line","text":"\n","offset":301,"width":1}],
128 "line_number":16
131 "classish_body_elements":{
132 "kind":"list",
133 "elements":[
135 "kind":"methodish_declaration",
136 "methodish_attribute":{"kind":"missing"},
137 "methodish_function_decl_header":{
138 "kind":"function_declaration_header",
139 "function_modifiers":{
140 "kind":"list",
141 "elements":[
143 "kind":"token",
144 "token":{
145 "kind":"public",
146 "text":"public",
147 "offset":302,
148 "leading_width":2,
149 "width":6,
150 "trailing_width":1,
151 "leading":[{"kind":"whitespace","text":" ","offset":302,"width":2}],
152 "trailing":[{"kind":"whitespace","text":" ","offset":310,"width":1}],
153 "line_number":17
158 "function_keyword":{
159 "kind":"token",
160 "token":{
161 "kind":"function",
162 "text":"function",
163 "offset":311,
164 "leading_width":0,
165 "width":8,
166 "trailing_width":1,
167 "leading":[],
168 "trailing":[{"kind":"whitespace","text":" ","offset":319,"width":1}],
169 "line_number":17
172 "function_name":{
173 "kind":"token",
174 "token":{
175 "kind":"name",
176 "text":"f1",
177 "offset":320,
178 "leading_width":0,
179 "width":2,
180 "trailing_width":0,
181 "leading":[],
182 "trailing":[],
183 "line_number":17
186 "function_type_parameter_list":{"kind":"missing"},
187 "function_left_paren":{
188 "kind":"token",
189 "token":{
190 "kind":"(",
191 "text":"(",
192 "offset":322,
193 "leading_width":0,
194 "width":1,
195 "trailing_width":0,
196 "leading":[],
197 "trailing":[],
198 "line_number":17
201 "function_parameter_list":{"kind":"missing"},
202 "function_right_paren":{
203 "kind":"token",
204 "token":{
205 "kind":")",
206 "text":")",
207 "offset":323,
208 "leading_width":0,
209 "width":1,
210 "trailing_width":0,
211 "leading":[],
212 "trailing":[],
213 "line_number":17
216 "function_capability":{"kind":"missing"},
217 "function_colon":{
218 "kind":"token",
219 "token":{
220 "kind":":",
221 "text":":",
222 "offset":324,
223 "leading_width":0,
224 "width":1,
225 "trailing_width":1,
226 "leading":[],
227 "trailing":[{"kind":"whitespace","text":" ","offset":325,"width":1}],
228 "line_number":17
231 "function_type":{
232 "kind":"simple_type_specifier",
233 "simple_type_specifier":{
234 "kind":"token",
235 "token":{
236 "kind":"void",
237 "text":"void",
238 "offset":326,
239 "leading_width":0,
240 "width":4,
241 "trailing_width":1,
242 "leading":[],
243 "trailing":[{"kind":"whitespace","text":" ","offset":330,"width":1}],
244 "line_number":17
248 "function_where_clause":{"kind":"missing"}
250 "methodish_function_body":{
251 "kind":"compound_statement",
252 "compound_left_brace":{
253 "kind":"token",
254 "token":{
255 "kind":"{",
256 "text":"{",
257 "offset":331,
258 "leading_width":0,
259 "width":1,
260 "trailing_width":0,
261 "leading":[],
262 "trailing":[],
263 "line_number":17
266 "compound_statements":{"kind":"missing"},
267 "compound_right_brace":{
268 "kind":"token",
269 "token":{
270 "kind":"}",
271 "text":"}",
272 "offset":332,
273 "leading_width":0,
274 "width":1,
275 "trailing_width":1,
276 "leading":[],
277 "trailing":[{"kind":"end_of_line","text":"\n","offset":333,"width":1}],
278 "line_number":17
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":{
290 "kind":"list",
291 "elements":[
293 "kind":"token",
294 "token":{
295 "kind":"public",
296 "text":"public",
297 "offset":334,
298 "leading_width":2,
299 "width":6,
300 "trailing_width":1,
301 "leading":[{"kind":"whitespace","text":" ","offset":334,"width":2}],
302 "trailing":[{"kind":"whitespace","text":" ","offset":342,"width":1}],
303 "line_number":18
307 "kind":"token",
308 "token":{
309 "kind":"static",
310 "text":"static",
311 "offset":343,
312 "leading_width":0,
313 "width":6,
314 "trailing_width":1,
315 "leading":[],
316 "trailing":[{"kind":"whitespace","text":" ","offset":349,"width":1}],
317 "line_number":18
322 "function_keyword":{
323 "kind":"token",
324 "token":{
325 "kind":"function",
326 "text":"function",
327 "offset":350,
328 "leading_width":0,
329 "width":8,
330 "trailing_width":1,
331 "leading":[],
332 "trailing":[{"kind":"whitespace","text":" ","offset":358,"width":1}],
333 "line_number":18
336 "function_name":{
337 "kind":"token",
338 "token":{
339 "kind":"name",
340 "text":"f2",
341 "offset":359,
342 "leading_width":0,
343 "width":2,
344 "trailing_width":0,
345 "leading":[],
346 "trailing":[],
347 "line_number":18
350 "function_type_parameter_list":{"kind":"missing"},
351 "function_left_paren":{
352 "kind":"token",
353 "token":{
354 "kind":"(",
355 "text":"(",
356 "offset":361,
357 "leading_width":0,
358 "width":1,
359 "trailing_width":0,
360 "leading":[],
361 "trailing":[],
362 "line_number":18
365 "function_parameter_list":{"kind":"missing"},
366 "function_right_paren":{
367 "kind":"token",
368 "token":{
369 "kind":")",
370 "text":")",
371 "offset":362,
372 "leading_width":0,
373 "width":1,
374 "trailing_width":0,
375 "leading":[],
376 "trailing":[],
377 "line_number":18
380 "function_capability":{"kind":"missing"},
381 "function_colon":{
382 "kind":"token",
383 "token":{
384 "kind":":",
385 "text":":",
386 "offset":363,
387 "leading_width":0,
388 "width":1,
389 "trailing_width":1,
390 "leading":[],
391 "trailing":[{"kind":"whitespace","text":" ","offset":364,"width":1}],
392 "line_number":18
395 "function_type":{
396 "kind":"simple_type_specifier",
397 "simple_type_specifier":{
398 "kind":"token",
399 "token":{
400 "kind":"void",
401 "text":"void",
402 "offset":365,
403 "leading_width":0,
404 "width":4,
405 "trailing_width":1,
406 "leading":[],
407 "trailing":[{"kind":"whitespace","text":" ","offset":369,"width":1}],
408 "line_number":18
412 "function_where_clause":{"kind":"missing"}
414 "methodish_function_body":{
415 "kind":"compound_statement",
416 "compound_left_brace":{
417 "kind":"token",
418 "token":{
419 "kind":"{",
420 "text":"{",
421 "offset":370,
422 "leading_width":0,
423 "width":1,
424 "trailing_width":0,
425 "leading":[],
426 "trailing":[],
427 "line_number":18
430 "compound_statements":{"kind":"missing"},
431 "compound_right_brace":{
432 "kind":"token",
433 "token":{
434 "kind":"}",
435 "text":"}",
436 "offset":371,
437 "leading_width":0,
438 "width":1,
439 "trailing_width":1,
440 "leading":[],
441 "trailing":[{"kind":"end_of_line","text":"\n","offset":372,"width":1}],
442 "line_number":18
446 "methodish_semicolon":{"kind":"missing"}
450 "classish_body_right_brace":{
451 "kind":"token",
452 "token":{
453 "kind":"}",
454 "text":"}",
455 "offset":373,
456 "leading_width":0,
457 "width":1,
458 "trailing_width":1,
459 "leading":[],
460 "trailing":[{"kind":"end_of_line","text":"\n","offset":374,"width":1}],
461 "line_number":19
467 "kind":"classish_declaration",
468 "classish_attribute":{"kind":"missing"},
469 "classish_modifiers":{"kind":"missing"},
470 "classish_xhp":{"kind":"missing"},
471 "classish_keyword":{
472 "kind":"token",
473 "token":{
474 "kind":"class",
475 "text":"class",
476 "offset":375,
477 "leading_width":1,
478 "width":5,
479 "trailing_width":1,
480 "leading":[{"kind":"end_of_line","text":"\n","offset":375,"width":1}],
481 "trailing":[{"kind":"whitespace","text":" ","offset":381,"width":1}],
482 "line_number":21
485 "classish_name":{
486 "kind":"token",
487 "token":{
488 "kind":"name",
489 "text":"B",
490 "offset":382,
491 "leading_width":0,
492 "width":1,
493 "trailing_width":1,
494 "leading":[],
495 "trailing":[{"kind":"whitespace","text":" ","offset":383,"width":1}],
496 "line_number":21
499 "classish_type_parameters":{"kind":"missing"},
500 "classish_extends_keyword":{
501 "kind":"token",
502 "token":{
503 "kind":"extends",
504 "text":"extends",
505 "offset":384,
506 "leading_width":0,
507 "width":7,
508 "trailing_width":1,
509 "leading":[],
510 "trailing":[{"kind":"whitespace","text":" ","offset":391,"width":1}],
511 "line_number":21
514 "classish_extends_list":{
515 "kind":"list",
516 "elements":[
518 "kind":"list_item",
519 "list_item":{
520 "kind":"simple_type_specifier",
521 "simple_type_specifier":{
522 "kind":"token",
523 "token":{
524 "kind":"name",
525 "text":"A",
526 "offset":392,
527 "leading_width":0,
528 "width":1,
529 "trailing_width":1,
530 "leading":[],
531 "trailing":[{"kind":"whitespace","text":" ","offset":393,"width":1}],
532 "line_number":21
536 "list_separator":{"kind":"missing"}
540 "classish_implements_keyword":{"kind":"missing"},
541 "classish_implements_list":{"kind":"missing"},
542 "classish_where_clause":{"kind":"missing"},
543 "classish_body":{
544 "kind":"classish_body",
545 "classish_body_left_brace":{
546 "kind":"token",
547 "token":{
548 "kind":"{",
549 "text":"{",
550 "offset":394,
551 "leading_width":0,
552 "width":1,
553 "trailing_width":1,
554 "leading":[],
555 "trailing":[{"kind":"end_of_line","text":"\n","offset":395,"width":1}],
556 "line_number":21
559 "classish_body_elements":{
560 "kind":"list",
561 "elements":[
563 "kind":"methodish_declaration",
564 "methodish_attribute":{"kind":"missing"},
565 "methodish_function_decl_header":{
566 "kind":"function_declaration_header",
567 "function_modifiers":{
568 "kind":"list",
569 "elements":[
571 "kind":"token",
572 "token":{
573 "kind":"public",
574 "text":"public",
575 "offset":396,
576 "leading_width":2,
577 "width":6,
578 "trailing_width":1,
579 "leading":[{"kind":"whitespace","text":" ","offset":396,"width":2}],
580 "trailing":[{"kind":"whitespace","text":" ","offset":404,"width":1}],
581 "line_number":22
586 "function_keyword":{
587 "kind":"token",
588 "token":{
589 "kind":"function",
590 "text":"function",
591 "offset":405,
592 "leading_width":0,
593 "width":8,
594 "trailing_width":1,
595 "leading":[],
596 "trailing":[{"kind":"whitespace","text":" ","offset":413,"width":1}],
597 "line_number":22
600 "function_name":{
601 "kind":"token",
602 "token":{
603 "kind":"name",
604 "text":"f1",
605 "offset":414,
606 "leading_width":0,
607 "width":2,
608 "trailing_width":0,
609 "leading":[],
610 "trailing":[],
611 "line_number":22
614 "function_type_parameter_list":{"kind":"missing"},
615 "function_left_paren":{
616 "kind":"token",
617 "token":{
618 "kind":"(",
619 "text":"(",
620 "offset":416,
621 "leading_width":0,
622 "width":1,
623 "trailing_width":0,
624 "leading":[],
625 "trailing":[],
626 "line_number":22
629 "function_parameter_list":{"kind":"missing"},
630 "function_right_paren":{
631 "kind":"token",
632 "token":{
633 "kind":")",
634 "text":")",
635 "offset":417,
636 "leading_width":0,
637 "width":1,
638 "trailing_width":0,
639 "leading":[],
640 "trailing":[],
641 "line_number":22
644 "function_capability":{"kind":"missing"},
645 "function_colon":{
646 "kind":"token",
647 "token":{
648 "kind":":",
649 "text":":",
650 "offset":418,
651 "leading_width":0,
652 "width":1,
653 "trailing_width":1,
654 "leading":[],
655 "trailing":[{"kind":"whitespace","text":" ","offset":419,"width":1}],
656 "line_number":22
659 "function_type":{
660 "kind":"simple_type_specifier",
661 "simple_type_specifier":{
662 "kind":"token",
663 "token":{
664 "kind":"void",
665 "text":"void",
666 "offset":420,
667 "leading_width":0,
668 "width":4,
669 "trailing_width":1,
670 "leading":[],
671 "trailing":[{"kind":"whitespace","text":" ","offset":424,"width":1}],
672 "line_number":22
676 "function_where_clause":{"kind":"missing"}
678 "methodish_function_body":{
679 "kind":"compound_statement",
680 "compound_left_brace":{
681 "kind":"token",
682 "token":{
683 "kind":"{",
684 "text":"{",
685 "offset":425,
686 "leading_width":0,
687 "width":1,
688 "trailing_width":0,
689 "leading":[],
690 "trailing":[],
691 "line_number":22
694 "compound_statements":{"kind":"missing"},
695 "compound_right_brace":{
696 "kind":"token",
697 "token":{
698 "kind":"}",
699 "text":"}",
700 "offset":426,
701 "leading_width":0,
702 "width":1,
703 "trailing_width":1,
704 "leading":[],
705 "trailing":[{"kind":"end_of_line","text":"\n","offset":427,"width":1}],
706 "line_number":22
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":{
718 "kind":"list",
719 "elements":[
721 "kind":"token",
722 "token":{
723 "kind":"public",
724 "text":"public",
725 "offset":428,
726 "leading_width":2,
727 "width":6,
728 "trailing_width":1,
729 "leading":[{"kind":"whitespace","text":" ","offset":428,"width":2}],
730 "trailing":[{"kind":"whitespace","text":" ","offset":436,"width":1}],
731 "line_number":23
735 "kind":"token",
736 "token":{
737 "kind":"static",
738 "text":"static",
739 "offset":437,
740 "leading_width":0,
741 "width":6,
742 "trailing_width":1,
743 "leading":[],
744 "trailing":[{"kind":"whitespace","text":" ","offset":443,"width":1}],
745 "line_number":23
750 "function_keyword":{
751 "kind":"token",
752 "token":{
753 "kind":"function",
754 "text":"function",
755 "offset":444,
756 "leading_width":0,
757 "width":8,
758 "trailing_width":1,
759 "leading":[],
760 "trailing":[{"kind":"whitespace","text":" ","offset":452,"width":1}],
761 "line_number":23
764 "function_name":{
765 "kind":"token",
766 "token":{
767 "kind":"name",
768 "text":"f2",
769 "offset":453,
770 "leading_width":0,
771 "width":2,
772 "trailing_width":0,
773 "leading":[],
774 "trailing":[],
775 "line_number":23
778 "function_type_parameter_list":{"kind":"missing"},
779 "function_left_paren":{
780 "kind":"token",
781 "token":{
782 "kind":"(",
783 "text":"(",
784 "offset":455,
785 "leading_width":0,
786 "width":1,
787 "trailing_width":0,
788 "leading":[],
789 "trailing":[],
790 "line_number":23
793 "function_parameter_list":{"kind":"missing"},
794 "function_right_paren":{
795 "kind":"token",
796 "token":{
797 "kind":")",
798 "text":")",
799 "offset":456,
800 "leading_width":0,
801 "width":1,
802 "trailing_width":0,
803 "leading":[],
804 "trailing":[],
805 "line_number":23
808 "function_capability":{"kind":"missing"},
809 "function_colon":{
810 "kind":"token",
811 "token":{
812 "kind":":",
813 "text":":",
814 "offset":457,
815 "leading_width":0,
816 "width":1,
817 "trailing_width":1,
818 "leading":[],
819 "trailing":[{"kind":"whitespace","text":" ","offset":458,"width":1}],
820 "line_number":23
823 "function_type":{
824 "kind":"simple_type_specifier",
825 "simple_type_specifier":{
826 "kind":"token",
827 "token":{
828 "kind":"void",
829 "text":"void",
830 "offset":459,
831 "leading_width":0,
832 "width":4,
833 "trailing_width":1,
834 "leading":[],
835 "trailing":[{"kind":"whitespace","text":" ","offset":463,"width":1}],
836 "line_number":23
840 "function_where_clause":{"kind":"missing"}
842 "methodish_function_body":{
843 "kind":"compound_statement",
844 "compound_left_brace":{
845 "kind":"token",
846 "token":{
847 "kind":"{",
848 "text":"{",
849 "offset":464,
850 "leading_width":0,
851 "width":1,
852 "trailing_width":0,
853 "leading":[],
854 "trailing":[],
855 "line_number":23
858 "compound_statements":{"kind":"missing"},
859 "compound_right_brace":{
860 "kind":"token",
861 "token":{
862 "kind":"}",
863 "text":"}",
864 "offset":465,
865 "leading_width":0,
866 "width":1,
867 "trailing_width":1,
868 "leading":[],
869 "trailing":[{"kind":"end_of_line","text":"\n","offset":466,"width":1}],
870 "line_number":23
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":{
882 "kind":"list",
883 "elements":[
885 "kind":"token",
886 "token":{
887 "kind":"public",
888 "text":"public",
889 "offset":467,
890 "leading_width":2,
891 "width":6,
892 "trailing_width":1,
893 "leading":[{"kind":"whitespace","text":" ","offset":467,"width":2}],
894 "trailing":[{"kind":"whitespace","text":" ","offset":475,"width":1}],
895 "line_number":24
900 "function_keyword":{
901 "kind":"token",
902 "token":{
903 "kind":"function",
904 "text":"function",
905 "offset":476,
906 "leading_width":0,
907 "width":8,
908 "trailing_width":1,
909 "leading":[],
910 "trailing":[{"kind":"whitespace","text":" ","offset":484,"width":1}],
911 "line_number":24
914 "function_name":{
915 "kind":"token",
916 "token":{
917 "kind":"name",
918 "text":"test1",
919 "offset":485,
920 "leading_width":0,
921 "width":5,
922 "trailing_width":0,
923 "leading":[],
924 "trailing":[],
925 "line_number":24
928 "function_type_parameter_list":{"kind":"missing"},
929 "function_left_paren":{
930 "kind":"token",
931 "token":{
932 "kind":"(",
933 "text":"(",
934 "offset":490,
935 "leading_width":0,
936 "width":1,
937 "trailing_width":0,
938 "leading":[],
939 "trailing":[],
940 "line_number":24
943 "function_parameter_list":{"kind":"missing"},
944 "function_right_paren":{
945 "kind":"token",
946 "token":{
947 "kind":")",
948 "text":")",
949 "offset":491,
950 "leading_width":0,
951 "width":1,
952 "trailing_width":0,
953 "leading":[],
954 "trailing":[],
955 "line_number":24
958 "function_capability":{"kind":"missing"},
959 "function_colon":{
960 "kind":"token",
961 "token":{
962 "kind":":",
963 "text":":",
964 "offset":492,
965 "leading_width":0,
966 "width":1,
967 "trailing_width":1,
968 "leading":[],
969 "trailing":[{"kind":"whitespace","text":" ","offset":493,"width":1}],
970 "line_number":24
973 "function_type":{
974 "kind":"simple_type_specifier",
975 "simple_type_specifier":{
976 "kind":"token",
977 "token":{
978 "kind":"void",
979 "text":"void",
980 "offset":494,
981 "leading_width":0,
982 "width":4,
983 "trailing_width":1,
984 "leading":[],
985 "trailing":[{"kind":"whitespace","text":" ","offset":498,"width":1}],
986 "line_number":24
990 "function_where_clause":{"kind":"missing"}
992 "methodish_function_body":{
993 "kind":"compound_statement",
994 "compound_left_brace":{
995 "kind":"token",
996 "token":{
997 "kind":"{",
998 "text":"{",
999 "offset":499,
1000 "leading_width":0,
1001 "width":1,
1002 "trailing_width":0,
1003 "leading":[],
1004 "trailing":[],
1005 "line_number":24
1008 "compound_statements":{"kind":"missing"},
1009 "compound_right_brace":{
1010 "kind":"token",
1011 "token":{
1012 "kind":"}",
1013 "text":"}",
1014 "offset":500,
1015 "leading_width":0,
1016 "width":1,
1017 "trailing_width":1,
1018 "leading":[],
1019 "trailing":[{"kind":"end_of_line","text":"\n","offset":501,"width":1}],
1020 "line_number":24
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":{
1032 "kind":"list",
1033 "elements":[
1035 "kind":"token",
1036 "token":{
1037 "kind":"public",
1038 "text":"public",
1039 "offset":502,
1040 "leading_width":2,
1041 "width":6,
1042 "trailing_width":1,
1043 "leading":[{"kind":"whitespace","text":" ","offset":502,"width":2}],
1044 "trailing":[{"kind":"whitespace","text":" ","offset":510,"width":1}],
1045 "line_number":25
1049 "kind":"token",
1050 "token":{
1051 "kind":"static",
1052 "text":"static",
1053 "offset":511,
1054 "leading_width":0,
1055 "width":6,
1056 "trailing_width":1,
1057 "leading":[],
1058 "trailing":[{"kind":"whitespace","text":" ","offset":517,"width":1}],
1059 "line_number":25
1064 "function_keyword":{
1065 "kind":"token",
1066 "token":{
1067 "kind":"function",
1068 "text":"function",
1069 "offset":518,
1070 "leading_width":0,
1071 "width":8,
1072 "trailing_width":1,
1073 "leading":[],
1074 "trailing":[{"kind":"whitespace","text":" ","offset":526,"width":1}],
1075 "line_number":25
1078 "function_name":{
1079 "kind":"token",
1080 "token":{
1081 "kind":"name",
1082 "text":"test2",
1083 "offset":527,
1084 "leading_width":0,
1085 "width":5,
1086 "trailing_width":0,
1087 "leading":[],
1088 "trailing":[],
1089 "line_number":25
1092 "function_type_parameter_list":{"kind":"missing"},
1093 "function_left_paren":{
1094 "kind":"token",
1095 "token":{
1096 "kind":"(",
1097 "text":"(",
1098 "offset":532,
1099 "leading_width":0,
1100 "width":1,
1101 "trailing_width":0,
1102 "leading":[],
1103 "trailing":[],
1104 "line_number":25
1107 "function_parameter_list":{"kind":"missing"},
1108 "function_right_paren":{
1109 "kind":"token",
1110 "token":{
1111 "kind":")",
1112 "text":")",
1113 "offset":533,
1114 "leading_width":0,
1115 "width":1,
1116 "trailing_width":0,
1117 "leading":[],
1118 "trailing":[],
1119 "line_number":25
1122 "function_capability":{"kind":"missing"},
1123 "function_colon":{
1124 "kind":"token",
1125 "token":{
1126 "kind":":",
1127 "text":":",
1128 "offset":534,
1129 "leading_width":0,
1130 "width":1,
1131 "trailing_width":1,
1132 "leading":[],
1133 "trailing":[{"kind":"whitespace","text":" ","offset":535,"width":1}],
1134 "line_number":25
1137 "function_type":{
1138 "kind":"simple_type_specifier",
1139 "simple_type_specifier":{
1140 "kind":"token",
1141 "token":{
1142 "kind":"void",
1143 "text":"void",
1144 "offset":536,
1145 "leading_width":0,
1146 "width":4,
1147 "trailing_width":1,
1148 "leading":[],
1149 "trailing":[{"kind":"whitespace","text":" ","offset":540,"width":1}],
1150 "line_number":25
1154 "function_where_clause":{"kind":"missing"}
1156 "methodish_function_body":{
1157 "kind":"compound_statement",
1158 "compound_left_brace":{
1159 "kind":"token",
1160 "token":{
1161 "kind":"{",
1162 "text":"{",
1163 "offset":541,
1164 "leading_width":0,
1165 "width":1,
1166 "trailing_width":1,
1167 "leading":[],
1168 "trailing":[{"kind":"end_of_line","text":"\n","offset":542,"width":1}],
1169 "line_number":25
1172 "compound_statements":{
1173 "kind":"list",
1174 "elements":[
1176 "kind":"expression_statement",
1177 "expression_statement_expression":{
1178 "kind":"function_call_expression",
1179 "function_call_receiver":{
1180 "kind":"member_selection_expression",
1181 "member_object":{
1182 "kind":"variable",
1183 "variable_expression":{
1184 "kind":"token",
1185 "token":{
1186 "kind":"variable",
1187 "text":"$this",
1188 "offset":543,
1189 "leading_width":4,
1190 "width":5,
1191 "trailing_width":0,
1192 "leading":[{"kind":"whitespace","text":" ","offset":543,"width":4}],
1193 "trailing":[],
1194 "line_number":26
1198 "member_operator":{
1199 "kind":"token",
1200 "token":{
1201 "kind":"->",
1202 "text":"->",
1203 "offset":552,
1204 "leading_width":0,
1205 "width":2,
1206 "trailing_width":0,
1207 "leading":[],
1208 "trailing":[],
1209 "line_number":26
1212 "member_name":{
1213 "kind":"token",
1214 "token":{
1215 "kind":"name",
1216 "text":"f1",
1217 "offset":554,
1218 "leading_width":0,
1219 "width":2,
1220 "trailing_width":0,
1221 "leading":[],
1222 "trailing":[],
1223 "line_number":26
1227 "function_call_type_args":{"kind":"missing"},
1228 "function_call_left_paren":{
1229 "kind":"token",
1230 "token":{
1231 "kind":"(",
1232 "text":"(",
1233 "offset":556,
1234 "leading_width":0,
1235 "width":1,
1236 "trailing_width":0,
1237 "leading":[],
1238 "trailing":[],
1239 "line_number":26
1242 "function_call_argument_list":{"kind":"missing"},
1243 "function_call_right_paren":{
1244 "kind":"token",
1245 "token":{
1246 "kind":")",
1247 "text":")",
1248 "offset":557,
1249 "leading_width":0,
1250 "width":1,
1251 "trailing_width":0,
1252 "leading":[],
1253 "trailing":[],
1254 "line_number":26
1258 "expression_statement_semicolon":{
1259 "kind":"token",
1260 "token":{
1261 "kind":";",
1262 "text":";",
1263 "offset":558,
1264 "leading_width":0,
1265 "width":1,
1266 "trailing_width":1,
1267 "leading":[],
1268 "trailing":[{"kind":"end_of_line","text":"\n","offset":559,"width":1}],
1269 "line_number":26
1275 "compound_right_brace":{
1276 "kind":"token",
1277 "token":{
1278 "kind":"}",
1279 "text":"}",
1280 "offset":560,
1281 "leading_width":2,
1282 "width":1,
1283 "trailing_width":1,
1284 "leading":[{"kind":"whitespace","text":" ","offset":560,"width":2}],
1285 "trailing":[{"kind":"end_of_line","text":"\n","offset":563,"width":1}],
1286 "line_number":27
1290 "methodish_semicolon":{"kind":"missing"}
1294 "classish_body_right_brace":{
1295 "kind":"token",
1296 "token":{
1297 "kind":"}",
1298 "text":"}",
1299 "offset":564,
1300 "leading_width":0,
1301 "width":1,
1302 "trailing_width":1,
1303 "leading":[],
1304 "trailing":[{"kind":"end_of_line","text":"\n","offset":565,"width":1}],
1305 "line_number":28
1311 "kind":"classish_declaration",
1312 "classish_attribute":{"kind":"missing"},
1313 "classish_modifiers":{"kind":"missing"},
1314 "classish_xhp":{"kind":"missing"},
1315 "classish_keyword":{
1316 "kind":"token",
1317 "token":{
1318 "kind":"class",
1319 "text":"class",
1320 "offset":566,
1321 "leading_width":1,
1322 "width":5,
1323 "trailing_width":1,
1324 "leading":[{"kind":"end_of_line","text":"\n","offset":566,"width":1}],
1325 "trailing":[{"kind":"whitespace","text":" ","offset":572,"width":1}],
1326 "line_number":30
1329 "classish_name":{
1330 "kind":"token",
1331 "token":{
1332 "kind":"name",
1333 "text":"C",
1334 "offset":573,
1335 "leading_width":0,
1336 "width":1,
1337 "trailing_width":1,
1338 "leading":[],
1339 "trailing":[{"kind":"whitespace","text":" ","offset":574,"width":1}],
1340 "line_number":30
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"},
1349 "classish_body":{
1350 "kind":"classish_body",
1351 "classish_body_left_brace":{
1352 "kind":"token",
1353 "token":{
1354 "kind":"{",
1355 "text":"{",
1356 "offset":575,
1357 "leading_width":0,
1358 "width":1,
1359 "trailing_width":1,
1360 "leading":[],
1361 "trailing":[{"kind":"end_of_line","text":"\n","offset":576,"width":1}],
1362 "line_number":30
1365 "classish_body_elements":{
1366 "kind":"list",
1367 "elements":[
1369 "kind":"methodish_declaration",
1370 "methodish_attribute":{"kind":"missing"},
1371 "methodish_function_decl_header":{
1372 "kind":"function_declaration_header",
1373 "function_modifiers":{
1374 "kind":"list",
1375 "elements":[
1377 "kind":"token",
1378 "token":{
1379 "kind":"public",
1380 "text":"public",
1381 "offset":577,
1382 "leading_width":2,
1383 "width":6,
1384 "trailing_width":1,
1385 "leading":[{"kind":"whitespace","text":" ","offset":577,"width":2}],
1386 "trailing":[{"kind":"whitespace","text":" ","offset":585,"width":1}],
1387 "line_number":31
1392 "function_keyword":{
1393 "kind":"token",
1394 "token":{
1395 "kind":"function",
1396 "text":"function",
1397 "offset":586,
1398 "leading_width":0,
1399 "width":8,
1400 "trailing_width":1,
1401 "leading":[],
1402 "trailing":[{"kind":"whitespace","text":" ","offset":594,"width":1}],
1403 "line_number":31
1406 "function_name":{
1407 "kind":"token",
1408 "token":{
1409 "kind":"name",
1410 "text":"f3",
1411 "offset":595,
1412 "leading_width":0,
1413 "width":2,
1414 "trailing_width":0,
1415 "leading":[],
1416 "trailing":[],
1417 "line_number":31
1420 "function_type_parameter_list":{"kind":"missing"},
1421 "function_left_paren":{
1422 "kind":"token",
1423 "token":{
1424 "kind":"(",
1425 "text":"(",
1426 "offset":597,
1427 "leading_width":0,
1428 "width":1,
1429 "trailing_width":0,
1430 "leading":[],
1431 "trailing":[],
1432 "line_number":31
1435 "function_parameter_list":{"kind":"missing"},
1436 "function_right_paren":{
1437 "kind":"token",
1438 "token":{
1439 "kind":")",
1440 "text":")",
1441 "offset":598,
1442 "leading_width":0,
1443 "width":1,
1444 "trailing_width":0,
1445 "leading":[],
1446 "trailing":[],
1447 "line_number":31
1450 "function_capability":{"kind":"missing"},
1451 "function_colon":{
1452 "kind":"token",
1453 "token":{
1454 "kind":":",
1455 "text":":",
1456 "offset":599,
1457 "leading_width":0,
1458 "width":1,
1459 "trailing_width":1,
1460 "leading":[],
1461 "trailing":[{"kind":"whitespace","text":" ","offset":600,"width":1}],
1462 "line_number":31
1465 "function_type":{
1466 "kind":"simple_type_specifier",
1467 "simple_type_specifier":{
1468 "kind":"token",
1469 "token":{
1470 "kind":"void",
1471 "text":"void",
1472 "offset":601,
1473 "leading_width":0,
1474 "width":4,
1475 "trailing_width":1,
1476 "leading":[],
1477 "trailing":[{"kind":"whitespace","text":" ","offset":605,"width":1}],
1478 "line_number":31
1482 "function_where_clause":{"kind":"missing"}
1484 "methodish_function_body":{
1485 "kind":"compound_statement",
1486 "compound_left_brace":{
1487 "kind":"token",
1488 "token":{
1489 "kind":"{",
1490 "text":"{",
1491 "offset":606,
1492 "leading_width":0,
1493 "width":1,
1494 "trailing_width":0,
1495 "leading":[],
1496 "trailing":[],
1497 "line_number":31
1500 "compound_statements":{"kind":"missing"},
1501 "compound_right_brace":{
1502 "kind":"token",
1503 "token":{
1504 "kind":"}",
1505 "text":"}",
1506 "offset":607,
1507 "leading_width":0,
1508 "width":1,
1509 "trailing_width":1,
1510 "leading":[],
1511 "trailing":[{"kind":"end_of_line","text":"\n","offset":608,"width":1}],
1512 "line_number":31
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":{
1524 "kind":"list",
1525 "elements":[
1527 "kind":"token",
1528 "token":{
1529 "kind":"public",
1530 "text":"public",
1531 "offset":609,
1532 "leading_width":2,
1533 "width":6,
1534 "trailing_width":1,
1535 "leading":[{"kind":"whitespace","text":" ","offset":609,"width":2}],
1536 "trailing":[{"kind":"whitespace","text":" ","offset":617,"width":1}],
1537 "line_number":32
1541 "kind":"token",
1542 "token":{
1543 "kind":"static",
1544 "text":"static",
1545 "offset":618,
1546 "leading_width":0,
1547 "width":6,
1548 "trailing_width":1,
1549 "leading":[],
1550 "trailing":[{"kind":"whitespace","text":" ","offset":624,"width":1}],
1551 "line_number":32
1556 "function_keyword":{
1557 "kind":"token",
1558 "token":{
1559 "kind":"function",
1560 "text":"function",
1561 "offset":625,
1562 "leading_width":0,
1563 "width":8,
1564 "trailing_width":1,
1565 "leading":[],
1566 "trailing":[{"kind":"whitespace","text":" ","offset":633,"width":1}],
1567 "line_number":32
1570 "function_name":{
1571 "kind":"token",
1572 "token":{
1573 "kind":"name",
1574 "text":"f4",
1575 "offset":634,
1576 "leading_width":0,
1577 "width":2,
1578 "trailing_width":0,
1579 "leading":[],
1580 "trailing":[],
1581 "line_number":32
1584 "function_type_parameter_list":{"kind":"missing"},
1585 "function_left_paren":{
1586 "kind":"token",
1587 "token":{
1588 "kind":"(",
1589 "text":"(",
1590 "offset":636,
1591 "leading_width":0,
1592 "width":1,
1593 "trailing_width":0,
1594 "leading":[],
1595 "trailing":[],
1596 "line_number":32
1599 "function_parameter_list":{"kind":"missing"},
1600 "function_right_paren":{
1601 "kind":"token",
1602 "token":{
1603 "kind":")",
1604 "text":")",
1605 "offset":637,
1606 "leading_width":0,
1607 "width":1,
1608 "trailing_width":0,
1609 "leading":[],
1610 "trailing":[],
1611 "line_number":32
1614 "function_capability":{"kind":"missing"},
1615 "function_colon":{
1616 "kind":"token",
1617 "token":{
1618 "kind":":",
1619 "text":":",
1620 "offset":638,
1621 "leading_width":0,
1622 "width":1,
1623 "trailing_width":1,
1624 "leading":[],
1625 "trailing":[{"kind":"whitespace","text":" ","offset":639,"width":1}],
1626 "line_number":32
1629 "function_type":{
1630 "kind":"simple_type_specifier",
1631 "simple_type_specifier":{
1632 "kind":"token",
1633 "token":{
1634 "kind":"void",
1635 "text":"void",
1636 "offset":640,
1637 "leading_width":0,
1638 "width":4,
1639 "trailing_width":1,
1640 "leading":[],
1641 "trailing":[{"kind":"whitespace","text":" ","offset":644,"width":1}],
1642 "line_number":32
1646 "function_where_clause":{"kind":"missing"}
1648 "methodish_function_body":{
1649 "kind":"compound_statement",
1650 "compound_left_brace":{
1651 "kind":"token",
1652 "token":{
1653 "kind":"{",
1654 "text":"{",
1655 "offset":645,
1656 "leading_width":0,
1657 "width":1,
1658 "trailing_width":0,
1659 "leading":[],
1660 "trailing":[],
1661 "line_number":32
1664 "compound_statements":{"kind":"missing"},
1665 "compound_right_brace":{
1666 "kind":"token",
1667 "token":{
1668 "kind":"}",
1669 "text":"}",
1670 "offset":646,
1671 "leading_width":0,
1672 "width":1,
1673 "trailing_width":1,
1674 "leading":[],
1675 "trailing":[{"kind":"end_of_line","text":"\n","offset":647,"width":1}],
1676 "line_number":32
1680 "methodish_semicolon":{"kind":"missing"}
1684 "classish_body_right_brace":{
1685 "kind":"token",
1686 "token":{
1687 "kind":"}",
1688 "text":"}",
1689 "offset":648,
1690 "leading_width":0,
1691 "width":1,
1692 "trailing_width":1,
1693 "leading":[],
1694 "trailing":[{"kind":"end_of_line","text":"\n","offset":649,"width":1}],
1695 "line_number":33
1701 "kind":"end_of_file",
1702 "end_of_file_token":{
1703 "kind":"token",
1704 "token":{
1705 "kind":"end_of_file",
1706 "text":"",
1707 "offset":650,
1708 "leading_width":0,
1709 "width":0,
1710 "trailing_width":0,
1711 "leading":[],
1712 "trailing":[],
1713 "line_number":34
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"