Use JSON for FFP tests
[hiphop-php.git] / hphp / hack / test / full_fidelity / cases / test_soft_attribute.php.json.exp
blob7830241ff0568113b9228fbb41d7ec627ac72ffb
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":"alias_declaration",
57 "alias_attribute_spec":{"kind":"missing"},
58 "alias_keyword":{
59 "kind":"token",
60 "token":{
61 "kind":"type",
62 "text":"type",
63 "offset":5,
64 "leading_width":1,
65 "width":4,
66 "trailing_width":1,
67 "leading":[{"kind":"end_of_line","text":"\n","offset":5,"width":1}],
68 "trailing":[{"kind":"whitespace","text":" ","offset":10,"width":1}],
69 "line_number":3
72 "alias_name":{
73 "kind":"token",
74 "token":{
75 "kind":"name",
76 "text":"t",
77 "offset":11,
78 "leading_width":0,
79 "width":1,
80 "trailing_width":1,
81 "leading":[],
82 "trailing":[{"kind":"whitespace","text":" ","offset":12,"width":1}],
83 "line_number":3
86 "alias_generic_parameter":{"kind":"missing"},
87 "alias_constraint":{"kind":"missing"},
88 "alias_equal":{
89 "kind":"token",
90 "token":{
91 "kind":"=",
92 "text":"=",
93 "offset":13,
94 "leading_width":0,
95 "width":1,
96 "trailing_width":1,
97 "leading":[],
98 "trailing":[{"kind":"whitespace","text":" ","offset":14,"width":1}],
99 "line_number":3
102 "alias_type":{
103 "kind":"attributized_specifier",
104 "attributized_specifier_attribute_spec":{
105 "kind":"old_attribute_specification",
106 "old_attribute_specification_left_double_angle":{
107 "kind":"token",
108 "token":{
109 "kind":"<<",
110 "text":"<<",
111 "offset":15,
112 "leading_width":0,
113 "width":2,
114 "trailing_width":0,
115 "leading":[],
116 "trailing":[],
117 "line_number":3
120 "old_attribute_specification_attributes":{
121 "kind":"list",
122 "elements":[
124 "kind":"list_item",
125 "list_item":{
126 "kind":"constructor_call",
127 "constructor_call_type":{
128 "kind":"token",
129 "token":{
130 "kind":"name",
131 "text":"__Soft",
132 "offset":17,
133 "leading_width":0,
134 "width":6,
135 "trailing_width":0,
136 "leading":[],
137 "trailing":[],
138 "line_number":3
141 "constructor_call_left_paren":{"kind":"missing"},
142 "constructor_call_argument_list":{"kind":"missing"},
143 "constructor_call_right_paren":{"kind":"missing"}
145 "list_separator":{"kind":"missing"}
149 "old_attribute_specification_right_double_angle":{
150 "kind":"token",
151 "token":{
152 "kind":">>",
153 "text":">>",
154 "offset":23,
155 "leading_width":0,
156 "width":2,
157 "trailing_width":1,
158 "leading":[],
159 "trailing":[{"kind":"whitespace","text":" ","offset":25,"width":1}],
160 "line_number":3
164 "attributized_specifier_type":{
165 "kind":"darray_type_specifier",
166 "darray_keyword":{
167 "kind":"token",
168 "token":{
169 "kind":"darray",
170 "text":"darray",
171 "offset":26,
172 "leading_width":0,
173 "width":6,
174 "trailing_width":0,
175 "leading":[],
176 "trailing":[],
177 "line_number":3
180 "darray_left_angle":{
181 "kind":"token",
182 "token":{
183 "kind":"<",
184 "text":"<",
185 "offset":32,
186 "leading_width":0,
187 "width":1,
188 "trailing_width":0,
189 "leading":[],
190 "trailing":[],
191 "line_number":3
194 "darray_key":{
195 "kind":"simple_type_specifier",
196 "simple_type_specifier":{
197 "kind":"token",
198 "token":{
199 "kind":"int",
200 "text":"int",
201 "offset":33,
202 "leading_width":0,
203 "width":3,
204 "trailing_width":0,
205 "leading":[],
206 "trailing":[],
207 "line_number":3
211 "darray_comma":{
212 "kind":"token",
213 "token":{
214 "kind":",",
215 "text":",",
216 "offset":36,
217 "leading_width":0,
218 "width":1,
219 "trailing_width":1,
220 "leading":[],
221 "trailing":[{"kind":"whitespace","text":" ","offset":37,"width":1}],
222 "line_number":3
225 "darray_value":{
226 "kind":"attributized_specifier",
227 "attributized_specifier_attribute_spec":{
228 "kind":"old_attribute_specification",
229 "old_attribute_specification_left_double_angle":{
230 "kind":"token",
231 "token":{
232 "kind":"<<",
233 "text":"<<",
234 "offset":38,
235 "leading_width":0,
236 "width":2,
237 "trailing_width":0,
238 "leading":[],
239 "trailing":[],
240 "line_number":3
243 "old_attribute_specification_attributes":{
244 "kind":"list",
245 "elements":[
247 "kind":"list_item",
248 "list_item":{
249 "kind":"constructor_call",
250 "constructor_call_type":{
251 "kind":"token",
252 "token":{
253 "kind":"name",
254 "text":"__Soft",
255 "offset":40,
256 "leading_width":0,
257 "width":6,
258 "trailing_width":0,
259 "leading":[],
260 "trailing":[],
261 "line_number":3
264 "constructor_call_left_paren":{"kind":"missing"},
265 "constructor_call_argument_list":{"kind":"missing"},
266 "constructor_call_right_paren":{"kind":"missing"}
268 "list_separator":{"kind":"missing"}
272 "old_attribute_specification_right_double_angle":{
273 "kind":"token",
274 "token":{
275 "kind":">>",
276 "text":">>",
277 "offset":46,
278 "leading_width":0,
279 "width":2,
280 "trailing_width":1,
281 "leading":[],
282 "trailing":[{"kind":"whitespace","text":" ","offset":48,"width":1}],
283 "line_number":3
287 "attributized_specifier_type":{
288 "kind":"simple_type_specifier",
289 "simple_type_specifier":{
290 "kind":"token",
291 "token":{
292 "kind":"string",
293 "text":"string",
294 "offset":49,
295 "leading_width":0,
296 "width":6,
297 "trailing_width":0,
298 "leading":[],
299 "trailing":[],
300 "line_number":3
305 "darray_trailing_comma":{"kind":"missing"},
306 "darray_right_angle":{
307 "kind":"token",
308 "token":{
309 "kind":">",
310 "text":">",
311 "offset":55,
312 "leading_width":0,
313 "width":1,
314 "trailing_width":0,
315 "leading":[],
316 "trailing":[],
317 "line_number":3
322 "alias_semicolon":{
323 "kind":"token",
324 "token":{
325 "kind":";",
326 "text":";",
327 "offset":56,
328 "leading_width":0,
329 "width":1,
330 "trailing_width":1,
331 "leading":[],
332 "trailing":[{"kind":"end_of_line","text":"\n","offset":57,"width":1}],
333 "line_number":3
338 "kind":"alias_declaration",
339 "alias_attribute_spec":{"kind":"missing"},
340 "alias_keyword":{
341 "kind":"token",
342 "token":{
343 "kind":"type",
344 "text":"type",
345 "offset":58,
346 "leading_width":0,
347 "width":4,
348 "trailing_width":1,
349 "leading":[],
350 "trailing":[{"kind":"whitespace","text":" ","offset":62,"width":1}],
351 "line_number":4
354 "alias_name":{
355 "kind":"token",
356 "token":{
357 "kind":"name",
358 "text":"u",
359 "offset":63,
360 "leading_width":0,
361 "width":1,
362 "trailing_width":1,
363 "leading":[],
364 "trailing":[{"kind":"whitespace","text":" ","offset":64,"width":1}],
365 "line_number":4
368 "alias_generic_parameter":{"kind":"missing"},
369 "alias_constraint":{"kind":"missing"},
370 "alias_equal":{
371 "kind":"token",
372 "token":{
373 "kind":"=",
374 "text":"=",
375 "offset":65,
376 "leading_width":0,
377 "width":1,
378 "trailing_width":1,
379 "leading":[],
380 "trailing":[{"kind":"whitespace","text":" ","offset":66,"width":1}],
381 "line_number":4
384 "alias_type":{
385 "kind":"varray_type_specifier",
386 "varray_keyword":{
387 "kind":"token",
388 "token":{
389 "kind":"varray",
390 "text":"varray",
391 "offset":67,
392 "leading_width":0,
393 "width":6,
394 "trailing_width":0,
395 "leading":[],
396 "trailing":[],
397 "line_number":4
400 "varray_left_angle":{
401 "kind":"token",
402 "token":{
403 "kind":"<",
404 "text":"<",
405 "offset":73,
406 "leading_width":0,
407 "width":1,
408 "trailing_width":0,
409 "leading":[],
410 "trailing":[],
411 "line_number":4
414 "varray_type":{
415 "kind":"attributized_specifier",
416 "attributized_specifier_attribute_spec":{
417 "kind":"old_attribute_specification",
418 "old_attribute_specification_left_double_angle":{
419 "kind":"token",
420 "token":{
421 "kind":"<<",
422 "text":"<<",
423 "offset":74,
424 "leading_width":0,
425 "width":2,
426 "trailing_width":0,
427 "leading":[],
428 "trailing":[],
429 "line_number":4
432 "old_attribute_specification_attributes":{
433 "kind":"list",
434 "elements":[
436 "kind":"list_item",
437 "list_item":{
438 "kind":"constructor_call",
439 "constructor_call_type":{
440 "kind":"token",
441 "token":{
442 "kind":"name",
443 "text":"__Soft",
444 "offset":76,
445 "leading_width":0,
446 "width":6,
447 "trailing_width":0,
448 "leading":[],
449 "trailing":[],
450 "line_number":4
453 "constructor_call_left_paren":{"kind":"missing"},
454 "constructor_call_argument_list":{"kind":"missing"},
455 "constructor_call_right_paren":{"kind":"missing"}
457 "list_separator":{"kind":"missing"}
461 "old_attribute_specification_right_double_angle":{
462 "kind":"token",
463 "token":{
464 "kind":">>",
465 "text":">>",
466 "offset":82,
467 "leading_width":0,
468 "width":2,
469 "trailing_width":1,
470 "leading":[],
471 "trailing":[{"kind":"whitespace","text":" ","offset":84,"width":1}],
472 "line_number":4
476 "attributized_specifier_type":{
477 "kind":"simple_type_specifier",
478 "simple_type_specifier":{
479 "kind":"token",
480 "token":{
481 "kind":"int",
482 "text":"int",
483 "offset":85,
484 "leading_width":0,
485 "width":3,
486 "trailing_width":0,
487 "leading":[],
488 "trailing":[],
489 "line_number":4
494 "varray_trailing_comma":{"kind":"missing"},
495 "varray_right_angle":{
496 "kind":"token",
497 "token":{
498 "kind":">",
499 "text":">",
500 "offset":88,
501 "leading_width":0,
502 "width":1,
503 "trailing_width":0,
504 "leading":[],
505 "trailing":[],
506 "line_number":4
510 "alias_semicolon":{
511 "kind":"token",
512 "token":{
513 "kind":";",
514 "text":";",
515 "offset":89,
516 "leading_width":0,
517 "width":1,
518 "trailing_width":1,
519 "leading":[],
520 "trailing":[{"kind":"end_of_line","text":"\n","offset":90,"width":1}],
521 "line_number":4
526 "kind":"function_declaration",
527 "function_attribute_spec":{"kind":"missing"},
528 "function_declaration_header":{
529 "kind":"function_declaration_header",
530 "function_modifiers":{"kind":"missing"},
531 "function_keyword":{
532 "kind":"token",
533 "token":{
534 "kind":"function",
535 "text":"function",
536 "offset":91,
537 "leading_width":1,
538 "width":8,
539 "trailing_width":1,
540 "leading":[{"kind":"end_of_line","text":"\n","offset":91,"width":1}],
541 "trailing":[{"kind":"whitespace","text":" ","offset":100,"width":1}],
542 "line_number":6
545 "function_name":{
546 "kind":"token",
547 "token":{
548 "kind":"name",
549 "text":"f",
550 "offset":101,
551 "leading_width":0,
552 "width":1,
553 "trailing_width":0,
554 "leading":[],
555 "trailing":[],
556 "line_number":6
559 "function_type_parameter_list":{
560 "kind":"type_parameters",
561 "type_parameters_left_angle":{
562 "kind":"token",
563 "token":{
564 "kind":"<",
565 "text":"<",
566 "offset":102,
567 "leading_width":0,
568 "width":1,
569 "trailing_width":0,
570 "leading":[],
571 "trailing":[],
572 "line_number":6
575 "type_parameters_parameters":{
576 "kind":"list",
577 "elements":[
579 "kind":"list_item",
580 "list_item":{
581 "kind":"type_parameter",
582 "type_attribute_spec":{"kind":"missing"},
583 "type_reified":{"kind":"missing"},
584 "type_variance":{"kind":"missing"},
585 "type_name":{
586 "kind":"token",
587 "token":{
588 "kind":"name",
589 "text":"T",
590 "offset":103,
591 "leading_width":0,
592 "width":1,
593 "trailing_width":0,
594 "leading":[],
595 "trailing":[],
596 "line_number":6
599 "type_constraints":{"kind":"missing"}
601 "list_separator":{"kind":"missing"}
605 "type_parameters_right_angle":{
606 "kind":"token",
607 "token":{
608 "kind":">",
609 "text":">",
610 "offset":104,
611 "leading_width":0,
612 "width":1,
613 "trailing_width":0,
614 "leading":[],
615 "trailing":[],
616 "line_number":6
620 "function_left_paren":{
621 "kind":"token",
622 "token":{
623 "kind":"(",
624 "text":"(",
625 "offset":105,
626 "leading_width":0,
627 "width":1,
628 "trailing_width":0,
629 "leading":[],
630 "trailing":[],
631 "line_number":6
634 "function_parameter_list":{"kind":"missing"},
635 "function_right_paren":{
636 "kind":"token",
637 "token":{
638 "kind":")",
639 "text":")",
640 "offset":106,
641 "leading_width":0,
642 "width":1,
643 "trailing_width":0,
644 "leading":[],
645 "trailing":[],
646 "line_number":6
649 "function_colon":{
650 "kind":"token",
651 "token":{
652 "kind":":",
653 "text":":",
654 "offset":107,
655 "leading_width":0,
656 "width":1,
657 "trailing_width":1,
658 "leading":[],
659 "trailing":[{"kind":"whitespace","text":" ","offset":108,"width":1}],
660 "line_number":6
663 "function_type":{
664 "kind":"simple_type_specifier",
665 "simple_type_specifier":{
666 "kind":"token",
667 "token":{
668 "kind":"void",
669 "text":"void",
670 "offset":109,
671 "leading_width":0,
672 "width":4,
673 "trailing_width":1,
674 "leading":[],
675 "trailing":[{"kind":"whitespace","text":" ","offset":113,"width":1}],
676 "line_number":6
680 "function_where_clause":{"kind":"missing"}
682 "function_body":{
683 "kind":"compound_statement",
684 "compound_left_brace":{
685 "kind":"token",
686 "token":{
687 "kind":"{",
688 "text":"{",
689 "offset":114,
690 "leading_width":0,
691 "width":1,
692 "trailing_width":0,
693 "leading":[],
694 "trailing":[],
695 "line_number":6
698 "compound_statements":{"kind":"missing"},
699 "compound_right_brace":{
700 "kind":"token",
701 "token":{
702 "kind":"}",
703 "text":"}",
704 "offset":115,
705 "leading_width":0,
706 "width":1,
707 "trailing_width":1,
708 "leading":[],
709 "trailing":[{"kind":"end_of_line","text":"\n","offset":116,"width":1}],
710 "line_number":6
716 "kind":"function_declaration",
717 "function_attribute_spec":{"kind":"missing"},
718 "function_declaration_header":{
719 "kind":"function_declaration_header",
720 "function_modifiers":{"kind":"missing"},
721 "function_keyword":{
722 "kind":"token",
723 "token":{
724 "kind":"function",
725 "text":"function",
726 "offset":117,
727 "leading_width":1,
728 "width":8,
729 "trailing_width":1,
730 "leading":[{"kind":"end_of_line","text":"\n","offset":117,"width":1}],
731 "trailing":[{"kind":"whitespace","text":" ","offset":126,"width":1}],
732 "line_number":8
735 "function_name":{
736 "kind":"token",
737 "token":{
738 "kind":"name",
739 "text":"g",
740 "offset":127,
741 "leading_width":0,
742 "width":1,
743 "trailing_width":0,
744 "leading":[],
745 "trailing":[],
746 "line_number":8
749 "function_type_parameter_list":{"kind":"missing"},
750 "function_left_paren":{
751 "kind":"token",
752 "token":{
753 "kind":"(",
754 "text":"(",
755 "offset":128,
756 "leading_width":0,
757 "width":1,
758 "trailing_width":0,
759 "leading":[],
760 "trailing":[],
761 "line_number":8
764 "function_parameter_list":{
765 "kind":"list",
766 "elements":[
768 "kind":"list_item",
769 "list_item":{
770 "kind":"parameter_declaration",
771 "parameter_attribute":{
772 "kind":"old_attribute_specification",
773 "old_attribute_specification_left_double_angle":{
774 "kind":"token",
775 "token":{
776 "kind":"<<",
777 "text":"<<",
778 "offset":129,
779 "leading_width":0,
780 "width":2,
781 "trailing_width":0,
782 "leading":[],
783 "trailing":[],
784 "line_number":8
787 "old_attribute_specification_attributes":{
788 "kind":"list",
789 "elements":[
791 "kind":"list_item",
792 "list_item":{
793 "kind":"constructor_call",
794 "constructor_call_type":{
795 "kind":"token",
796 "token":{
797 "kind":"name",
798 "text":"__Soft",
799 "offset":131,
800 "leading_width":0,
801 "width":6,
802 "trailing_width":0,
803 "leading":[],
804 "trailing":[],
805 "line_number":8
808 "constructor_call_left_paren":{"kind":"missing"},
809 "constructor_call_argument_list":{"kind":"missing"},
810 "constructor_call_right_paren":{"kind":"missing"}
812 "list_separator":{"kind":"missing"}
816 "old_attribute_specification_right_double_angle":{
817 "kind":"token",
818 "token":{
819 "kind":">>",
820 "text":">>",
821 "offset":137,
822 "leading_width":0,
823 "width":2,
824 "trailing_width":1,
825 "leading":[],
826 "trailing":[{"kind":"whitespace","text":" ","offset":139,"width":1}],
827 "line_number":8
831 "parameter_visibility":{"kind":"missing"},
832 "parameter_call_convention":{"kind":"missing"},
833 "parameter_type":{
834 "kind":"simple_type_specifier",
835 "simple_type_specifier":{
836 "kind":"token",
837 "token":{
838 "kind":"int",
839 "text":"int",
840 "offset":140,
841 "leading_width":0,
842 "width":3,
843 "trailing_width":1,
844 "leading":[],
845 "trailing":[{"kind":"whitespace","text":" ","offset":143,"width":1}],
846 "line_number":8
850 "parameter_name":{
851 "kind":"token",
852 "token":{
853 "kind":"variable",
854 "text":"$_",
855 "offset":144,
856 "leading_width":0,
857 "width":2,
858 "trailing_width":0,
859 "leading":[],
860 "trailing":[],
861 "line_number":8
864 "parameter_default_value":{"kind":"missing"}
866 "list_separator":{"kind":"missing"}
870 "function_right_paren":{
871 "kind":"token",
872 "token":{
873 "kind":")",
874 "text":")",
875 "offset":146,
876 "leading_width":0,
877 "width":1,
878 "trailing_width":0,
879 "leading":[],
880 "trailing":[],
881 "line_number":8
884 "function_colon":{
885 "kind":"token",
886 "token":{
887 "kind":":",
888 "text":":",
889 "offset":147,
890 "leading_width":0,
891 "width":1,
892 "trailing_width":1,
893 "leading":[],
894 "trailing":[{"kind":"whitespace","text":" ","offset":148,"width":1}],
895 "line_number":8
898 "function_type":{
899 "kind":"attributized_specifier",
900 "attributized_specifier_attribute_spec":{
901 "kind":"old_attribute_specification",
902 "old_attribute_specification_left_double_angle":{
903 "kind":"token",
904 "token":{
905 "kind":"<<",
906 "text":"<<",
907 "offset":149,
908 "leading_width":0,
909 "width":2,
910 "trailing_width":0,
911 "leading":[],
912 "trailing":[],
913 "line_number":8
916 "old_attribute_specification_attributes":{
917 "kind":"list",
918 "elements":[
920 "kind":"list_item",
921 "list_item":{
922 "kind":"constructor_call",
923 "constructor_call_type":{
924 "kind":"token",
925 "token":{
926 "kind":"name",
927 "text":"__Soft",
928 "offset":151,
929 "leading_width":0,
930 "width":6,
931 "trailing_width":0,
932 "leading":[],
933 "trailing":[],
934 "line_number":8
937 "constructor_call_left_paren":{"kind":"missing"},
938 "constructor_call_argument_list":{"kind":"missing"},
939 "constructor_call_right_paren":{"kind":"missing"}
941 "list_separator":{"kind":"missing"}
945 "old_attribute_specification_right_double_angle":{
946 "kind":"token",
947 "token":{
948 "kind":">>",
949 "text":">>",
950 "offset":157,
951 "leading_width":0,
952 "width":2,
953 "trailing_width":1,
954 "leading":[],
955 "trailing":[{"kind":"whitespace","text":" ","offset":159,"width":1}],
956 "line_number":8
960 "attributized_specifier_type":{
961 "kind":"simple_type_specifier",
962 "simple_type_specifier":{
963 "kind":"token",
964 "token":{
965 "kind":"string",
966 "text":"string",
967 "offset":160,
968 "leading_width":0,
969 "width":6,
970 "trailing_width":1,
971 "leading":[],
972 "trailing":[{"kind":"whitespace","text":" ","offset":166,"width":1}],
973 "line_number":8
978 "function_where_clause":{"kind":"missing"}
980 "function_body":{
981 "kind":"compound_statement",
982 "compound_left_brace":{
983 "kind":"token",
984 "token":{
985 "kind":"{",
986 "text":"{",
987 "offset":167,
988 "leading_width":0,
989 "width":1,
990 "trailing_width":1,
991 "leading":[],
992 "trailing":[{"kind":"end_of_line","text":"\n","offset":168,"width":1}],
993 "line_number":8
996 "compound_statements":{
997 "kind":"list",
998 "elements":[
1000 "kind":"expression_statement",
1001 "expression_statement_expression":{
1002 "kind":"function_call_expression",
1003 "function_call_receiver":{
1004 "kind":"token",
1005 "token":{
1006 "kind":"name",
1007 "text":"f",
1008 "offset":169,
1009 "leading_width":2,
1010 "width":1,
1011 "trailing_width":0,
1012 "leading":[{"kind":"whitespace","text":" ","offset":169,"width":2}],
1013 "trailing":[],
1014 "line_number":9
1017 "function_call_type_args":{
1018 "kind":"type_arguments",
1019 "type_arguments_left_angle":{
1020 "kind":"token",
1021 "token":{
1022 "kind":"<",
1023 "text":"<",
1024 "offset":172,
1025 "leading_width":0,
1026 "width":1,
1027 "trailing_width":0,
1028 "leading":[],
1029 "trailing":[],
1030 "line_number":9
1033 "type_arguments_types":{
1034 "kind":"list",
1035 "elements":[
1037 "kind":"list_item",
1038 "list_item":{
1039 "kind":"attributized_specifier",
1040 "attributized_specifier_attribute_spec":{
1041 "kind":"old_attribute_specification",
1042 "old_attribute_specification_left_double_angle":{
1043 "kind":"token",
1044 "token":{
1045 "kind":"<<",
1046 "text":"<<",
1047 "offset":173,
1048 "leading_width":0,
1049 "width":2,
1050 "trailing_width":0,
1051 "leading":[],
1052 "trailing":[],
1053 "line_number":9
1056 "old_attribute_specification_attributes":{
1057 "kind":"list",
1058 "elements":[
1060 "kind":"list_item",
1061 "list_item":{
1062 "kind":"constructor_call",
1063 "constructor_call_type":{
1064 "kind":"token",
1065 "token":{
1066 "kind":"name",
1067 "text":"__Soft",
1068 "offset":175,
1069 "leading_width":0,
1070 "width":6,
1071 "trailing_width":0,
1072 "leading":[],
1073 "trailing":[],
1074 "line_number":9
1077 "constructor_call_left_paren":{"kind":"missing"},
1078 "constructor_call_argument_list":{"kind":"missing"},
1079 "constructor_call_right_paren":{"kind":"missing"}
1081 "list_separator":{"kind":"missing"}
1085 "old_attribute_specification_right_double_angle":{
1086 "kind":"token",
1087 "token":{
1088 "kind":">>",
1089 "text":">>",
1090 "offset":181,
1091 "leading_width":0,
1092 "width":2,
1093 "trailing_width":1,
1094 "leading":[],
1095 "trailing":[{"kind":"whitespace","text":" ","offset":183,"width":1}],
1096 "line_number":9
1100 "attributized_specifier_type":{
1101 "kind":"simple_type_specifier",
1102 "simple_type_specifier":{
1103 "kind":"token",
1104 "token":{
1105 "kind":"float",
1106 "text":"float",
1107 "offset":184,
1108 "leading_width":0,
1109 "width":5,
1110 "trailing_width":0,
1111 "leading":[],
1112 "trailing":[],
1113 "line_number":9
1118 "list_separator":{"kind":"missing"}
1122 "type_arguments_right_angle":{
1123 "kind":"token",
1124 "token":{
1125 "kind":">",
1126 "text":">",
1127 "offset":189,
1128 "leading_width":0,
1129 "width":1,
1130 "trailing_width":0,
1131 "leading":[],
1132 "trailing":[],
1133 "line_number":9
1137 "function_call_left_paren":{
1138 "kind":"token",
1139 "token":{
1140 "kind":"(",
1141 "text":"(",
1142 "offset":190,
1143 "leading_width":0,
1144 "width":1,
1145 "trailing_width":0,
1146 "leading":[],
1147 "trailing":[],
1148 "line_number":9
1151 "function_call_argument_list":{"kind":"missing"},
1152 "function_call_right_paren":{
1153 "kind":"token",
1154 "token":{
1155 "kind":")",
1156 "text":")",
1157 "offset":191,
1158 "leading_width":0,
1159 "width":1,
1160 "trailing_width":0,
1161 "leading":[],
1162 "trailing":[],
1163 "line_number":9
1167 "expression_statement_semicolon":{
1168 "kind":"token",
1169 "token":{
1170 "kind":";",
1171 "text":";",
1172 "offset":192,
1173 "leading_width":0,
1174 "width":1,
1175 "trailing_width":1,
1176 "leading":[],
1177 "trailing":[{"kind":"end_of_line","text":"\n","offset":193,"width":1}],
1178 "line_number":9
1183 "kind":"return_statement",
1184 "return_keyword":{
1185 "kind":"token",
1186 "token":{
1187 "kind":"return",
1188 "text":"return",
1189 "offset":194,
1190 "leading_width":2,
1191 "width":6,
1192 "trailing_width":1,
1193 "leading":[{"kind":"whitespace","text":" ","offset":194,"width":2}],
1194 "trailing":[{"kind":"whitespace","text":" ","offset":202,"width":1}],
1195 "line_number":10
1198 "return_expression":{
1199 "kind":"literal",
1200 "literal_expression":{
1201 "kind":"token",
1202 "token":{
1203 "kind":"double_quoted_string_literal",
1204 "text":"\"hello\"",
1205 "offset":203,
1206 "leading_width":0,
1207 "width":7,
1208 "trailing_width":0,
1209 "leading":[],
1210 "trailing":[],
1211 "line_number":10
1215 "return_semicolon":{
1216 "kind":"token",
1217 "token":{
1218 "kind":";",
1219 "text":";",
1220 "offset":210,
1221 "leading_width":0,
1222 "width":1,
1223 "trailing_width":1,
1224 "leading":[],
1225 "trailing":[{"kind":"end_of_line","text":"\n","offset":211,"width":1}],
1226 "line_number":10
1232 "compound_right_brace":{
1233 "kind":"token",
1234 "token":{
1235 "kind":"}",
1236 "text":"}",
1237 "offset":212,
1238 "leading_width":0,
1239 "width":1,
1240 "trailing_width":1,
1241 "leading":[],
1242 "trailing":[{"kind":"end_of_line","text":"\n","offset":213,"width":1}],
1243 "line_number":11
1249 "kind":"classish_declaration",
1250 "classish_attribute":{"kind":"missing"},
1251 "classish_modifiers":{
1252 "kind":"list",
1253 "elements":[
1255 "kind":"token",
1256 "token":{
1257 "kind":"abstract",
1258 "text":"abstract",
1259 "offset":214,
1260 "leading_width":1,
1261 "width":8,
1262 "trailing_width":1,
1263 "leading":[{"kind":"end_of_line","text":"\n","offset":214,"width":1}],
1264 "trailing":[{"kind":"whitespace","text":" ","offset":223,"width":1}],
1265 "line_number":13
1270 "classish_xhp":{"kind":"missing"},
1271 "classish_keyword":{
1272 "kind":"token",
1273 "token":{
1274 "kind":"class",
1275 "text":"class",
1276 "offset":224,
1277 "leading_width":0,
1278 "width":5,
1279 "trailing_width":1,
1280 "leading":[],
1281 "trailing":[{"kind":"whitespace","text":" ","offset":229,"width":1}],
1282 "line_number":13
1285 "classish_name":{
1286 "kind":"token",
1287 "token":{
1288 "kind":"name",
1289 "text":"C",
1290 "offset":230,
1291 "leading_width":0,
1292 "width":1,
1293 "trailing_width":1,
1294 "leading":[],
1295 "trailing":[{"kind":"whitespace","text":" ","offset":231,"width":1}],
1296 "line_number":13
1299 "classish_type_parameters":{"kind":"missing"},
1300 "classish_extends_keyword":{"kind":"missing"},
1301 "classish_extends_list":{"kind":"missing"},
1302 "classish_implements_keyword":{"kind":"missing"},
1303 "classish_implements_list":{"kind":"missing"},
1304 "classish_where_clause":{"kind":"missing"},
1305 "classish_body":{
1306 "kind":"classish_body",
1307 "classish_body_left_brace":{
1308 "kind":"token",
1309 "token":{
1310 "kind":"{",
1311 "text":"{",
1312 "offset":232,
1313 "leading_width":0,
1314 "width":1,
1315 "trailing_width":1,
1316 "leading":[],
1317 "trailing":[{"kind":"end_of_line","text":"\n","offset":233,"width":1}],
1318 "line_number":13
1321 "classish_body_elements":{
1322 "kind":"list",
1323 "elements":[
1325 "kind":"property_declaration",
1326 "property_attribute_spec":{
1327 "kind":"old_attribute_specification",
1328 "old_attribute_specification_left_double_angle":{
1329 "kind":"token",
1330 "token":{
1331 "kind":"<<",
1332 "text":"<<",
1333 "offset":234,
1334 "leading_width":2,
1335 "width":2,
1336 "trailing_width":0,
1337 "leading":[{"kind":"whitespace","text":" ","offset":234,"width":2}],
1338 "trailing":[],
1339 "line_number":14
1342 "old_attribute_specification_attributes":{
1343 "kind":"list",
1344 "elements":[
1346 "kind":"list_item",
1347 "list_item":{
1348 "kind":"constructor_call",
1349 "constructor_call_type":{
1350 "kind":"token",
1351 "token":{
1352 "kind":"name",
1353 "text":"__Soft",
1354 "offset":238,
1355 "leading_width":0,
1356 "width":6,
1357 "trailing_width":0,
1358 "leading":[],
1359 "trailing":[],
1360 "line_number":14
1363 "constructor_call_left_paren":{"kind":"missing"},
1364 "constructor_call_argument_list":{"kind":"missing"},
1365 "constructor_call_right_paren":{"kind":"missing"}
1367 "list_separator":{"kind":"missing"}
1371 "old_attribute_specification_right_double_angle":{
1372 "kind":"token",
1373 "token":{
1374 "kind":">>",
1375 "text":">>",
1376 "offset":244,
1377 "leading_width":0,
1378 "width":2,
1379 "trailing_width":1,
1380 "leading":[],
1381 "trailing":[{"kind":"whitespace","text":" ","offset":246,"width":1}],
1382 "line_number":14
1386 "property_modifiers":{
1387 "kind":"list",
1388 "elements":[
1390 "kind":"token",
1391 "token":{
1392 "kind":"protected",
1393 "text":"protected",
1394 "offset":247,
1395 "leading_width":0,
1396 "width":9,
1397 "trailing_width":1,
1398 "leading":[],
1399 "trailing":[{"kind":"whitespace","text":" ","offset":256,"width":1}],
1400 "line_number":14
1405 "property_type":{
1406 "kind":"simple_type_specifier",
1407 "simple_type_specifier":{
1408 "kind":"token",
1409 "token":{
1410 "kind":"float",
1411 "text":"float",
1412 "offset":257,
1413 "leading_width":0,
1414 "width":5,
1415 "trailing_width":1,
1416 "leading":[],
1417 "trailing":[{"kind":"whitespace","text":" ","offset":262,"width":1}],
1418 "line_number":14
1422 "property_declarators":{
1423 "kind":"list",
1424 "elements":[
1426 "kind":"list_item",
1427 "list_item":{
1428 "kind":"property_declarator",
1429 "property_name":{
1430 "kind":"token",
1431 "token":{
1432 "kind":"variable",
1433 "text":"$x",
1434 "offset":263,
1435 "leading_width":0,
1436 "width":2,
1437 "trailing_width":0,
1438 "leading":[],
1439 "trailing":[],
1440 "line_number":14
1443 "property_initializer":{"kind":"missing"}
1445 "list_separator":{"kind":"missing"}
1449 "property_semicolon":{
1450 "kind":"token",
1451 "token":{
1452 "kind":";",
1453 "text":";",
1454 "offset":265,
1455 "leading_width":0,
1456 "width":1,
1457 "trailing_width":1,
1458 "leading":[],
1459 "trailing":[{"kind":"end_of_line","text":"\n","offset":266,"width":1}],
1460 "line_number":14
1465 "kind":"type_const_declaration",
1466 "type_const_attribute_spec":{"kind":"missing"},
1467 "type_const_modifiers":{"kind":"missing"},
1468 "type_const_keyword":{
1469 "kind":"token",
1470 "token":{
1471 "kind":"const",
1472 "text":"const",
1473 "offset":267,
1474 "leading_width":2,
1475 "width":5,
1476 "trailing_width":1,
1477 "leading":[{"kind":"whitespace","text":" ","offset":267,"width":2}],
1478 "trailing":[{"kind":"whitespace","text":" ","offset":274,"width":1}],
1479 "line_number":15
1482 "type_const_type_keyword":{
1483 "kind":"token",
1484 "token":{
1485 "kind":"type",
1486 "text":"type",
1487 "offset":275,
1488 "leading_width":0,
1489 "width":4,
1490 "trailing_width":1,
1491 "leading":[],
1492 "trailing":[{"kind":"whitespace","text":" ","offset":279,"width":1}],
1493 "line_number":15
1496 "type_const_name":{
1497 "kind":"token",
1498 "token":{
1499 "kind":"name",
1500 "text":"T",
1501 "offset":280,
1502 "leading_width":0,
1503 "width":1,
1504 "trailing_width":1,
1505 "leading":[],
1506 "trailing":[{"kind":"whitespace","text":" ","offset":281,"width":1}],
1507 "line_number":15
1510 "type_const_type_parameters":{"kind":"missing"},
1511 "type_const_type_constraint":{"kind":"missing"},
1512 "type_const_equal":{
1513 "kind":"token",
1514 "token":{
1515 "kind":"=",
1516 "text":"=",
1517 "offset":282,
1518 "leading_width":0,
1519 "width":1,
1520 "trailing_width":1,
1521 "leading":[],
1522 "trailing":[{"kind":"whitespace","text":" ","offset":283,"width":1}],
1523 "line_number":15
1526 "type_const_type_specifier":{
1527 "kind":"attributized_specifier",
1528 "attributized_specifier_attribute_spec":{
1529 "kind":"old_attribute_specification",
1530 "old_attribute_specification_left_double_angle":{
1531 "kind":"token",
1532 "token":{
1533 "kind":"<<",
1534 "text":"<<",
1535 "offset":284,
1536 "leading_width":0,
1537 "width":2,
1538 "trailing_width":0,
1539 "leading":[],
1540 "trailing":[],
1541 "line_number":15
1544 "old_attribute_specification_attributes":{
1545 "kind":"list",
1546 "elements":[
1548 "kind":"list_item",
1549 "list_item":{
1550 "kind":"constructor_call",
1551 "constructor_call_type":{
1552 "kind":"token",
1553 "token":{
1554 "kind":"name",
1555 "text":"__Soft",
1556 "offset":286,
1557 "leading_width":0,
1558 "width":6,
1559 "trailing_width":0,
1560 "leading":[],
1561 "trailing":[],
1562 "line_number":15
1565 "constructor_call_left_paren":{"kind":"missing"},
1566 "constructor_call_argument_list":{"kind":"missing"},
1567 "constructor_call_right_paren":{"kind":"missing"}
1569 "list_separator":{"kind":"missing"}
1573 "old_attribute_specification_right_double_angle":{
1574 "kind":"token",
1575 "token":{
1576 "kind":">>",
1577 "text":">>",
1578 "offset":292,
1579 "leading_width":0,
1580 "width":2,
1581 "trailing_width":1,
1582 "leading":[],
1583 "trailing":[{"kind":"whitespace","text":" ","offset":294,"width":1}],
1584 "line_number":15
1588 "attributized_specifier_type":{
1589 "kind":"simple_type_specifier",
1590 "simple_type_specifier":{
1591 "kind":"token",
1592 "token":{
1593 "kind":"int",
1594 "text":"int",
1595 "offset":295,
1596 "leading_width":0,
1597 "width":3,
1598 "trailing_width":0,
1599 "leading":[],
1600 "trailing":[],
1601 "line_number":15
1606 "type_const_semicolon":{
1607 "kind":"token",
1608 "token":{
1609 "kind":";",
1610 "text":";",
1611 "offset":298,
1612 "leading_width":0,
1613 "width":1,
1614 "trailing_width":1,
1615 "leading":[],
1616 "trailing":[{"kind":"end_of_line","text":"\n","offset":299,"width":1}],
1617 "line_number":15
1622 "kind":"methodish_declaration",
1623 "methodish_attribute":{"kind":"missing"},
1624 "methodish_function_decl_header":{
1625 "kind":"function_declaration_header",
1626 "function_modifiers":{
1627 "kind":"list",
1628 "elements":[
1630 "kind":"token",
1631 "token":{
1632 "kind":"public",
1633 "text":"public",
1634 "offset":300,
1635 "leading_width":3,
1636 "width":6,
1637 "trailing_width":1,
1638 "leading":[
1639 {"kind":"end_of_line","text":"\n","offset":300,"width":1},
1640 {"kind":"whitespace","text":" ","offset":301,"width":2}
1642 "trailing":[{"kind":"whitespace","text":" ","offset":309,"width":1}],
1643 "line_number":17
1647 "kind":"token",
1648 "token":{
1649 "kind":"async",
1650 "text":"async",
1651 "offset":310,
1652 "leading_width":0,
1653 "width":5,
1654 "trailing_width":1,
1655 "leading":[],
1656 "trailing":[{"kind":"whitespace","text":" ","offset":315,"width":1}],
1657 "line_number":17
1662 "function_keyword":{
1663 "kind":"token",
1664 "token":{
1665 "kind":"function",
1666 "text":"function",
1667 "offset":316,
1668 "leading_width":0,
1669 "width":8,
1670 "trailing_width":1,
1671 "leading":[],
1672 "trailing":[{"kind":"whitespace","text":" ","offset":324,"width":1}],
1673 "line_number":17
1676 "function_name":{
1677 "kind":"token",
1678 "token":{
1679 "kind":"name",
1680 "text":"f",
1681 "offset":325,
1682 "leading_width":0,
1683 "width":1,
1684 "trailing_width":0,
1685 "leading":[],
1686 "trailing":[],
1687 "line_number":17
1690 "function_type_parameter_list":{"kind":"missing"},
1691 "function_left_paren":{
1692 "kind":"token",
1693 "token":{
1694 "kind":"(",
1695 "text":"(",
1696 "offset":326,
1697 "leading_width":0,
1698 "width":1,
1699 "trailing_width":0,
1700 "leading":[],
1701 "trailing":[],
1702 "line_number":17
1705 "function_parameter_list":{"kind":"missing"},
1706 "function_right_paren":{
1707 "kind":"token",
1708 "token":{
1709 "kind":")",
1710 "text":")",
1711 "offset":327,
1712 "leading_width":0,
1713 "width":1,
1714 "trailing_width":0,
1715 "leading":[],
1716 "trailing":[],
1717 "line_number":17
1720 "function_colon":{
1721 "kind":"token",
1722 "token":{
1723 "kind":":",
1724 "text":":",
1725 "offset":328,
1726 "leading_width":0,
1727 "width":1,
1728 "trailing_width":1,
1729 "leading":[],
1730 "trailing":[{"kind":"whitespace","text":" ","offset":329,"width":1}],
1731 "line_number":17
1734 "function_type":{
1735 "kind":"generic_type_specifier",
1736 "generic_class_type":{
1737 "kind":"token",
1738 "token":{
1739 "kind":"name",
1740 "text":"Awaitable",
1741 "offset":330,
1742 "leading_width":0,
1743 "width":9,
1744 "trailing_width":0,
1745 "leading":[],
1746 "trailing":[],
1747 "line_number":17
1750 "generic_argument_list":{
1751 "kind":"type_arguments",
1752 "type_arguments_left_angle":{
1753 "kind":"token",
1754 "token":{
1755 "kind":"<",
1756 "text":"<",
1757 "offset":339,
1758 "leading_width":0,
1759 "width":1,
1760 "trailing_width":0,
1761 "leading":[],
1762 "trailing":[],
1763 "line_number":17
1766 "type_arguments_types":{
1767 "kind":"list",
1768 "elements":[
1770 "kind":"list_item",
1771 "list_item":{
1772 "kind":"attributized_specifier",
1773 "attributized_specifier_attribute_spec":{
1774 "kind":"old_attribute_specification",
1775 "old_attribute_specification_left_double_angle":{
1776 "kind":"token",
1777 "token":{
1778 "kind":"<<",
1779 "text":"<<",
1780 "offset":340,
1781 "leading_width":0,
1782 "width":2,
1783 "trailing_width":0,
1784 "leading":[],
1785 "trailing":[],
1786 "line_number":17
1789 "old_attribute_specification_attributes":{
1790 "kind":"list",
1791 "elements":[
1793 "kind":"list_item",
1794 "list_item":{
1795 "kind":"constructor_call",
1796 "constructor_call_type":{
1797 "kind":"token",
1798 "token":{
1799 "kind":"name",
1800 "text":"__Soft",
1801 "offset":342,
1802 "leading_width":0,
1803 "width":6,
1804 "trailing_width":0,
1805 "leading":[],
1806 "trailing":[],
1807 "line_number":17
1810 "constructor_call_left_paren":{"kind":"missing"},
1811 "constructor_call_argument_list":{"kind":"missing"},
1812 "constructor_call_right_paren":{"kind":"missing"}
1814 "list_separator":{"kind":"missing"}
1818 "old_attribute_specification_right_double_angle":{
1819 "kind":"token",
1820 "token":{
1821 "kind":">>",
1822 "text":">>",
1823 "offset":348,
1824 "leading_width":0,
1825 "width":2,
1826 "trailing_width":1,
1827 "leading":[],
1828 "trailing":[{"kind":"whitespace","text":" ","offset":350,"width":1}],
1829 "line_number":17
1833 "attributized_specifier_type":{
1834 "kind":"simple_type_specifier",
1835 "simple_type_specifier":{
1836 "kind":"token",
1837 "token":{
1838 "kind":"int",
1839 "text":"int",
1840 "offset":351,
1841 "leading_width":0,
1842 "width":3,
1843 "trailing_width":0,
1844 "leading":[],
1845 "trailing":[],
1846 "line_number":17
1851 "list_separator":{"kind":"missing"}
1855 "type_arguments_right_angle":{
1856 "kind":"token",
1857 "token":{
1858 "kind":">",
1859 "text":">",
1860 "offset":354,
1861 "leading_width":0,
1862 "width":1,
1863 "trailing_width":1,
1864 "leading":[],
1865 "trailing":[{"kind":"whitespace","text":" ","offset":355,"width":1}],
1866 "line_number":17
1871 "function_where_clause":{"kind":"missing"}
1873 "methodish_function_body":{
1874 "kind":"compound_statement",
1875 "compound_left_brace":{
1876 "kind":"token",
1877 "token":{
1878 "kind":"{",
1879 "text":"{",
1880 "offset":356,
1881 "leading_width":0,
1882 "width":1,
1883 "trailing_width":1,
1884 "leading":[],
1885 "trailing":[{"kind":"end_of_line","text":"\n","offset":357,"width":1}],
1886 "line_number":17
1889 "compound_statements":{
1890 "kind":"list",
1891 "elements":[
1893 "kind":"return_statement",
1894 "return_keyword":{
1895 "kind":"token",
1896 "token":{
1897 "kind":"return",
1898 "text":"return",
1899 "offset":358,
1900 "leading_width":4,
1901 "width":6,
1902 "trailing_width":1,
1903 "leading":[{"kind":"whitespace","text":" ","offset":358,"width":4}],
1904 "trailing":[{"kind":"whitespace","text":" ","offset":368,"width":1}],
1905 "line_number":18
1908 "return_expression":{
1909 "kind":"literal",
1910 "literal_expression":{
1911 "kind":"token",
1912 "token":{
1913 "kind":"decimal_literal",
1914 "text":"42",
1915 "offset":369,
1916 "leading_width":0,
1917 "width":2,
1918 "trailing_width":0,
1919 "leading":[],
1920 "trailing":[],
1921 "line_number":18
1925 "return_semicolon":{
1926 "kind":"token",
1927 "token":{
1928 "kind":";",
1929 "text":";",
1930 "offset":371,
1931 "leading_width":0,
1932 "width":1,
1933 "trailing_width":1,
1934 "leading":[],
1935 "trailing":[{"kind":"end_of_line","text":"\n","offset":372,"width":1}],
1936 "line_number":18
1942 "compound_right_brace":{
1943 "kind":"token",
1944 "token":{
1945 "kind":"}",
1946 "text":"}",
1947 "offset":373,
1948 "leading_width":2,
1949 "width":1,
1950 "trailing_width":1,
1951 "leading":[{"kind":"whitespace","text":" ","offset":373,"width":2}],
1952 "trailing":[{"kind":"end_of_line","text":"\n","offset":376,"width":1}],
1953 "line_number":19
1957 "methodish_semicolon":{"kind":"missing"}
1961 "classish_body_right_brace":{
1962 "kind":"token",
1963 "token":{
1964 "kind":"}",
1965 "text":"}",
1966 "offset":377,
1967 "leading_width":0,
1968 "width":1,
1969 "trailing_width":1,
1970 "leading":[],
1971 "trailing":[{"kind":"end_of_line","text":"\n","offset":378,"width":1}],
1972 "line_number":20
1978 "kind":"classish_declaration",
1979 "classish_attribute":{"kind":"missing"},
1980 "classish_modifiers":{"kind":"missing"},
1981 "classish_xhp":{"kind":"missing"},
1982 "classish_keyword":{
1983 "kind":"token",
1984 "token":{
1985 "kind":"class",
1986 "text":"class",
1987 "offset":379,
1988 "leading_width":1,
1989 "width":5,
1990 "trailing_width":1,
1991 "leading":[{"kind":"end_of_line","text":"\n","offset":379,"width":1}],
1992 "trailing":[{"kind":"whitespace","text":" ","offset":385,"width":1}],
1993 "line_number":22
1996 "classish_name":{
1997 "kind":"token",
1998 "token":{
1999 "kind":"name",
2000 "text":"D",
2001 "offset":386,
2002 "leading_width":0,
2003 "width":1,
2004 "trailing_width":1,
2005 "leading":[],
2006 "trailing":[{"kind":"whitespace","text":" ","offset":387,"width":1}],
2007 "line_number":22
2010 "classish_type_parameters":{"kind":"missing"},
2011 "classish_extends_keyword":{"kind":"missing"},
2012 "classish_extends_list":{"kind":"missing"},
2013 "classish_implements_keyword":{"kind":"missing"},
2014 "classish_implements_list":{"kind":"missing"},
2015 "classish_where_clause":{"kind":"missing"},
2016 "classish_body":{
2017 "kind":"classish_body",
2018 "classish_body_left_brace":{
2019 "kind":"token",
2020 "token":{
2021 "kind":"{",
2022 "text":"{",
2023 "offset":388,
2024 "leading_width":0,
2025 "width":1,
2026 "trailing_width":1,
2027 "leading":[],
2028 "trailing":[{"kind":"end_of_line","text":"\n","offset":389,"width":1}],
2029 "line_number":22
2032 "classish_body_elements":{
2033 "kind":"list",
2034 "elements":[
2036 "kind":"const_declaration",
2037 "const_modifiers":{"kind":"missing"},
2038 "const_keyword":{
2039 "kind":"token",
2040 "token":{
2041 "kind":"const",
2042 "text":"const",
2043 "offset":390,
2044 "leading_width":2,
2045 "width":5,
2046 "trailing_width":1,
2047 "leading":[{"kind":"whitespace","text":" ","offset":390,"width":2}],
2048 "trailing":[{"kind":"whitespace","text":" ","offset":397,"width":1}],
2049 "line_number":23
2052 "const_type_specifier":{
2053 "kind":"attributized_specifier",
2054 "attributized_specifier_attribute_spec":{
2055 "kind":"old_attribute_specification",
2056 "old_attribute_specification_left_double_angle":{
2057 "kind":"token",
2058 "token":{
2059 "kind":"<<",
2060 "text":"<<",
2061 "offset":398,
2062 "leading_width":0,
2063 "width":2,
2064 "trailing_width":0,
2065 "leading":[],
2066 "trailing":[],
2067 "line_number":23
2070 "old_attribute_specification_attributes":{
2071 "kind":"list",
2072 "elements":[
2074 "kind":"list_item",
2075 "list_item":{
2076 "kind":"constructor_call",
2077 "constructor_call_type":{
2078 "kind":"token",
2079 "token":{
2080 "kind":"name",
2081 "text":"__Soft",
2082 "offset":400,
2083 "leading_width":0,
2084 "width":6,
2085 "trailing_width":0,
2086 "leading":[],
2087 "trailing":[],
2088 "line_number":23
2091 "constructor_call_left_paren":{"kind":"missing"},
2092 "constructor_call_argument_list":{"kind":"missing"},
2093 "constructor_call_right_paren":{"kind":"missing"}
2095 "list_separator":{"kind":"missing"}
2099 "old_attribute_specification_right_double_angle":{
2100 "kind":"token",
2101 "token":{
2102 "kind":">>",
2103 "text":">>",
2104 "offset":406,
2105 "leading_width":0,
2106 "width":2,
2107 "trailing_width":1,
2108 "leading":[],
2109 "trailing":[{"kind":"whitespace","text":" ","offset":408,"width":1}],
2110 "line_number":23
2114 "attributized_specifier_type":{
2115 "kind":"simple_type_specifier",
2116 "simple_type_specifier":{
2117 "kind":"token",
2118 "token":{
2119 "kind":"int",
2120 "text":"int",
2121 "offset":409,
2122 "leading_width":0,
2123 "width":3,
2124 "trailing_width":1,
2125 "leading":[],
2126 "trailing":[{"kind":"whitespace","text":" ","offset":412,"width":1}],
2127 "line_number":23
2132 "const_declarators":{
2133 "kind":"list",
2134 "elements":[
2136 "kind":"list_item",
2137 "list_item":{
2138 "kind":"constant_declarator",
2139 "constant_declarator_name":{
2140 "kind":"token",
2141 "token":{
2142 "kind":"name",
2143 "text":"X",
2144 "offset":413,
2145 "leading_width":0,
2146 "width":1,
2147 "trailing_width":1,
2148 "leading":[],
2149 "trailing":[{"kind":"whitespace","text":" ","offset":414,"width":1}],
2150 "line_number":23
2153 "constant_declarator_initializer":{
2154 "kind":"simple_initializer",
2155 "simple_initializer_equal":{
2156 "kind":"token",
2157 "token":{
2158 "kind":"=",
2159 "text":"=",
2160 "offset":415,
2161 "leading_width":0,
2162 "width":1,
2163 "trailing_width":1,
2164 "leading":[],
2165 "trailing":[{"kind":"whitespace","text":" ","offset":416,"width":1}],
2166 "line_number":23
2169 "simple_initializer_value":{
2170 "kind":"literal",
2171 "literal_expression":{
2172 "kind":"token",
2173 "token":{
2174 "kind":"decimal_literal",
2175 "text":"0",
2176 "offset":417,
2177 "leading_width":0,
2178 "width":1,
2179 "trailing_width":0,
2180 "leading":[],
2181 "trailing":[],
2182 "line_number":23
2188 "list_separator":{"kind":"missing"}
2192 "const_semicolon":{
2193 "kind":"token",
2194 "token":{
2195 "kind":";",
2196 "text":";",
2197 "offset":418,
2198 "leading_width":0,
2199 "width":1,
2200 "trailing_width":1,
2201 "leading":[],
2202 "trailing":[{"kind":"end_of_line","text":"\n","offset":419,"width":1}],
2203 "line_number":23
2209 "classish_body_right_brace":{
2210 "kind":"token",
2211 "token":{
2212 "kind":"}",
2213 "text":"}",
2214 "offset":420,
2215 "leading_width":0,
2216 "width":1,
2217 "trailing_width":1,
2218 "leading":[],
2219 "trailing":[{"kind":"end_of_line","text":"\n","offset":421,"width":1}],
2220 "line_number":24
2226 "kind":"end_of_file",
2227 "end_of_file_token":{
2228 "kind":"token",
2229 "token":{
2230 "kind":"end_of_file",
2231 "text":"",
2232 "offset":422,
2233 "leading_width":0,
2234 "width":0,
2235 "trailing_width":0,
2236 "leading":[],
2237 "trailing":[],
2238 "line_number":25
2245 "program_text":"<?hh\n\ntype t = <<__Soft>> darray<int, <<__Soft>> string>;\ntype u = varray<<<__Soft>> int>;\n\nfunction f<T>(): void {}\n\nfunction g(<<__Soft>> int $_): <<__Soft>> string {\n f<<<__Soft>> float>();\n return \"hello\";\n}\n\nabstract class C {\n <<__Soft>> protected float $x;\n const type T = <<__Soft>> int;\n\n public async function f(): Awaitable<<<__Soft>> int> {\n return 42;\n }\n}\n\nclass D {\n const <<__Soft>> int X = 0;\n}\n",
2246 "version":"2020-04-14-0002"