Use JSON for FFP tests
[hiphop-php.git] / hphp / hack / test / full_fidelity / cases / test_statement_errors.php.json.exp
blob2b8f52d40560621762c2028f5f68aa02d630cdc0
2 "parse_tree":{
3 "kind":"script",
4 "script_declarations":{
5 "kind":"list",
6 "elements":[
8 "kind":"markup_section",
9 "markup_text":{
10 "kind":"token",
11 "token":{
12 "kind":"markup",
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":"function_declaration",
57 "function_attribute_spec":{"kind":"missing"},
58 "function_declaration_header":{
59 "kind":"function_declaration_header",
60 "function_modifiers":{"kind":"missing"},
61 "function_keyword":{
62 "kind":"token",
63 "token":{
64 "kind":"function",
65 "text":"function",
66 "offset":5,
67 "leading_width":0,
68 "width":8,
69 "trailing_width":1,
70 "leading":[],
71 "trailing":[{"kind":"whitespace","text":" ","offset":13,"width":1}],
72 "line_number":2
75 "function_name":{
76 "kind":"token",
77 "token":{
78 "kind":"name",
79 "text":"bar",
80 "offset":14,
81 "leading_width":0,
82 "width":3,
83 "trailing_width":0,
84 "leading":[],
85 "trailing":[],
86 "line_number":2
89 "function_type_parameter_list":{"kind":"missing"},
90 "function_left_paren":{
91 "kind":"token",
92 "token":{
93 "kind":"(",
94 "text":"(",
95 "offset":17,
96 "leading_width":0,
97 "width":1,
98 "trailing_width":0,
99 "leading":[],
100 "trailing":[],
101 "line_number":2
104 "function_parameter_list":{"kind":"missing"},
105 "function_right_paren":{
106 "kind":"token",
107 "token":{
108 "kind":")",
109 "text":")",
110 "offset":18,
111 "leading_width":0,
112 "width":1,
113 "trailing_width":1,
114 "leading":[],
115 "trailing":[{"kind":"whitespace","text":" ","offset":19,"width":1}],
116 "line_number":2
119 "function_colon":{
120 "kind":"token",
121 "token":{
122 "kind":":",
123 "text":":",
124 "offset":20,
125 "leading_width":0,
126 "width":1,
127 "trailing_width":1,
128 "leading":[],
129 "trailing":[{"kind":"whitespace","text":" ","offset":21,"width":1}],
130 "line_number":2
133 "function_type":{
134 "kind":"simple_type_specifier",
135 "simple_type_specifier":{
136 "kind":"token",
137 "token":{
138 "kind":"void",
139 "text":"void",
140 "offset":22,
141 "leading_width":0,
142 "width":4,
143 "trailing_width":1,
144 "leading":[],
145 "trailing":[{"kind":"whitespace","text":" ","offset":26,"width":1}],
146 "line_number":2
150 "function_where_clause":{"kind":"missing"}
152 "function_body":{
153 "kind":"compound_statement",
154 "compound_left_brace":{
155 "kind":"token",
156 "token":{
157 "kind":"{",
158 "text":"{",
159 "offset":27,
160 "leading_width":0,
161 "width":1,
162 "trailing_width":1,
163 "leading":[],
164 "trailing":[{"kind":"end_of_line","text":"\n","offset":28,"width":1}],
165 "line_number":2
168 "compound_statements":{
169 "kind":"list",
170 "elements":[
172 "kind":"case_label",
173 "case_keyword":{
174 "kind":"token",
175 "token":{
176 "kind":"case",
177 "text":"case",
178 "offset":29,
179 "leading_width":2,
180 "width":4,
181 "trailing_width":1,
182 "leading":[{"kind":"whitespace","text":" ","offset":29,"width":2}],
183 "trailing":[{"kind":"whitespace","text":" ","offset":35,"width":1}],
184 "line_number":3
187 "case_expression":{
188 "kind":"literal",
189 "literal_expression":{
190 "kind":"token",
191 "token":{
192 "kind":"decimal_literal",
193 "text":"123",
194 "offset":36,
195 "leading_width":0,
196 "width":3,
197 "trailing_width":0,
198 "leading":[],
199 "trailing":[],
200 "line_number":3
204 "case_colon":{
205 "kind":"token",
206 "token":{
207 "kind":":",
208 "text":":",
209 "offset":39,
210 "leading_width":0,
211 "width":1,
212 "trailing_width":1,
213 "leading":[],
214 "trailing":[{"kind":"whitespace","text":" ","offset":40,"width":1}],
215 "line_number":3
220 "kind":"expression_statement",
221 "expression_statement_expression":{"kind":"missing"},
222 "expression_statement_semicolon":{
223 "kind":"token",
224 "token":{
225 "kind":";",
226 "text":";",
227 "offset":41,
228 "leading_width":0,
229 "width":1,
230 "trailing_width":26,
231 "leading":[],
232 "trailing":[
233 {"kind":"whitespace","text":" ","offset":42,"width":1},
235 "kind":"single_line_comment",
236 "text":"// error, outside switch",
237 "offset":43,
238 "width":24
240 {"kind":"end_of_line","text":"\n","offset":67,"width":1}
242 "line_number":3
247 "kind":"default_label",
248 "default_keyword":{
249 "kind":"token",
250 "token":{
251 "kind":"default",
252 "text":"default",
253 "offset":68,
254 "leading_width":2,
255 "width":7,
256 "trailing_width":0,
257 "leading":[{"kind":"whitespace","text":" ","offset":68,"width":2}],
258 "trailing":[],
259 "line_number":4
262 "default_colon":{
263 "kind":"token",
264 "token":{
265 "kind":":",
266 "text":":",
267 "offset":77,
268 "leading_width":0,
269 "width":1,
270 "trailing_width":1,
271 "leading":[],
272 "trailing":[{"kind":"whitespace","text":" ","offset":78,"width":1}],
273 "line_number":4
278 "kind":"expression_statement",
279 "expression_statement_expression":{"kind":"missing"},
280 "expression_statement_semicolon":{
281 "kind":"token",
282 "token":{
283 "kind":";",
284 "text":";",
285 "offset":79,
286 "leading_width":0,
287 "width":1,
288 "trailing_width":26,
289 "leading":[],
290 "trailing":[
291 {"kind":"whitespace","text":" ","offset":80,"width":1},
293 "kind":"single_line_comment",
294 "text":"// error, outside switch",
295 "offset":81,
296 "width":24
298 {"kind":"end_of_line","text":"\n","offset":105,"width":1}
300 "line_number":4
305 "kind":"switch_statement",
306 "switch_keyword":{
307 "kind":"token",
308 "token":{
309 "kind":"switch",
310 "text":"switch",
311 "offset":106,
312 "leading_width":2,
313 "width":6,
314 "trailing_width":1,
315 "leading":[{"kind":"whitespace","text":" ","offset":106,"width":2}],
316 "trailing":[{"kind":"whitespace","text":" ","offset":114,"width":1}],
317 "line_number":5
320 "switch_left_paren":{
321 "kind":"token",
322 "token":{
323 "kind":"(",
324 "text":"(",
325 "offset":115,
326 "leading_width":0,
327 "width":1,
328 "trailing_width":0,
329 "leading":[],
330 "trailing":[],
331 "line_number":5
334 "switch_expression":{
335 "kind":"variable",
336 "variable_expression":{
337 "kind":"token",
338 "token":{
339 "kind":"variable",
340 "text":"$x",
341 "offset":116,
342 "leading_width":0,
343 "width":2,
344 "trailing_width":0,
345 "leading":[],
346 "trailing":[],
347 "line_number":5
351 "switch_right_paren":{
352 "kind":"token",
353 "token":{
354 "kind":")",
355 "text":")",
356 "offset":118,
357 "leading_width":0,
358 "width":1,
359 "trailing_width":1,
360 "leading":[],
361 "trailing":[{"kind":"whitespace","text":" ","offset":119,"width":1}],
362 "line_number":5
365 "switch_left_brace":{
366 "kind":"token",
367 "token":{
368 "kind":"{",
369 "text":"{",
370 "offset":120,
371 "leading_width":0,
372 "width":1,
373 "trailing_width":1,
374 "leading":[],
375 "trailing":[{"kind":"whitespace","text":" ","offset":121,"width":1}],
376 "line_number":5
379 "switch_sections":{
380 "kind":"list",
381 "elements":[
383 "kind":"switch_section",
384 "switch_section_labels":{
385 "kind":"list",
386 "elements":[
388 "kind":"case_label",
389 "case_keyword":{
390 "kind":"token",
391 "token":{
392 "kind":"case",
393 "text":"case",
394 "offset":122,
395 "leading_width":0,
396 "width":4,
397 "trailing_width":1,
398 "leading":[],
399 "trailing":[{"kind":"whitespace","text":" ","offset":126,"width":1}],
400 "line_number":5
403 "case_expression":{
404 "kind":"literal",
405 "literal_expression":{
406 "kind":"token",
407 "token":{
408 "kind":"decimal_literal",
409 "text":"123",
410 "offset":127,
411 "leading_width":0,
412 "width":3,
413 "trailing_width":0,
414 "leading":[],
415 "trailing":[],
416 "line_number":5
420 "case_colon":{
421 "kind":"token",
422 "token":{
423 "kind":":",
424 "text":":",
425 "offset":130,
426 "leading_width":0,
427 "width":1,
428 "trailing_width":1,
429 "leading":[],
430 "trailing":[{"kind":"whitespace","text":" ","offset":131,"width":1}],
431 "line_number":5
437 "switch_section_statements":{
438 "kind":"list",
439 "elements":[
441 "kind":"expression_statement",
442 "expression_statement_expression":{"kind":"missing"},
443 "expression_statement_semicolon":{
444 "kind":"token",
445 "token":{
446 "kind":";",
447 "text":";",
448 "offset":132,
449 "leading_width":0,
450 "width":1,
451 "trailing_width":1,
452 "leading":[],
453 "trailing":[{"kind":"whitespace","text":" ","offset":133,"width":1}],
454 "line_number":5
460 "switch_section_fallthrough":{"kind":"missing"}
463 "kind":"switch_section",
464 "switch_section_labels":{
465 "kind":"list",
466 "elements":[
468 "kind":"default_label",
469 "default_keyword":{
470 "kind":"token",
471 "token":{
472 "kind":"default",
473 "text":"default",
474 "offset":134,
475 "leading_width":0,
476 "width":7,
477 "trailing_width":0,
478 "leading":[],
479 "trailing":[],
480 "line_number":5
483 "default_colon":{
484 "kind":"token",
485 "token":{
486 "kind":":",
487 "text":":",
488 "offset":141,
489 "leading_width":0,
490 "width":1,
491 "trailing_width":1,
492 "leading":[],
493 "trailing":[{"kind":"whitespace","text":" ","offset":142,"width":1}],
494 "line_number":5
500 "switch_section_statements":{
501 "kind":"list",
502 "elements":[
504 "kind":"break_statement",
505 "break_keyword":{
506 "kind":"token",
507 "token":{
508 "kind":"break",
509 "text":"break",
510 "offset":143,
511 "leading_width":0,
512 "width":5,
513 "trailing_width":0,
514 "leading":[],
515 "trailing":[],
516 "line_number":5
519 "break_semicolon":{
520 "kind":"token",
521 "token":{
522 "kind":";",
523 "text":";",
524 "offset":148,
525 "leading_width":0,
526 "width":1,
527 "trailing_width":0,
528 "leading":[],
529 "trailing":[],
530 "line_number":5
536 "switch_section_fallthrough":{"kind":"missing"}
540 "switch_right_brace":{
541 "kind":"token",
542 "token":{
543 "kind":"}",
544 "text":"}",
545 "offset":149,
546 "leading_width":0,
547 "width":1,
548 "trailing_width":13,
549 "leading":[],
550 "trailing":[
551 {"kind":"whitespace","text":" ","offset":150,"width":1},
552 {"kind":"single_line_comment","text":"// no error","offset":151,"width":11},
553 {"kind":"end_of_line","text":"\n","offset":162,"width":1}
555 "line_number":5
560 "kind":"break_statement",
561 "break_keyword":{
562 "kind":"token",
563 "token":{
564 "kind":"break",
565 "text":"break",
566 "offset":163,
567 "leading_width":2,
568 "width":5,
569 "trailing_width":0,
570 "leading":[{"kind":"whitespace","text":" ","offset":163,"width":2}],
571 "trailing":[],
572 "line_number":6
575 "break_semicolon":{
576 "kind":"token",
577 "token":{
578 "kind":";",
579 "text":";",
580 "offset":170,
581 "leading_width":0,
582 "width":1,
583 "trailing_width":10,
584 "leading":[],
585 "trailing":[
586 {"kind":"whitespace","text":" ","offset":171,"width":1},
587 {"kind":"single_line_comment","text":"// error","offset":172,"width":8},
588 {"kind":"end_of_line","text":"\n","offset":180,"width":1}
590 "line_number":6
595 "kind":"while_statement",
596 "while_keyword":{
597 "kind":"token",
598 "token":{
599 "kind":"while",
600 "text":"while",
601 "offset":181,
602 "leading_width":2,
603 "width":5,
604 "trailing_width":0,
605 "leading":[{"kind":"whitespace","text":" ","offset":181,"width":2}],
606 "trailing":[],
607 "line_number":7
610 "while_left_paren":{
611 "kind":"token",
612 "token":{
613 "kind":"(",
614 "text":"(",
615 "offset":188,
616 "leading_width":0,
617 "width":1,
618 "trailing_width":0,
619 "leading":[],
620 "trailing":[],
621 "line_number":7
624 "while_condition":{
625 "kind":"variable",
626 "variable_expression":{
627 "kind":"token",
628 "token":{
629 "kind":"variable",
630 "text":"$a",
631 "offset":189,
632 "leading_width":0,
633 "width":2,
634 "trailing_width":0,
635 "leading":[],
636 "trailing":[],
637 "line_number":7
641 "while_right_paren":{
642 "kind":"token",
643 "token":{
644 "kind":")",
645 "text":")",
646 "offset":191,
647 "leading_width":0,
648 "width":1,
649 "trailing_width":1,
650 "leading":[],
651 "trailing":[{"kind":"whitespace","text":" ","offset":192,"width":1}],
652 "line_number":7
655 "while_body":{
656 "kind":"compound_statement",
657 "compound_left_brace":{
658 "kind":"token",
659 "token":{
660 "kind":"{",
661 "text":"{",
662 "offset":193,
663 "leading_width":0,
664 "width":1,
665 "trailing_width":1,
666 "leading":[],
667 "trailing":[{"kind":"end_of_line","text":"\n","offset":194,"width":1}],
668 "line_number":7
671 "compound_statements":{
672 "kind":"list",
673 "elements":[
675 "kind":"if_statement",
676 "if_keyword":{
677 "kind":"token",
678 "token":{
679 "kind":"if",
680 "text":"if",
681 "offset":195,
682 "leading_width":4,
683 "width":2,
684 "trailing_width":1,
685 "leading":[{"kind":"whitespace","text":" ","offset":195,"width":4}],
686 "trailing":[{"kind":"whitespace","text":" ","offset":201,"width":1}],
687 "line_number":8
690 "if_left_paren":{
691 "kind":"token",
692 "token":{
693 "kind":"(",
694 "text":"(",
695 "offset":202,
696 "leading_width":0,
697 "width":1,
698 "trailing_width":0,
699 "leading":[],
700 "trailing":[],
701 "line_number":8
704 "if_condition":{
705 "kind":"variable",
706 "variable_expression":{
707 "kind":"token",
708 "token":{
709 "kind":"variable",
710 "text":"$b",
711 "offset":203,
712 "leading_width":0,
713 "width":2,
714 "trailing_width":0,
715 "leading":[],
716 "trailing":[],
717 "line_number":8
721 "if_right_paren":{
722 "kind":"token",
723 "token":{
724 "kind":")",
725 "text":")",
726 "offset":205,
727 "leading_width":0,
728 "width":1,
729 "trailing_width":1,
730 "leading":[],
731 "trailing":[{"kind":"whitespace","text":" ","offset":206,"width":1}],
732 "line_number":8
735 "if_statement":{
736 "kind":"break_statement",
737 "break_keyword":{
738 "kind":"token",
739 "token":{
740 "kind":"break",
741 "text":"break",
742 "offset":207,
743 "leading_width":0,
744 "width":5,
745 "trailing_width":0,
746 "leading":[],
747 "trailing":[],
748 "line_number":8
751 "break_semicolon":{
752 "kind":"token",
753 "token":{
754 "kind":";",
755 "text":";",
756 "offset":212,
757 "leading_width":0,
758 "width":1,
759 "trailing_width":13,
760 "leading":[],
761 "trailing":[
762 {"kind":"whitespace","text":" ","offset":213,"width":1},
763 {"kind":"single_line_comment","text":"// no error","offset":214,"width":11},
764 {"kind":"end_of_line","text":"\n","offset":225,"width":1}
766 "line_number":8
770 "if_elseif_clauses":{"kind":"missing"},
771 "if_else_clause":{"kind":"missing"}
774 "kind":"if_statement",
775 "if_keyword":{
776 "kind":"token",
777 "token":{
778 "kind":"if",
779 "text":"if",
780 "offset":226,
781 "leading_width":4,
782 "width":2,
783 "trailing_width":1,
784 "leading":[{"kind":"whitespace","text":" ","offset":226,"width":4}],
785 "trailing":[{"kind":"whitespace","text":" ","offset":232,"width":1}],
786 "line_number":9
789 "if_left_paren":{
790 "kind":"token",
791 "token":{
792 "kind":"(",
793 "text":"(",
794 "offset":233,
795 "leading_width":0,
796 "width":1,
797 "trailing_width":0,
798 "leading":[],
799 "trailing":[],
800 "line_number":9
803 "if_condition":{
804 "kind":"variable",
805 "variable_expression":{
806 "kind":"token",
807 "token":{
808 "kind":"variable",
809 "text":"$c",
810 "offset":234,
811 "leading_width":0,
812 "width":2,
813 "trailing_width":0,
814 "leading":[],
815 "trailing":[],
816 "line_number":9
820 "if_right_paren":{
821 "kind":"token",
822 "token":{
823 "kind":")",
824 "text":")",
825 "offset":236,
826 "leading_width":0,
827 "width":1,
828 "trailing_width":1,
829 "leading":[],
830 "trailing":[{"kind":"whitespace","text":" ","offset":237,"width":1}],
831 "line_number":9
834 "if_statement":{
835 "kind":"continue_statement",
836 "continue_keyword":{
837 "kind":"token",
838 "token":{
839 "kind":"continue",
840 "text":"continue",
841 "offset":238,
842 "leading_width":0,
843 "width":8,
844 "trailing_width":0,
845 "leading":[],
846 "trailing":[],
847 "line_number":9
850 "continue_semicolon":{
851 "kind":"token",
852 "token":{
853 "kind":";",
854 "text":";",
855 "offset":246,
856 "leading_width":0,
857 "width":1,
858 "trailing_width":13,
859 "leading":[],
860 "trailing":[
861 {"kind":"whitespace","text":" ","offset":247,"width":1},
862 {"kind":"single_line_comment","text":"// no error","offset":248,"width":11},
863 {"kind":"end_of_line","text":"\n","offset":259,"width":1}
865 "line_number":9
869 "if_elseif_clauses":{"kind":"missing"},
870 "if_else_clause":{"kind":"missing"}
873 "kind":"expression_statement",
874 "expression_statement_expression":{
875 "kind":"binary_expression",
876 "binary_left_operand":{
877 "kind":"variable",
878 "variable_expression":{
879 "kind":"token",
880 "token":{
881 "kind":"variable",
882 "text":"$x",
883 "offset":260,
884 "leading_width":4,
885 "width":2,
886 "trailing_width":1,
887 "leading":[{"kind":"whitespace","text":" ","offset":260,"width":4}],
888 "trailing":[{"kind":"whitespace","text":" ","offset":266,"width":1}],
889 "line_number":10
893 "binary_operator":{
894 "kind":"token",
895 "token":{
896 "kind":"=",
897 "text":"=",
898 "offset":267,
899 "leading_width":0,
900 "width":1,
901 "trailing_width":1,
902 "leading":[],
903 "trailing":[{"kind":"whitespace","text":" ","offset":268,"width":1}],
904 "line_number":10
907 "binary_right_operand":{
908 "kind":"anonymous_function",
909 "anonymous_attribute_spec":{"kind":"missing"},
910 "anonymous_static_keyword":{"kind":"missing"},
911 "anonymous_async_keyword":{"kind":"missing"},
912 "anonymous_coroutine_keyword":{"kind":"missing"},
913 "anonymous_function_keyword":{
914 "kind":"token",
915 "token":{
916 "kind":"function",
917 "text":"function",
918 "offset":269,
919 "leading_width":0,
920 "width":8,
921 "trailing_width":0,
922 "leading":[],
923 "trailing":[],
924 "line_number":10
927 "anonymous_left_paren":{
928 "kind":"token",
929 "token":{
930 "kind":"(",
931 "text":"(",
932 "offset":277,
933 "leading_width":0,
934 "width":1,
935 "trailing_width":0,
936 "leading":[],
937 "trailing":[],
938 "line_number":10
941 "anonymous_parameters":{
942 "kind":"list",
943 "elements":[
945 "kind":"list_item",
946 "list_item":{
947 "kind":"parameter_declaration",
948 "parameter_attribute":{"kind":"missing"},
949 "parameter_visibility":{"kind":"missing"},
950 "parameter_call_convention":{"kind":"missing"},
951 "parameter_type":{"kind":"missing"},
952 "parameter_name":{
953 "kind":"token",
954 "token":{
955 "kind":"variable",
956 "text":"$b",
957 "offset":278,
958 "leading_width":0,
959 "width":2,
960 "trailing_width":0,
961 "leading":[],
962 "trailing":[],
963 "line_number":10
966 "parameter_default_value":{"kind":"missing"}
968 "list_separator":{"kind":"missing"}
972 "anonymous_right_paren":{
973 "kind":"token",
974 "token":{
975 "kind":")",
976 "text":")",
977 "offset":280,
978 "leading_width":0,
979 "width":1,
980 "trailing_width":1,
981 "leading":[],
982 "trailing":[{"kind":"whitespace","text":" ","offset":281,"width":1}],
983 "line_number":10
986 "anonymous_colon":{"kind":"missing"},
987 "anonymous_type":{"kind":"missing"},
988 "anonymous_use":{"kind":"missing"},
989 "anonymous_body":{
990 "kind":"compound_statement",
991 "compound_left_brace":{
992 "kind":"token",
993 "token":{
994 "kind":"{",
995 "text":"{",
996 "offset":282,
997 "leading_width":0,
998 "width":1,
999 "trailing_width":1,
1000 "leading":[],
1001 "trailing":[{"kind":"whitespace","text":" ","offset":283,"width":1}],
1002 "line_number":10
1005 "compound_statements":{
1006 "kind":"list",
1007 "elements":[
1009 "kind":"break_statement",
1010 "break_keyword":{
1011 "kind":"token",
1012 "token":{
1013 "kind":"break",
1014 "text":"break",
1015 "offset":284,
1016 "leading_width":0,
1017 "width":5,
1018 "trailing_width":0,
1019 "leading":[],
1020 "trailing":[],
1021 "line_number":10
1024 "break_semicolon":{
1025 "kind":"token",
1026 "token":{
1027 "kind":";",
1028 "text":";",
1029 "offset":289,
1030 "leading_width":0,
1031 "width":1,
1032 "trailing_width":1,
1033 "leading":[],
1034 "trailing":[{"kind":"whitespace","text":" ","offset":290,"width":1}],
1035 "line_number":10
1041 "compound_right_brace":{
1042 "kind":"token",
1043 "token":{
1044 "kind":"}",
1045 "text":"}",
1046 "offset":291,
1047 "leading_width":0,
1048 "width":1,
1049 "trailing_width":0,
1050 "leading":[],
1051 "trailing":[],
1052 "line_number":10
1058 "expression_statement_semicolon":{
1059 "kind":"token",
1060 "token":{
1061 "kind":";",
1062 "text":";",
1063 "offset":292,
1064 "leading_width":0,
1065 "width":1,
1066 "trailing_width":10,
1067 "leading":[],
1068 "trailing":[
1069 {"kind":"whitespace","text":" ","offset":293,"width":1},
1070 {"kind":"single_line_comment","text":"// error","offset":294,"width":8},
1071 {"kind":"end_of_line","text":"\n","offset":302,"width":1}
1073 "line_number":10
1079 "compound_right_brace":{
1080 "kind":"token",
1081 "token":{
1082 "kind":"}",
1083 "text":"}",
1084 "offset":303,
1085 "leading_width":2,
1086 "width":1,
1087 "trailing_width":1,
1088 "leading":[{"kind":"whitespace","text":" ","offset":303,"width":2}],
1089 "trailing":[{"kind":"end_of_line","text":"\n","offset":306,"width":1}],
1090 "line_number":11
1096 "kind":"try_statement",
1097 "try_keyword":{
1098 "kind":"token",
1099 "token":{
1100 "kind":"try",
1101 "text":"try",
1102 "offset":307,
1103 "leading_width":2,
1104 "width":3,
1105 "trailing_width":1,
1106 "leading":[{"kind":"whitespace","text":" ","offset":307,"width":2}],
1107 "trailing":[{"kind":"whitespace","text":" ","offset":312,"width":1}],
1108 "line_number":12
1111 "try_compound_statement":{
1112 "kind":"compound_statement",
1113 "compound_left_brace":{
1114 "kind":"token",
1115 "token":{
1116 "kind":"{",
1117 "text":"{",
1118 "offset":313,
1119 "leading_width":0,
1120 "width":1,
1121 "trailing_width":0,
1122 "leading":[],
1123 "trailing":[],
1124 "line_number":12
1127 "compound_statements":{"kind":"missing"},
1128 "compound_right_brace":{
1129 "kind":"token",
1130 "token":{
1131 "kind":"}",
1132 "text":"}",
1133 "offset":314,
1134 "leading_width":0,
1135 "width":1,
1136 "trailing_width":1,
1137 "leading":[],
1138 "trailing":[{"kind":"whitespace","text":" ","offset":315,"width":1}],
1139 "line_number":12
1143 "try_catch_clauses":{
1144 "kind":"list",
1145 "elements":[
1147 "kind":"catch_clause",
1148 "catch_keyword":{
1149 "kind":"token",
1150 "token":{
1151 "kind":"catch",
1152 "text":"catch",
1153 "offset":316,
1154 "leading_width":0,
1155 "width":5,
1156 "trailing_width":1,
1157 "leading":[],
1158 "trailing":[{"kind":"whitespace","text":" ","offset":321,"width":1}],
1159 "line_number":12
1162 "catch_left_paren":{
1163 "kind":"token",
1164 "token":{
1165 "kind":"(",
1166 "text":"(",
1167 "offset":322,
1168 "leading_width":0,
1169 "width":1,
1170 "trailing_width":0,
1171 "leading":[],
1172 "trailing":[],
1173 "line_number":12
1176 "catch_type":{
1177 "kind":"simple_type_specifier",
1178 "simple_type_specifier":{
1179 "kind":"token",
1180 "token":{
1181 "kind":"name",
1182 "text":"Exception",
1183 "offset":323,
1184 "leading_width":0,
1185 "width":9,
1186 "trailing_width":1,
1187 "leading":[],
1188 "trailing":[{"kind":"whitespace","text":" ","offset":332,"width":1}],
1189 "line_number":12
1193 "catch_variable":{
1194 "kind":"token",
1195 "token":{
1196 "kind":"variable",
1197 "text":"$ex",
1198 "offset":333,
1199 "leading_width":0,
1200 "width":3,
1201 "trailing_width":0,
1202 "leading":[],
1203 "trailing":[],
1204 "line_number":12
1207 "catch_right_paren":{
1208 "kind":"token",
1209 "token":{
1210 "kind":")",
1211 "text":")",
1212 "offset":336,
1213 "leading_width":0,
1214 "width":1,
1215 "trailing_width":1,
1216 "leading":[],
1217 "trailing":[{"kind":"whitespace","text":" ","offset":337,"width":1}],
1218 "line_number":12
1221 "catch_body":{
1222 "kind":"compound_statement",
1223 "compound_left_brace":{
1224 "kind":"token",
1225 "token":{
1226 "kind":"{",
1227 "text":"{",
1228 "offset":338,
1229 "leading_width":0,
1230 "width":1,
1231 "trailing_width":0,
1232 "leading":[],
1233 "trailing":[],
1234 "line_number":12
1237 "compound_statements":{"kind":"missing"},
1238 "compound_right_brace":{
1239 "kind":"token",
1240 "token":{
1241 "kind":"}",
1242 "text":"}",
1243 "offset":339,
1244 "leading_width":0,
1245 "width":1,
1246 "trailing_width":13,
1247 "leading":[],
1248 "trailing":[
1249 {"kind":"whitespace","text":" ","offset":340,"width":1},
1250 {"kind":"single_line_comment","text":"// no error","offset":341,"width":11},
1251 {"kind":"end_of_line","text":"\n","offset":352,"width":1}
1253 "line_number":12
1260 "try_finally_clause":{"kind":"missing"}
1263 "kind":"try_statement",
1264 "try_keyword":{
1265 "kind":"token",
1266 "token":{
1267 "kind":"try",
1268 "text":"try",
1269 "offset":353,
1270 "leading_width":2,
1271 "width":3,
1272 "trailing_width":1,
1273 "leading":[{"kind":"whitespace","text":" ","offset":353,"width":2}],
1274 "trailing":[{"kind":"whitespace","text":" ","offset":358,"width":1}],
1275 "line_number":13
1278 "try_compound_statement":{
1279 "kind":"compound_statement",
1280 "compound_left_brace":{
1281 "kind":"token",
1282 "token":{
1283 "kind":"{",
1284 "text":"{",
1285 "offset":359,
1286 "leading_width":0,
1287 "width":1,
1288 "trailing_width":0,
1289 "leading":[],
1290 "trailing":[],
1291 "line_number":13
1294 "compound_statements":{"kind":"missing"},
1295 "compound_right_brace":{
1296 "kind":"token",
1297 "token":{
1298 "kind":"}",
1299 "text":"}",
1300 "offset":360,
1301 "leading_width":0,
1302 "width":1,
1303 "trailing_width":1,
1304 "leading":[],
1305 "trailing":[{"kind":"whitespace","text":" ","offset":361,"width":1}],
1306 "line_number":13
1310 "try_catch_clauses":{"kind":"missing"},
1311 "try_finally_clause":{
1312 "kind":"finally_clause",
1313 "finally_keyword":{
1314 "kind":"token",
1315 "token":{
1316 "kind":"finally",
1317 "text":"finally",
1318 "offset":362,
1319 "leading_width":0,
1320 "width":7,
1321 "trailing_width":1,
1322 "leading":[],
1323 "trailing":[{"kind":"whitespace","text":" ","offset":369,"width":1}],
1324 "line_number":13
1327 "finally_body":{
1328 "kind":"compound_statement",
1329 "compound_left_brace":{
1330 "kind":"token",
1331 "token":{
1332 "kind":"{",
1333 "text":"{",
1334 "offset":370,
1335 "leading_width":0,
1336 "width":1,
1337 "trailing_width":0,
1338 "leading":[],
1339 "trailing":[],
1340 "line_number":13
1343 "compound_statements":{"kind":"missing"},
1344 "compound_right_brace":{
1345 "kind":"token",
1346 "token":{
1347 "kind":"}",
1348 "text":"}",
1349 "offset":371,
1350 "leading_width":0,
1351 "width":1,
1352 "trailing_width":13,
1353 "leading":[],
1354 "trailing":[
1355 {"kind":"whitespace","text":" ","offset":372,"width":1},
1356 {"kind":"single_line_comment","text":"// no error","offset":373,"width":11},
1357 {"kind":"end_of_line","text":"\n","offset":384,"width":1}
1359 "line_number":13
1366 "kind":"try_statement",
1367 "try_keyword":{
1368 "kind":"token",
1369 "token":{
1370 "kind":"try",
1371 "text":"try",
1372 "offset":385,
1373 "leading_width":2,
1374 "width":3,
1375 "trailing_width":1,
1376 "leading":[{"kind":"whitespace","text":" ","offset":385,"width":2}],
1377 "trailing":[{"kind":"whitespace","text":" ","offset":390,"width":1}],
1378 "line_number":14
1381 "try_compound_statement":{
1382 "kind":"compound_statement",
1383 "compound_left_brace":{
1384 "kind":"token",
1385 "token":{
1386 "kind":"{",
1387 "text":"{",
1388 "offset":391,
1389 "leading_width":0,
1390 "width":1,
1391 "trailing_width":0,
1392 "leading":[],
1393 "trailing":[],
1394 "line_number":14
1397 "compound_statements":{"kind":"missing"},
1398 "compound_right_brace":{
1399 "kind":"token",
1400 "token":{
1401 "kind":"}",
1402 "text":"}",
1403 "offset":392,
1404 "leading_width":0,
1405 "width":1,
1406 "trailing_width":10,
1407 "leading":[],
1408 "trailing":[
1409 {"kind":"whitespace","text":" ","offset":393,"width":1},
1410 {"kind":"single_line_comment","text":"// error","offset":394,"width":8},
1411 {"kind":"end_of_line","text":"\n","offset":402,"width":1}
1413 "line_number":14
1417 "try_catch_clauses":{"kind":"missing"},
1418 "try_finally_clause":{"kind":"missing"}
1421 "kind":"switch_statement",
1422 "switch_keyword":{
1423 "kind":"token",
1424 "token":{
1425 "kind":"switch",
1426 "text":"switch",
1427 "offset":403,
1428 "leading_width":2,
1429 "width":6,
1430 "trailing_width":1,
1431 "leading":[{"kind":"whitespace","text":" ","offset":403,"width":2}],
1432 "trailing":[{"kind":"whitespace","text":" ","offset":411,"width":1}],
1433 "line_number":15
1436 "switch_left_paren":{
1437 "kind":"token",
1438 "token":{
1439 "kind":"(",
1440 "text":"(",
1441 "offset":412,
1442 "leading_width":0,
1443 "width":1,
1444 "trailing_width":0,
1445 "leading":[],
1446 "trailing":[],
1447 "line_number":15
1450 "switch_expression":{
1451 "kind":"variable",
1452 "variable_expression":{
1453 "kind":"token",
1454 "token":{
1455 "kind":"variable",
1456 "text":"$x",
1457 "offset":413,
1458 "leading_width":0,
1459 "width":2,
1460 "trailing_width":0,
1461 "leading":[],
1462 "trailing":[],
1463 "line_number":15
1467 "switch_right_paren":{
1468 "kind":"token",
1469 "token":{
1470 "kind":")",
1471 "text":")",
1472 "offset":415,
1473 "leading_width":0,
1474 "width":1,
1475 "trailing_width":1,
1476 "leading":[],
1477 "trailing":[{"kind":"whitespace","text":" ","offset":416,"width":1}],
1478 "line_number":15
1481 "switch_left_brace":{
1482 "kind":"token",
1483 "token":{
1484 "kind":"{",
1485 "text":"{",
1486 "offset":417,
1487 "leading_width":0,
1488 "width":1,
1489 "trailing_width":1,
1490 "leading":[],
1491 "trailing":[{"kind":"whitespace","text":" ","offset":418,"width":1}],
1492 "line_number":15
1495 "switch_sections":{"kind":"missing"},
1496 "switch_right_brace":{
1497 "kind":"token",
1498 "token":{
1499 "kind":"}",
1500 "text":"}",
1501 "offset":419,
1502 "leading_width":0,
1503 "width":1,
1504 "trailing_width":10,
1505 "leading":[],
1506 "trailing":[
1507 {"kind":"whitespace","text":" ","offset":420,"width":1},
1508 {"kind":"single_line_comment","text":"// error","offset":421,"width":8},
1509 {"kind":"end_of_line","text":"\n","offset":429,"width":1}
1511 "line_number":15
1516 "kind":"switch_statement",
1517 "switch_keyword":{
1518 "kind":"token",
1519 "token":{
1520 "kind":"switch",
1521 "text":"switch",
1522 "offset":430,
1523 "leading_width":2,
1524 "width":6,
1525 "trailing_width":1,
1526 "leading":[{"kind":"whitespace","text":" ","offset":430,"width":2}],
1527 "trailing":[{"kind":"whitespace","text":" ","offset":438,"width":1}],
1528 "line_number":16
1531 "switch_left_paren":{
1532 "kind":"token",
1533 "token":{
1534 "kind":"(",
1535 "text":"(",
1536 "offset":439,
1537 "leading_width":0,
1538 "width":1,
1539 "trailing_width":0,
1540 "leading":[],
1541 "trailing":[],
1542 "line_number":16
1545 "switch_expression":{
1546 "kind":"variable",
1547 "variable_expression":{
1548 "kind":"token",
1549 "token":{
1550 "kind":"variable",
1551 "text":"$x",
1552 "offset":440,
1553 "leading_width":0,
1554 "width":2,
1555 "trailing_width":0,
1556 "leading":[],
1557 "trailing":[],
1558 "line_number":16
1562 "switch_right_paren":{
1563 "kind":"token",
1564 "token":{
1565 "kind":")",
1566 "text":")",
1567 "offset":442,
1568 "leading_width":0,
1569 "width":1,
1570 "trailing_width":1,
1571 "leading":[],
1572 "trailing":[{"kind":"whitespace","text":" ","offset":443,"width":1}],
1573 "line_number":16
1576 "switch_left_brace":{
1577 "kind":"token",
1578 "token":{
1579 "kind":"{",
1580 "text":"{",
1581 "offset":444,
1582 "leading_width":0,
1583 "width":1,
1584 "trailing_width":1,
1585 "leading":[],
1586 "trailing":[{"kind":"whitespace","text":" ","offset":445,"width":1}],
1587 "line_number":16
1590 "switch_sections":{
1591 "kind":"list",
1592 "elements":[
1594 "kind":"switch_section",
1595 "switch_section_labels":{"kind":"missing"},
1596 "switch_section_statements":{
1597 "kind":"list",
1598 "elements":[
1600 "kind":"expression_statement",
1601 "expression_statement_expression":{
1602 "kind":"function_call_expression",
1603 "function_call_receiver":{
1604 "kind":"token",
1605 "token":{
1606 "kind":"name",
1607 "text":"foo",
1608 "offset":446,
1609 "leading_width":0,
1610 "width":3,
1611 "trailing_width":0,
1612 "leading":[],
1613 "trailing":[],
1614 "line_number":16
1617 "function_call_type_args":{"kind":"missing"},
1618 "function_call_left_paren":{
1619 "kind":"token",
1620 "token":{
1621 "kind":"(",
1622 "text":"(",
1623 "offset":449,
1624 "leading_width":0,
1625 "width":1,
1626 "trailing_width":0,
1627 "leading":[],
1628 "trailing":[],
1629 "line_number":16
1632 "function_call_argument_list":{"kind":"missing"},
1633 "function_call_right_paren":{
1634 "kind":"token",
1635 "token":{
1636 "kind":")",
1637 "text":")",
1638 "offset":450,
1639 "leading_width":0,
1640 "width":1,
1641 "trailing_width":0,
1642 "leading":[],
1643 "trailing":[],
1644 "line_number":16
1648 "expression_statement_semicolon":{
1649 "kind":"token",
1650 "token":{
1651 "kind":";",
1652 "text":";",
1653 "offset":451,
1654 "leading_width":0,
1655 "width":1,
1656 "trailing_width":1,
1657 "leading":[],
1658 "trailing":[{"kind":"whitespace","text":" ","offset":452,"width":1}],
1659 "line_number":16
1665 "switch_section_fallthrough":{"kind":"missing"}
1669 "switch_right_brace":{
1670 "kind":"token",
1671 "token":{
1672 "kind":"}",
1673 "text":"}",
1674 "offset":453,
1675 "leading_width":0,
1676 "width":1,
1677 "trailing_width":10,
1678 "leading":[],
1679 "trailing":[
1680 {"kind":"whitespace","text":" ","offset":454,"width":1},
1681 {"kind":"single_line_comment","text":"// error","offset":455,"width":8},
1682 {"kind":"end_of_line","text":"\n","offset":463,"width":1}
1684 "line_number":16
1689 "kind":"switch_statement",
1690 "switch_keyword":{
1691 "kind":"token",
1692 "token":{
1693 "kind":"switch",
1694 "text":"switch",
1695 "offset":464,
1696 "leading_width":2,
1697 "width":6,
1698 "trailing_width":1,
1699 "leading":[{"kind":"whitespace","text":" ","offset":464,"width":2}],
1700 "trailing":[{"kind":"whitespace","text":" ","offset":472,"width":1}],
1701 "line_number":17
1704 "switch_left_paren":{
1705 "kind":"token",
1706 "token":{
1707 "kind":"(",
1708 "text":"(",
1709 "offset":473,
1710 "leading_width":0,
1711 "width":1,
1712 "trailing_width":0,
1713 "leading":[],
1714 "trailing":[],
1715 "line_number":17
1718 "switch_expression":{
1719 "kind":"variable",
1720 "variable_expression":{
1721 "kind":"token",
1722 "token":{
1723 "kind":"variable",
1724 "text":"$x",
1725 "offset":474,
1726 "leading_width":0,
1727 "width":2,
1728 "trailing_width":0,
1729 "leading":[],
1730 "trailing":[],
1731 "line_number":17
1735 "switch_right_paren":{
1736 "kind":"token",
1737 "token":{
1738 "kind":")",
1739 "text":")",
1740 "offset":476,
1741 "leading_width":0,
1742 "width":1,
1743 "trailing_width":1,
1744 "leading":[],
1745 "trailing":[{"kind":"whitespace","text":" ","offset":477,"width":1}],
1746 "line_number":17
1749 "switch_left_brace":{
1750 "kind":"token",
1751 "token":{
1752 "kind":"{",
1753 "text":"{",
1754 "offset":478,
1755 "leading_width":0,
1756 "width":1,
1757 "trailing_width":1,
1758 "leading":[],
1759 "trailing":[{"kind":"whitespace","text":" ","offset":479,"width":1}],
1760 "line_number":17
1763 "switch_sections":{
1764 "kind":"list",
1765 "elements":[
1767 "kind":"switch_section",
1768 "switch_section_labels":{"kind":"missing"},
1769 "switch_section_statements":{
1770 "kind":"list",
1771 "elements":[
1773 "kind":"expression_statement",
1774 "expression_statement_expression":{
1775 "kind":"function_call_expression",
1776 "function_call_receiver":{
1777 "kind":"token",
1778 "token":{
1779 "kind":"name",
1780 "text":"foo",
1781 "offset":480,
1782 "leading_width":0,
1783 "width":3,
1784 "trailing_width":0,
1785 "leading":[],
1786 "trailing":[],
1787 "line_number":17
1790 "function_call_type_args":{"kind":"missing"},
1791 "function_call_left_paren":{
1792 "kind":"token",
1793 "token":{
1794 "kind":"(",
1795 "text":"(",
1796 "offset":483,
1797 "leading_width":0,
1798 "width":1,
1799 "trailing_width":0,
1800 "leading":[],
1801 "trailing":[],
1802 "line_number":17
1805 "function_call_argument_list":{"kind":"missing"},
1806 "function_call_right_paren":{
1807 "kind":"token",
1808 "token":{
1809 "kind":")",
1810 "text":")",
1811 "offset":484,
1812 "leading_width":0,
1813 "width":1,
1814 "trailing_width":0,
1815 "leading":[],
1816 "trailing":[],
1817 "line_number":17
1821 "expression_statement_semicolon":{
1822 "kind":"token",
1823 "token":{
1824 "kind":";",
1825 "text":";",
1826 "offset":485,
1827 "leading_width":0,
1828 "width":1,
1829 "trailing_width":1,
1830 "leading":[],
1831 "trailing":[{"kind":"whitespace","text":" ","offset":486,"width":1}],
1832 "line_number":17
1837 "kind":"expression_statement",
1838 "expression_statement_expression":{
1839 "kind":"function_call_expression",
1840 "function_call_receiver":{
1841 "kind":"token",
1842 "token":{
1843 "kind":"name",
1844 "text":"foo",
1845 "offset":487,
1846 "leading_width":0,
1847 "width":3,
1848 "trailing_width":0,
1849 "leading":[],
1850 "trailing":[],
1851 "line_number":17
1854 "function_call_type_args":{"kind":"missing"},
1855 "function_call_left_paren":{
1856 "kind":"token",
1857 "token":{
1858 "kind":"(",
1859 "text":"(",
1860 "offset":490,
1861 "leading_width":0,
1862 "width":1,
1863 "trailing_width":0,
1864 "leading":[],
1865 "trailing":[],
1866 "line_number":17
1869 "function_call_argument_list":{"kind":"missing"},
1870 "function_call_right_paren":{
1871 "kind":"token",
1872 "token":{
1873 "kind":")",
1874 "text":")",
1875 "offset":491,
1876 "leading_width":0,
1877 "width":1,
1878 "trailing_width":0,
1879 "leading":[],
1880 "trailing":[],
1881 "line_number":17
1885 "expression_statement_semicolon":{
1886 "kind":"token",
1887 "token":{
1888 "kind":";",
1889 "text":";",
1890 "offset":492,
1891 "leading_width":0,
1892 "width":1,
1893 "trailing_width":1,
1894 "leading":[],
1895 "trailing":[{"kind":"whitespace","text":" ","offset":493,"width":1}],
1896 "line_number":17
1902 "switch_section_fallthrough":{"kind":"missing"}
1906 "switch_right_brace":{
1907 "kind":"token",
1908 "token":{
1909 "kind":"}",
1910 "text":"}",
1911 "offset":494,
1912 "leading_width":0,
1913 "width":1,
1914 "trailing_width":10,
1915 "leading":[],
1916 "trailing":[
1917 {"kind":"whitespace","text":" ","offset":495,"width":1},
1918 {"kind":"single_line_comment","text":"// error","offset":496,"width":8},
1919 {"kind":"end_of_line","text":"\n","offset":504,"width":1}
1921 "line_number":17
1927 "compound_right_brace":{
1928 "kind":"token",
1929 "token":{
1930 "kind":"}",
1931 "text":"}",
1932 "offset":505,
1933 "leading_width":0,
1934 "width":1,
1935 "trailing_width":1,
1936 "leading":[],
1937 "trailing":[{"kind":"end_of_line","text":"\n","offset":506,"width":1}],
1938 "line_number":18
1944 "kind":"end_of_file",
1945 "end_of_file_token":{
1946 "kind":"token",
1947 "token":{
1948 "kind":"end_of_file",
1949 "text":"",
1950 "offset":507,
1951 "leading_width":0,
1952 "width":0,
1953 "trailing_width":0,
1954 "leading":[],
1955 "trailing":[],
1956 "line_number":19
1963 "program_text":"<?hh\nfunction bar() : void {\n case 123: ; // error, outside switch\n default: ; // error, outside switch\n switch ($x) { case 123: ; default: break;} // no error\n break; // error\n while($a) {\n if ($b) break; // no error\n if ($c) continue; // no error\n $x = function($b) { break; }; // error\n }\n try {} catch (Exception $ex) {} // no error\n try {} finally {} // no error\n try {} // error\n switch ($x) { } // error\n switch ($x) { foo(); } // error\n switch ($x) { foo(); foo(); } // error\n}\n",
1964 "version":"2020-04-14-0002"