diff --git a/Changes b/Changes index 1971486a9..1997e8d0e 100644 --- a/Changes +++ b/Changes @@ -6,6 +6,8 @@ OCaml 4.04.0: Language features: - GPR#301: local exception declarations "let exception ... in" (Alain Frisch) +- GPR#508: Allow shortcut for extension on semicolons: ;%foo + (Jeremie Dimino) Tools: - GPR#452: Make the output of ocamldep is more stable diff --git a/parsing/parser.mly b/parsing/parser.mly index 577595e34..e2dadbb5c 100644 --- a/parsing/parser.mly +++ b/parsing/parser.mly @@ -1305,6 +1305,10 @@ seq_expr: | expr %prec below_SEMI { $1 } | expr SEMI { reloc_exp $1 } | expr SEMI seq_expr { mkexp(Pexp_sequence($1, $3)) } + | expr SEMI PERCENT attr_id seq_expr + { let seq = mkexp(Pexp_sequence ($1, $5)) in + let payload = PStr [mkstrexp seq []] in + mkexp (Pexp_extension ($4, payload)) } ; labeled_simple_pattern: QUESTION LPAREN label_let_pattern opt_default RPAREN diff --git a/testsuite/tests/parsing/shortcut_ext_attr.ml b/testsuite/tests/parsing/shortcut_ext_attr.ml index e65a663c4..7f6d1f51c 100644 --- a/testsuite/tests/parsing/shortcut_ext_attr.ml +++ b/testsuite/tests/parsing/shortcut_ext_attr.ml @@ -11,6 +11,7 @@ let () = (if%foo[@foo] () then () else ()) ; while%foo[@foo] () do () done ; for%foo[@foo] x = () to () do () done ; + () ;%foo () ; assert%foo[@foo] true ; lazy%foo[@foo] x ; object%foo[@foo] end ; diff --git a/testsuite/tests/parsing/shortcut_ext_attr.ml.reference b/testsuite/tests/parsing/shortcut_ext_attr.ml.reference index 27c32e16c..064cf629f 100644 --- a/testsuite/tests/parsing/shortcut_ext_attr.ml.reference +++ b/testsuite/tests/parsing/shortcut_ext_attr.ml.reference @@ -1,17 +1,17 @@ [ - structure_item (shortcut_ext_attr.ml[3,19+0]..[23,554+31]) + structure_item (shortcut_ext_attr.ml[3,19+0]..[24,570+31]) Pstr_value Nonrec [ pattern (shortcut_ext_attr.ml[3,19+4]..[3,19+6]) Ppat_construct "()" (shortcut_ext_attr.ml[3,19+4]..[3,19+6]) None - expression (shortcut_ext_attr.ml[4,28+2]..[23,554+31]) ghost + expression (shortcut_ext_attr.ml[4,28+2]..[24,570+31]) ghost Pexp_extension "foo" [ - structure_item (shortcut_ext_attr.ml[4,28+2]..[23,554+31]) + structure_item (shortcut_ext_attr.ml[4,28+2]..[24,570+31]) Pstr_eval - expression (shortcut_ext_attr.ml[4,28+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[4,28+2]..[24,570+31]) Pexp_let Nonrec [ @@ -29,7 +29,7 @@ expression (shortcut_ext_attr.ml[5,50+16]..[5,50+17]) Pexp_constant PConst_int (4,None) ] - expression (shortcut_ext_attr.ml[6,71+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[6,71+2]..[24,570+31]) Pexp_sequence expression (shortcut_ext_attr.ml[6,71+2]..[6,71+36]) Pexp_extension "foo" @@ -46,7 +46,7 @@ Pexp_construct "()" (shortcut_ext_attr.ml[6,71+33]..[6,71+35]) None ] - expression (shortcut_ext_attr.ml[7,110+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[7,110+2]..[24,570+31]) Pexp_sequence expression (shortcut_ext_attr.ml[7,110+2]..[7,110+30]) Pexp_extension "foo" @@ -61,7 +61,7 @@ Pexp_construct "()" (shortcut_ext_attr.ml[7,110+27]..[7,110+29]) None ] - expression (shortcut_ext_attr.ml[8,143+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[8,143+2]..[24,570+31]) Pexp_sequence expression (shortcut_ext_attr.ml[8,143+2]..[8,143+25]) Pexp_extension "foo" @@ -80,7 +80,7 @@ Pexp_construct "()" (shortcut_ext_attr.ml[8,143+22]..[8,143+24]) None ] - expression (shortcut_ext_attr.ml[9,171+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[9,171+2]..[24,570+31]) Pexp_sequence expression (shortcut_ext_attr.ml[9,171+2]..[9,171+30]) Pexp_extension "foo" @@ -100,7 +100,7 @@ None ] ] - expression (shortcut_ext_attr.ml[10,204+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[10,204+2]..[24,570+31]) Pexp_sequence expression (shortcut_ext_attr.ml[10,204+2]..[10,204+33]) Pexp_extension "foo" @@ -123,7 +123,7 @@ None ] ] - expression (shortcut_ext_attr.ml[11,240+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[11,240+2]..[24,570+31]) Pexp_sequence expression (shortcut_ext_attr.ml[11,240+2]..[11,240+35]) Pexp_extension "foo" @@ -145,7 +145,7 @@ Pexp_construct "()" (shortcut_ext_attr.ml[11,240+32]..[11,240+34]) None ] - expression (shortcut_ext_attr.ml[12,278+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[12,278+2]..[24,570+31]) Pexp_sequence expression (shortcut_ext_attr.ml[12,278+2]..[12,278+31]) ghost Pexp_extension "foo" @@ -163,7 +163,7 @@ Pexp_construct "()" (shortcut_ext_attr.ml[12,278+24]..[12,278+26]) None ] - expression (shortcut_ext_attr.ml[13,312+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[13,312+2]..[24,570+31]) Pexp_sequence expression (shortcut_ext_attr.ml[13,312+2]..[13,312+39]) ghost Pexp_extension "foo" @@ -186,292 +186,308 @@ Pexp_construct "()" (shortcut_ext_attr.ml[13,312+32]..[13,312+34]) None ] - expression (shortcut_ext_attr.ml[14,354+2]..[23,554+31]) - Pexp_sequence - expression (shortcut_ext_attr.ml[14,354+2]..[14,354+23]) ghost - Pexp_extension "foo" - [ - structure_item (shortcut_ext_attr.ml[14,354+2]..[14,354+23]) - Pstr_eval - expression (shortcut_ext_attr.ml[14,354+2]..[14,354+23]) - attribute "foo" - [] - Pexp_assert - expression (shortcut_ext_attr.ml[14,354+19]..[14,354+23]) - Pexp_construct "true" (shortcut_ext_attr.ml[14,354+19]..[14,354+23]) - None - ] - expression (shortcut_ext_attr.ml[15,380+2]..[23,554+31]) - Pexp_sequence - expression (shortcut_ext_attr.ml[15,380+2]..[15,380+18]) ghost - Pexp_extension "foo" - [ - structure_item (shortcut_ext_attr.ml[15,380+2]..[15,380+18]) - Pstr_eval - expression (shortcut_ext_attr.ml[15,380+2]..[15,380+18]) - attribute "foo" - [] - Pexp_lazy - expression (shortcut_ext_attr.ml[15,380+17]..[15,380+18]) - Pexp_ident "x" (shortcut_ext_attr.ml[15,380+17]..[15,380+18]) - ] - expression (shortcut_ext_attr.ml[16,401+2]..[23,554+31]) - Pexp_sequence - expression (shortcut_ext_attr.ml[16,401+2]..[16,401+22]) ghost - Pexp_extension "foo" - [ - structure_item (shortcut_ext_attr.ml[16,401+2]..[16,401+22]) - Pstr_eval - expression (shortcut_ext_attr.ml[16,401+2]..[16,401+22]) - attribute "foo" - [] - Pexp_object - class_structure - pattern (shortcut_ext_attr.ml[16,401+18]..[16,401+18]) ghost - Ppat_any - [] - ] - expression (shortcut_ext_attr.ml[17,426+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[14,354+2]..[24,570+31]) + Pexp_extension "foo" + [ + structure_item (shortcut_ext_attr.ml[14,354+2]..[24,570+31]) + Pstr_eval + expression (shortcut_ext_attr.ml[14,354+2]..[24,570+31]) Pexp_sequence - expression (shortcut_ext_attr.ml[17,426+2]..[17,426+23]) ghost - Pexp_extension "foo" - [ - structure_item (shortcut_ext_attr.ml[17,426+2]..[17,426+23]) - Pstr_eval - expression (shortcut_ext_attr.ml[17,426+2]..[17,426+23]) - attribute "foo" - [] - Pexp_constant PConst_int (3,None) - ] - expression (shortcut_ext_attr.ml[18,452+2]..[23,554+31]) + expression (shortcut_ext_attr.ml[14,354+2]..[14,354+4]) + Pexp_construct "()" (shortcut_ext_attr.ml[14,354+2]..[14,354+4]) + None + expression (shortcut_ext_attr.ml[14,354+11]..[24,570+31]) Pexp_sequence - expression (shortcut_ext_attr.ml[18,452+2]..[18,452+17]) ghost - Pexp_extension "foo" - [ - structure_item (shortcut_ext_attr.ml[18,452+2]..[18,452+17]) - Pstr_eval - expression (shortcut_ext_attr.ml[18,452+2]..[18,452+17]) - attribute "foo" - [] - Pexp_new "x" (shortcut_ext_attr.ml[18,452+16]..[18,452+17]) - ] - expression (shortcut_ext_attr.ml[20,473+2]..[23,554+31]) ghost - Pexp_extension "foo" - [ - structure_item (shortcut_ext_attr.ml[20,473+2]..[23,554+31]) - Pstr_eval - expression (shortcut_ext_attr.ml[20,473+2]..[23,554+31]) - attribute "foo" - [] - Pexp_match - expression (shortcut_ext_attr.ml[20,473+18]..[20,473+20]) - Pexp_construct "()" (shortcut_ext_attr.ml[20,473+18]..[20,473+20]) - None + expression (shortcut_ext_attr.ml[14,354+11]..[14,354+13]) + Pexp_construct "()" (shortcut_ext_attr.ml[14,354+11]..[14,354+13]) + None + expression (shortcut_ext_attr.ml[15,370+2]..[24,570+31]) + Pexp_sequence + expression (shortcut_ext_attr.ml[15,370+2]..[15,370+23]) ghost + Pexp_extension "foo" + [ + structure_item (shortcut_ext_attr.ml[15,370+2]..[15,370+23]) + Pstr_eval + expression (shortcut_ext_attr.ml[15,370+2]..[15,370+23]) + attribute "foo" + [] + Pexp_assert + expression (shortcut_ext_attr.ml[15,370+19]..[15,370+23]) + Pexp_construct "true" (shortcut_ext_attr.ml[15,370+19]..[15,370+23]) + None + ] + expression (shortcut_ext_attr.ml[16,396+2]..[24,570+31]) + Pexp_sequence + expression (shortcut_ext_attr.ml[16,396+2]..[16,396+18]) ghost + Pexp_extension "foo" + [ + structure_item (shortcut_ext_attr.ml[16,396+2]..[16,396+18]) + Pstr_eval + expression (shortcut_ext_attr.ml[16,396+2]..[16,396+18]) + attribute "foo" + [] + Pexp_lazy + expression (shortcut_ext_attr.ml[16,396+17]..[16,396+18]) + Pexp_ident "x" (shortcut_ext_attr.ml[16,396+17]..[16,396+18]) + ] + expression (shortcut_ext_attr.ml[17,417+2]..[24,570+31]) + Pexp_sequence + expression (shortcut_ext_attr.ml[17,417+2]..[17,417+22]) ghost + Pexp_extension "foo" [ - - pattern (shortcut_ext_attr.ml[22,527+4]..[22,527+20]) ghost - Ppat_extension "foo" - pattern (shortcut_ext_attr.ml[22,527+4]..[22,527+20]) - attribute "foo" - [] - Ppat_lazy - pattern (shortcut_ext_attr.ml[22,527+19]..[22,527+20]) - Ppat_var "x" (shortcut_ext_attr.ml[22,527+19]..[22,527+20]) - expression (shortcut_ext_attr.ml[22,527+24]..[22,527+26]) - Pexp_construct "()" (shortcut_ext_attr.ml[22,527+24]..[22,527+26]) - None - - pattern (shortcut_ext_attr.ml[23,554+4]..[23,554+25]) ghost - Ppat_extension "foo" - pattern (shortcut_ext_attr.ml[23,554+4]..[23,554+25]) - attribute "foo" - [] - Ppat_exception - pattern (shortcut_ext_attr.ml[23,554+24]..[23,554+25]) - Ppat_var "x" (shortcut_ext_attr.ml[23,554+24]..[23,554+25]) - expression (shortcut_ext_attr.ml[23,554+29]..[23,554+31]) - Pexp_construct "()" (shortcut_ext_attr.ml[23,554+29]..[23,554+31]) - None + structure_item (shortcut_ext_attr.ml[17,417+2]..[17,417+22]) + Pstr_eval + expression (shortcut_ext_attr.ml[17,417+2]..[17,417+22]) + attribute "foo" + [] + Pexp_object + class_structure + pattern (shortcut_ext_attr.ml[17,417+18]..[17,417+18]) ghost + Ppat_any + [] ] - ] + expression (shortcut_ext_attr.ml[18,442+2]..[24,570+31]) + Pexp_sequence + expression (shortcut_ext_attr.ml[18,442+2]..[18,442+23]) ghost + Pexp_extension "foo" + [ + structure_item (shortcut_ext_attr.ml[18,442+2]..[18,442+23]) + Pstr_eval + expression (shortcut_ext_attr.ml[18,442+2]..[18,442+23]) + attribute "foo" + [] + Pexp_constant PConst_int (3,None) + ] + expression (shortcut_ext_attr.ml[19,468+2]..[24,570+31]) + Pexp_sequence + expression (shortcut_ext_attr.ml[19,468+2]..[19,468+17]) ghost + Pexp_extension "foo" + [ + structure_item (shortcut_ext_attr.ml[19,468+2]..[19,468+17]) + Pstr_eval + expression (shortcut_ext_attr.ml[19,468+2]..[19,468+17]) + attribute "foo" + [] + Pexp_new "x" (shortcut_ext_attr.ml[19,468+16]..[19,468+17]) + ] + expression (shortcut_ext_attr.ml[21,489+2]..[24,570+31]) ghost + Pexp_extension "foo" + [ + structure_item (shortcut_ext_attr.ml[21,489+2]..[24,570+31]) + Pstr_eval + expression (shortcut_ext_attr.ml[21,489+2]..[24,570+31]) + attribute "foo" + [] + Pexp_match + expression (shortcut_ext_attr.ml[21,489+18]..[21,489+20]) + Pexp_construct "()" (shortcut_ext_attr.ml[21,489+18]..[21,489+20]) + None + [ + + pattern (shortcut_ext_attr.ml[23,543+4]..[23,543+20]) ghost + Ppat_extension "foo" + pattern (shortcut_ext_attr.ml[23,543+4]..[23,543+20]) + attribute "foo" + [] + Ppat_lazy + pattern (shortcut_ext_attr.ml[23,543+19]..[23,543+20]) + Ppat_var "x" (shortcut_ext_attr.ml[23,543+19]..[23,543+20]) + expression (shortcut_ext_attr.ml[23,543+24]..[23,543+26]) + Pexp_construct "()" (shortcut_ext_attr.ml[23,543+24]..[23,543+26]) + None + + pattern (shortcut_ext_attr.ml[24,570+4]..[24,570+25]) ghost + Ppat_extension "foo" + pattern (shortcut_ext_attr.ml[24,570+4]..[24,570+25]) + attribute "foo" + [] + Ppat_exception + pattern (shortcut_ext_attr.ml[24,570+24]..[24,570+25]) + Ppat_var "x" (shortcut_ext_attr.ml[24,570+24]..[24,570+25]) + expression (shortcut_ext_attr.ml[24,570+29]..[24,570+31]) + Pexp_construct "()" (shortcut_ext_attr.ml[24,570+29]..[24,570+31]) + None + ] + ] + ] ] ] - structure_item (shortcut_ext_attr.ml[27,612+0]..[39,882+5]) + structure_item (shortcut_ext_attr.ml[28,628+0]..[40,898+5]) Pstr_class [ - class_declaration (shortcut_ext_attr.ml[27,612+0]..[39,882+5]) + class_declaration (shortcut_ext_attr.ml[28,628+0]..[40,898+5]) pci_virt = Concrete pci_params = [] - pci_name = "x" (shortcut_ext_attr.ml[27,612+6]..[27,612+7]) + pci_name = "x" (shortcut_ext_attr.ml[28,628+6]..[28,628+7]) pci_expr = - class_expr (shortcut_ext_attr.ml[28,622+12]..[39,882+5]) + class_expr (shortcut_ext_attr.ml[29,638+12]..[40,898+5]) attribute "foo" [] Pcl_fun Nolabel None - pattern (shortcut_ext_attr.ml[28,622+12]..[28,622+13]) - Ppat_var "x" (shortcut_ext_attr.ml[28,622+12]..[28,622+13]) - class_expr (shortcut_ext_attr.ml[29,639+2]..[39,882+5]) + pattern (shortcut_ext_attr.ml[29,638+12]..[29,638+13]) + Ppat_var "x" (shortcut_ext_attr.ml[29,638+12]..[29,638+13]) + class_expr (shortcut_ext_attr.ml[30,655+2]..[40,898+5]) Pcl_let Nonrec [ attribute "foo" [] - pattern (shortcut_ext_attr.ml[29,639+12]..[29,639+13]) - Ppat_var "x" (shortcut_ext_attr.ml[29,639+12]..[29,639+13]) - expression (shortcut_ext_attr.ml[29,639+16]..[29,639+17]) + pattern (shortcut_ext_attr.ml[30,655+12]..[30,655+13]) + Ppat_var "x" (shortcut_ext_attr.ml[30,655+12]..[30,655+13]) + expression (shortcut_ext_attr.ml[30,655+16]..[30,655+17]) Pexp_constant PConst_int (3,None) ] - class_expr (shortcut_ext_attr.ml[30,660+2]..[39,882+5]) + class_expr (shortcut_ext_attr.ml[31,676+2]..[40,898+5]) attribute "foo" [] Pcl_structure class_structure - pattern (shortcut_ext_attr.ml[30,660+14]..[30,660+14]) ghost + pattern (shortcut_ext_attr.ml[31,676+14]..[31,676+14]) ghost Ppat_any [ - class_field (shortcut_ext_attr.ml[31,675+4]..[31,675+19]) + class_field (shortcut_ext_attr.ml[32,691+4]..[32,691+19]) attribute "foo" [] Pcf_inherit Fresh - class_expr (shortcut_ext_attr.ml[31,675+18]..[31,675+19]) - Pcl_constr "x" (shortcut_ext_attr.ml[31,675+18]..[31,675+19]) + class_expr (shortcut_ext_attr.ml[32,691+18]..[32,691+19]) + Pcl_constr "x" (shortcut_ext_attr.ml[32,691+18]..[32,691+19]) [] None - class_field (shortcut_ext_attr.ml[32,695+4]..[32,695+19]) + class_field (shortcut_ext_attr.ml[33,711+4]..[33,711+19]) attribute "foo" [] Pcf_val Immutable - "x" (shortcut_ext_attr.ml[32,695+14]..[32,695+15]) + "x" (shortcut_ext_attr.ml[33,711+14]..[33,711+15]) Concrete Fresh - expression (shortcut_ext_attr.ml[32,695+18]..[32,695+19]) + expression (shortcut_ext_attr.ml[33,711+18]..[33,711+19]) Pexp_constant PConst_int (3,None) - class_field (shortcut_ext_attr.ml[33,715+4]..[33,715+27]) + class_field (shortcut_ext_attr.ml[34,731+4]..[34,731+27]) attribute "foo" [] Pcf_val Immutable - "x" (shortcut_ext_attr.ml[33,715+22]..[33,715+23]) + "x" (shortcut_ext_attr.ml[34,731+22]..[34,731+23]) Virtual - core_type (shortcut_ext_attr.ml[33,715+26]..[33,715+27]) - Ptyp_constr "t" (shortcut_ext_attr.ml[33,715+26]..[33,715+27]) + core_type (shortcut_ext_attr.ml[34,731+26]..[34,731+27]) + Ptyp_constr "t" (shortcut_ext_attr.ml[34,731+26]..[34,731+27]) [] - class_field (shortcut_ext_attr.ml[34,743+4]..[34,743+28]) + class_field (shortcut_ext_attr.ml[35,759+4]..[35,759+28]) attribute "foo" [] Pcf_val Mutable - "x" (shortcut_ext_attr.ml[34,743+23]..[34,743+24]) + "x" (shortcut_ext_attr.ml[35,759+23]..[35,759+24]) Concrete Override - expression (shortcut_ext_attr.ml[34,743+27]..[34,743+28]) + expression (shortcut_ext_attr.ml[35,759+27]..[35,759+28]) Pexp_constant PConst_int (3,None) - class_field (shortcut_ext_attr.ml[35,772+4]..[35,772+22]) + class_field (shortcut_ext_attr.ml[36,788+4]..[36,788+22]) attribute "foo" [] Pcf_method Public - "x" (shortcut_ext_attr.ml[35,772+17]..[35,772+18]) + "x" (shortcut_ext_attr.ml[36,788+17]..[36,788+18]) Concrete Fresh - expression (shortcut_ext_attr.ml[35,772+10]..[35,772+22]) ghost + expression (shortcut_ext_attr.ml[36,788+10]..[36,788+22]) ghost Pexp_poly - expression (shortcut_ext_attr.ml[35,772+21]..[35,772+22]) + expression (shortcut_ext_attr.ml[36,788+21]..[36,788+22]) Pexp_constant PConst_int (3,None) None - class_field (shortcut_ext_attr.ml[36,795+4]..[36,795+30]) + class_field (shortcut_ext_attr.ml[37,811+4]..[37,811+30]) attribute "foo" [] Pcf_method Public - "x" (shortcut_ext_attr.ml[36,795+25]..[36,795+26]) + "x" (shortcut_ext_attr.ml[37,811+25]..[37,811+26]) Virtual - core_type (shortcut_ext_attr.ml[36,795+29]..[36,795+30]) - Ptyp_constr "t" (shortcut_ext_attr.ml[36,795+29]..[36,795+30]) + core_type (shortcut_ext_attr.ml[37,811+29]..[37,811+30]) + Ptyp_constr "t" (shortcut_ext_attr.ml[37,811+29]..[37,811+30]) [] - class_field (shortcut_ext_attr.ml[37,826+4]..[37,826+31]) + class_field (shortcut_ext_attr.ml[38,842+4]..[38,842+31]) attribute "foo" [] Pcf_method Private - "x" (shortcut_ext_attr.ml[37,826+26]..[37,826+27]) + "x" (shortcut_ext_attr.ml[38,842+26]..[38,842+27]) Concrete Override - expression (shortcut_ext_attr.ml[37,826+10]..[37,826+31]) ghost + expression (shortcut_ext_attr.ml[38,842+10]..[38,842+31]) ghost Pexp_poly - expression (shortcut_ext_attr.ml[37,826+30]..[37,826+31]) + expression (shortcut_ext_attr.ml[38,842+30]..[38,842+31]) Pexp_constant PConst_int (3,None) None - class_field (shortcut_ext_attr.ml[38,858+4]..[38,858+23]) + class_field (shortcut_ext_attr.ml[39,874+4]..[39,874+23]) attribute "foo" [] Pcf_initializer - expression (shortcut_ext_attr.ml[38,858+22]..[38,858+23]) - Pexp_ident "x" (shortcut_ext_attr.ml[38,858+22]..[38,858+23]) + expression (shortcut_ext_attr.ml[39,874+22]..[39,874+23]) + Pexp_ident "x" (shortcut_ext_attr.ml[39,874+22]..[39,874+23]) ] ] - structure_item (shortcut_ext_attr.ml[42,918+0]..[50,1098+5]) + structure_item (shortcut_ext_attr.ml[43,934+0]..[51,1114+5]) Pstr_class_type [ - class_type_declaration (shortcut_ext_attr.ml[42,918+0]..[50,1098+5]) + class_type_declaration (shortcut_ext_attr.ml[43,934+0]..[51,1114+5]) pci_virt = Concrete pci_params = [] - pci_name = "t" (shortcut_ext_attr.ml[42,918+11]..[42,918+12]) + pci_name = "t" (shortcut_ext_attr.ml[43,934+11]..[43,934+12]) pci_expr = - class_type (shortcut_ext_attr.ml[43,933+2]..[50,1098+5]) + class_type (shortcut_ext_attr.ml[44,949+2]..[51,1114+5]) attribute "foo" [] Pcty_signature class_signature - core_type (shortcut_ext_attr.ml[43,933+14]..[43,933+14]) + core_type (shortcut_ext_attr.ml[44,949+14]..[44,949+14]) Ptyp_any [ - class_type_field (shortcut_ext_attr.ml[44,948+4]..[44,948+19]) + class_type_field (shortcut_ext_attr.ml[45,964+4]..[45,964+19]) attribute "foo" [] Pctf_inherit - class_type (shortcut_ext_attr.ml[44,948+18]..[44,948+19]) - Pcty_constr "t" (shortcut_ext_attr.ml[44,948+18]..[44,948+19]) + class_type (shortcut_ext_attr.ml[45,964+18]..[45,964+19]) + Pcty_constr "t" (shortcut_ext_attr.ml[45,964+18]..[45,964+19]) [] - class_type_field (shortcut_ext_attr.ml[45,968+4]..[45,968+19]) + class_type_field (shortcut_ext_attr.ml[46,984+4]..[46,984+19]) attribute "foo" [] Pctf_val "x" Immutable Concrete - core_type (shortcut_ext_attr.ml[45,968+18]..[45,968+19]) - Ptyp_constr "t" (shortcut_ext_attr.ml[45,968+18]..[45,968+19]) + core_type (shortcut_ext_attr.ml[46,984+18]..[46,984+19]) + Ptyp_constr "t" (shortcut_ext_attr.ml[46,984+18]..[46,984+19]) [] - class_type_field (shortcut_ext_attr.ml[46,988+4]..[46,988+27]) + class_type_field (shortcut_ext_attr.ml[47,1004+4]..[47,1004+27]) attribute "foo" [] Pctf_val "x" Mutable Concrete - core_type (shortcut_ext_attr.ml[46,988+26]..[46,988+27]) - Ptyp_constr "t" (shortcut_ext_attr.ml[46,988+26]..[46,988+27]) + core_type (shortcut_ext_attr.ml[47,1004+26]..[47,1004+27]) + Ptyp_constr "t" (shortcut_ext_attr.ml[47,1004+26]..[47,1004+27]) [] - class_type_field (shortcut_ext_attr.ml[47,1016+4]..[47,1016+22]) + class_type_field (shortcut_ext_attr.ml[48,1032+4]..[48,1032+22]) attribute "foo" [] Pctf_method "x" Public Concrete - core_type (shortcut_ext_attr.ml[47,1016+21]..[47,1016+22]) - Ptyp_constr "t" (shortcut_ext_attr.ml[47,1016+21]..[47,1016+22]) + core_type (shortcut_ext_attr.ml[48,1032+21]..[48,1032+22]) + Ptyp_constr "t" (shortcut_ext_attr.ml[48,1032+21]..[48,1032+22]) [] - class_type_field (shortcut_ext_attr.ml[48,1039+4]..[48,1039+30]) + class_type_field (shortcut_ext_attr.ml[49,1055+4]..[49,1055+30]) attribute "foo" [] Pctf_method "x" Private Concrete - core_type (shortcut_ext_attr.ml[48,1039+29]..[48,1039+30]) - Ptyp_constr "t" (shortcut_ext_attr.ml[48,1039+29]..[48,1039+30]) + core_type (shortcut_ext_attr.ml[49,1055+29]..[49,1055+30]) + Ptyp_constr "t" (shortcut_ext_attr.ml[49,1055+29]..[49,1055+30]) [] - class_type_field (shortcut_ext_attr.ml[49,1070+4]..[49,1070+27]) + class_type_field (shortcut_ext_attr.ml[50,1086+4]..[50,1086+27]) attribute "foo" [] Pctf_constraint - core_type (shortcut_ext_attr.ml[49,1070+21]..[49,1070+22]) - Ptyp_constr "t" (shortcut_ext_attr.ml[49,1070+21]..[49,1070+22]) + core_type (shortcut_ext_attr.ml[50,1086+21]..[50,1086+22]) + Ptyp_constr "t" (shortcut_ext_attr.ml[50,1086+21]..[50,1086+22]) [] - core_type (shortcut_ext_attr.ml[49,1070+25]..[49,1070+27]) - Ptyp_constr "t'" (shortcut_ext_attr.ml[49,1070+25]..[49,1070+27]) + core_type (shortcut_ext_attr.ml[50,1086+25]..[50,1086+27]) + Ptyp_constr "t'" (shortcut_ext_attr.ml[50,1086+25]..[50,1086+27]) [] ] ] - structure_item (shortcut_ext_attr.ml[53,1128+0]..[54,1137+22]) + structure_item (shortcut_ext_attr.ml[54,1144+0]..[55,1153+22]) Pstr_type Rec [ - type_declaration "t" (shortcut_ext_attr.ml[53,1128+5]..[53,1128+6]) (shortcut_ext_attr.ml[53,1128+0]..[54,1137+22]) + type_declaration "t" (shortcut_ext_attr.ml[54,1144+5]..[54,1144+6]) (shortcut_ext_attr.ml[54,1144+0]..[55,1153+22]) ptype_params = [] ptype_cstrs = @@ -481,86 +497,86 @@ ptype_private = Public ptype_manifest = Some - core_type (shortcut_ext_attr.ml[54,1137+2]..[54,1137+22]) ghost + core_type (shortcut_ext_attr.ml[55,1153+2]..[55,1153+22]) ghost Ptyp_extension "foo" - core_type (shortcut_ext_attr.ml[54,1137+2]..[54,1137+22]) + core_type (shortcut_ext_attr.ml[55,1153+2]..[55,1153+22]) attribute "foo" [] - Ptyp_package "M" (shortcut_ext_attr.ml[54,1137+20]..[54,1137+21]) + Ptyp_package "M" (shortcut_ext_attr.ml[55,1153+20]..[55,1153+21]) [] ] - structure_item (shortcut_ext_attr.ml[57,1186+0]..[60,1242+22]) + structure_item (shortcut_ext_attr.ml[58,1202+0]..[61,1258+22]) Pstr_module - "M" (shortcut_ext_attr.ml[57,1186+7]..[57,1186+8]) - module_expr (shortcut_ext_attr.ml[58,1197+2]..[60,1242+22]) + "M" (shortcut_ext_attr.ml[58,1202+7]..[58,1202+8]) + module_expr (shortcut_ext_attr.ml[59,1213+2]..[61,1258+22]) attribute "foo" [] - Pmod_functor "M" (shortcut_ext_attr.ml[58,1197+17]..[58,1197+18]) - module_type (shortcut_ext_attr.ml[58,1197+21]..[58,1197+22]) - Pmty_ident "S" (shortcut_ext_attr.ml[58,1197+21]..[58,1197+22]) - module_expr (shortcut_ext_attr.ml[59,1224+4]..[60,1242+22]) + Pmod_functor "M" (shortcut_ext_attr.ml[59,1213+17]..[59,1213+18]) + module_type (shortcut_ext_attr.ml[59,1213+21]..[59,1213+22]) + Pmty_ident "S" (shortcut_ext_attr.ml[59,1213+21]..[59,1213+22]) + module_expr (shortcut_ext_attr.ml[60,1240+4]..[61,1258+22]) Pmod_apply - module_expr (shortcut_ext_attr.ml[59,1224+4]..[59,1224+17]) + module_expr (shortcut_ext_attr.ml[60,1240+4]..[60,1240+17]) attribute "foo" [] Pmod_unpack - expression (shortcut_ext_attr.ml[59,1224+15]..[59,1224+16]) - Pexp_ident "x" (shortcut_ext_attr.ml[59,1224+15]..[59,1224+16]) - module_expr (shortcut_ext_attr.ml[60,1242+5]..[60,1242+21]) + expression (shortcut_ext_attr.ml[60,1240+15]..[60,1240+16]) + Pexp_ident "x" (shortcut_ext_attr.ml[60,1240+15]..[60,1240+16]) + module_expr (shortcut_ext_attr.ml[61,1258+5]..[61,1258+21]) attribute "foo" [] Pmod_structure [] - structure_item (shortcut_ext_attr.ml[63,1295+0]..[66,1368+19]) - Pstr_modtype "S" (shortcut_ext_attr.ml[63,1295+12]..[63,1295+13]) - module_type (shortcut_ext_attr.ml[64,1311+2]..[66,1368+19]) + structure_item (shortcut_ext_attr.ml[64,1311+0]..[67,1384+19]) + Pstr_modtype "S" (shortcut_ext_attr.ml[64,1311+12]..[64,1311+13]) + module_type (shortcut_ext_attr.ml[65,1327+2]..[67,1384+19]) attribute "foo" [] - Pmty_functor "M" (shortcut_ext_attr.ml[64,1311+17]..[64,1311+18]) - module_type (shortcut_ext_attr.ml[64,1311+19]..[64,1311+20]) - Pmty_ident "S" (shortcut_ext_attr.ml[64,1311+19]..[64,1311+20]) - module_type (shortcut_ext_attr.ml[65,1336+4]..[66,1368+19]) + Pmty_functor "M" (shortcut_ext_attr.ml[65,1327+17]..[65,1327+18]) + module_type (shortcut_ext_attr.ml[65,1327+19]..[65,1327+20]) + Pmty_ident "S" (shortcut_ext_attr.ml[65,1327+19]..[65,1327+20]) + module_type (shortcut_ext_attr.ml[66,1352+4]..[67,1384+19]) Pmty_functor "_" (_none_[1,0+-1]..[1,0+-1]) ghost - module_type (shortcut_ext_attr.ml[65,1336+5]..[65,1336+27]) + module_type (shortcut_ext_attr.ml[66,1352+5]..[66,1352+27]) attribute "foo" [] Pmty_typeof - module_expr (shortcut_ext_attr.ml[65,1336+26]..[65,1336+27]) - Pmod_ident "M" (shortcut_ext_attr.ml[65,1336+26]..[65,1336+27]) - module_type (shortcut_ext_attr.ml[66,1368+5]..[66,1368+18]) + module_expr (shortcut_ext_attr.ml[66,1352+26]..[66,1352+27]) + Pmod_ident "M" (shortcut_ext_attr.ml[66,1352+26]..[66,1352+27]) + module_type (shortcut_ext_attr.ml[67,1384+5]..[67,1384+18]) attribute "foo" [] Pmty_signature [] - structure_item (shortcut_ext_attr.ml[69,1411+0]..[70,1431+15]) ghost + structure_item (shortcut_ext_attr.ml[70,1427+0]..[71,1447+15]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[69,1411+0]..[70,1431+15]) + structure_item (shortcut_ext_attr.ml[70,1427+0]..[71,1447+15]) Pstr_value Nonrec [ attribute "foo" [] - pattern (shortcut_ext_attr.ml[69,1411+14]..[69,1411+15]) - Ppat_var "x" (shortcut_ext_attr.ml[69,1411+14]..[69,1411+15]) - expression (shortcut_ext_attr.ml[69,1411+18]..[69,1411+19]) + pattern (shortcut_ext_attr.ml[70,1427+14]..[70,1427+15]) + Ppat_var "x" (shortcut_ext_attr.ml[70,1427+14]..[70,1427+15]) + expression (shortcut_ext_attr.ml[70,1427+18]..[70,1427+19]) Pexp_constant PConst_int (4,None) attribute "foo" [] - pattern (shortcut_ext_attr.ml[70,1431+10]..[70,1431+11]) - Ppat_var "y" (shortcut_ext_attr.ml[70,1431+10]..[70,1431+11]) - expression (shortcut_ext_attr.ml[70,1431+14]..[70,1431+15]) - Pexp_ident "x" (shortcut_ext_attr.ml[70,1431+14]..[70,1431+15]) + pattern (shortcut_ext_attr.ml[71,1447+10]..[71,1447+11]) + Ppat_var "y" (shortcut_ext_attr.ml[71,1447+10]..[71,1447+11]) + expression (shortcut_ext_attr.ml[71,1447+14]..[71,1447+15]) + Pexp_ident "x" (shortcut_ext_attr.ml[71,1447+14]..[71,1447+15]) ] ] - structure_item (shortcut_ext_attr.ml[72,1448+0]..[73,1471+17]) ghost + structure_item (shortcut_ext_attr.ml[73,1464+0]..[74,1487+17]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[72,1448+0]..[73,1471+17]) + structure_item (shortcut_ext_attr.ml[73,1464+0]..[74,1487+17]) Pstr_type Rec [ - type_declaration "t" (shortcut_ext_attr.ml[72,1448+15]..[72,1448+16]) (shortcut_ext_attr.ml[72,1448+0]..[72,1448+22]) + type_declaration "t" (shortcut_ext_attr.ml[73,1464+15]..[73,1464+16]) (shortcut_ext_attr.ml[73,1464+0]..[73,1464+22]) attribute "foo" [] ptype_params = @@ -572,10 +588,10 @@ ptype_private = Public ptype_manifest = Some - core_type (shortcut_ext_attr.ml[72,1448+19]..[72,1448+22]) - Ptyp_constr "int" (shortcut_ext_attr.ml[72,1448+19]..[72,1448+22]) + core_type (shortcut_ext_attr.ml[73,1464+19]..[73,1464+22]) + Ptyp_constr "int" (shortcut_ext_attr.ml[73,1464+19]..[73,1464+22]) [] - type_declaration "t" (shortcut_ext_attr.ml[73,1471+10]..[73,1471+11]) (shortcut_ext_attr.ml[73,1471+0]..[73,1471+17]) + type_declaration "t" (shortcut_ext_attr.ml[74,1487+10]..[74,1487+11]) (shortcut_ext_attr.ml[74,1487+0]..[74,1487+17]) attribute "foo" [] ptype_params = @@ -587,25 +603,25 @@ ptype_private = Public ptype_manifest = Some - core_type (shortcut_ext_attr.ml[73,1471+14]..[73,1471+17]) - Ptyp_constr "int" (shortcut_ext_attr.ml[73,1471+14]..[73,1471+17]) + core_type (shortcut_ext_attr.ml[74,1487+14]..[74,1487+17]) + Ptyp_constr "int" (shortcut_ext_attr.ml[74,1487+14]..[74,1487+17]) [] ] ] - structure_item (shortcut_ext_attr.ml[74,1489+0]..[74,1489+21]) ghost + structure_item (shortcut_ext_attr.ml[75,1505+0]..[75,1505+21]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[74,1489+0]..[74,1489+21]) + structure_item (shortcut_ext_attr.ml[75,1505+0]..[75,1505+21]) Pstr_typext type_extension attribute "foo" [] - ptyext_path = "t" (shortcut_ext_attr.ml[74,1489+15]..[74,1489+16]) + ptyext_path = "t" (shortcut_ext_attr.ml[75,1505+15]..[75,1505+16]) ptyext_params = [] ptyext_constructors = [ - extension_constructor (shortcut_ext_attr.ml[74,1489+20]..[74,1489+21]) + extension_constructor (shortcut_ext_attr.ml[75,1505+20]..[75,1505+21]) pext_name = "T" pext_kind = Pext_decl @@ -614,64 +630,64 @@ ] ptyext_private = Public ] - structure_item (shortcut_ext_attr.ml[76,1512+0]..[76,1512+21]) ghost + structure_item (shortcut_ext_attr.ml[77,1528+0]..[77,1528+21]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[76,1512+0]..[76,1512+21]) + structure_item (shortcut_ext_attr.ml[77,1528+0]..[77,1528+21]) Pstr_class [ - class_declaration (shortcut_ext_attr.ml[76,1512+0]..[76,1512+21]) + class_declaration (shortcut_ext_attr.ml[77,1528+0]..[77,1528+21]) attribute "foo" [] pci_virt = Concrete pci_params = [] - pci_name = "x" (shortcut_ext_attr.ml[76,1512+16]..[76,1512+17]) + pci_name = "x" (shortcut_ext_attr.ml[77,1528+16]..[77,1528+17]) pci_expr = - class_expr (shortcut_ext_attr.ml[76,1512+20]..[76,1512+21]) - Pcl_constr "x" (shortcut_ext_attr.ml[76,1512+20]..[76,1512+21]) + class_expr (shortcut_ext_attr.ml[77,1528+20]..[77,1528+21]) + Pcl_constr "x" (shortcut_ext_attr.ml[77,1528+20]..[77,1528+21]) [] ] ] - structure_item (shortcut_ext_attr.ml[77,1534+0]..[77,1534+26]) ghost + structure_item (shortcut_ext_attr.ml[78,1550+0]..[78,1550+26]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[77,1534+0]..[77,1534+26]) + structure_item (shortcut_ext_attr.ml[78,1550+0]..[78,1550+26]) Pstr_class_type [ - class_type_declaration (shortcut_ext_attr.ml[77,1534+0]..[77,1534+26]) + class_type_declaration (shortcut_ext_attr.ml[78,1550+0]..[78,1550+26]) attribute "foo" [] pci_virt = Concrete pci_params = [] - pci_name = "x" (shortcut_ext_attr.ml[77,1534+21]..[77,1534+22]) + pci_name = "x" (shortcut_ext_attr.ml[78,1550+21]..[78,1550+22]) pci_expr = - class_type (shortcut_ext_attr.ml[77,1534+25]..[77,1534+26]) - Pcty_constr "x" (shortcut_ext_attr.ml[77,1534+25]..[77,1534+26]) + class_type (shortcut_ext_attr.ml[78,1550+25]..[78,1550+26]) + Pcty_constr "x" (shortcut_ext_attr.ml[78,1550+25]..[78,1550+26]) [] ] ] - structure_item (shortcut_ext_attr.ml[78,1561+0]..[78,1561+30]) ghost + structure_item (shortcut_ext_attr.ml[79,1577+0]..[79,1577+30]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[78,1561+0]..[78,1561+30]) + structure_item (shortcut_ext_attr.ml[79,1577+0]..[79,1577+30]) Pstr_primitive - value_description "x" (shortcut_ext_attr.ml[78,1561+19]..[78,1561+20]) (shortcut_ext_attr.ml[78,1561+0]..[78,1561+30]) + value_description "x" (shortcut_ext_attr.ml[79,1577+19]..[79,1577+20]) (shortcut_ext_attr.ml[79,1577+0]..[79,1577+30]) attribute "foo" [] - core_type (shortcut_ext_attr.ml[78,1561+23]..[78,1561+24]) + core_type (shortcut_ext_attr.ml[79,1577+23]..[79,1577+24]) Ptyp_any [ "" ] ] - structure_item (shortcut_ext_attr.ml[79,1592+0]..[79,1592+21]) ghost + structure_item (shortcut_ext_attr.ml[80,1608+0]..[80,1608+21]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[79,1592+0]..[79,1592+21]) + structure_item (shortcut_ext_attr.ml[80,1608+0]..[80,1608+21]) Pstr_exception - extension_constructor (shortcut_ext_attr.ml[79,1592+0]..[79,1592+21]) + extension_constructor (shortcut_ext_attr.ml[80,1608+0]..[80,1608+21]) attribute "foo" [] pext_name = "X" @@ -680,110 +696,110 @@ [] None ] - structure_item (shortcut_ext_attr.ml[81,1615+0]..[81,1615+22]) ghost + structure_item (shortcut_ext_attr.ml[82,1631+0]..[82,1631+22]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[81,1615+0]..[81,1615+22]) + structure_item (shortcut_ext_attr.ml[82,1631+0]..[82,1631+22]) Pstr_module - "M" (shortcut_ext_attr.ml[81,1615+17]..[81,1615+18]) + "M" (shortcut_ext_attr.ml[82,1631+17]..[82,1631+18]) attribute "foo" [] - module_expr (shortcut_ext_attr.ml[81,1615+21]..[81,1615+22]) - Pmod_ident "M" (shortcut_ext_attr.ml[81,1615+21]..[81,1615+22]) + module_expr (shortcut_ext_attr.ml[82,1631+21]..[82,1631+22]) + Pmod_ident "M" (shortcut_ext_attr.ml[82,1631+21]..[82,1631+22]) ] - structure_item (shortcut_ext_attr.ml[82,1638+0]..[83,1669+19]) ghost + structure_item (shortcut_ext_attr.ml[83,1654+0]..[84,1685+19]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[82,1638+0]..[83,1669+19]) + structure_item (shortcut_ext_attr.ml[83,1654+0]..[84,1685+19]) Pstr_recmodule [ - "M" (shortcut_ext_attr.ml[82,1638+21]..[82,1638+22]) + "M" (shortcut_ext_attr.ml[83,1654+21]..[83,1654+22]) attribute "foo" [] - module_expr (shortcut_ext_attr.ml[82,1638+23]..[82,1638+30]) + module_expr (shortcut_ext_attr.ml[83,1654+23]..[83,1654+30]) Pmod_constraint - module_expr (shortcut_ext_attr.ml[82,1638+29]..[82,1638+30]) - Pmod_ident "M" (shortcut_ext_attr.ml[82,1638+29]..[82,1638+30]) - module_type (shortcut_ext_attr.ml[82,1638+25]..[82,1638+26]) - Pmty_ident "S" (shortcut_ext_attr.ml[82,1638+25]..[82,1638+26]) - "M" (shortcut_ext_attr.ml[83,1669+10]..[83,1669+11]) + module_expr (shortcut_ext_attr.ml[83,1654+29]..[83,1654+30]) + Pmod_ident "M" (shortcut_ext_attr.ml[83,1654+29]..[83,1654+30]) + module_type (shortcut_ext_attr.ml[83,1654+25]..[83,1654+26]) + Pmty_ident "S" (shortcut_ext_attr.ml[83,1654+25]..[83,1654+26]) + "M" (shortcut_ext_attr.ml[84,1685+10]..[84,1685+11]) attribute "foo" [] - module_expr (shortcut_ext_attr.ml[83,1669+12]..[83,1669+19]) + module_expr (shortcut_ext_attr.ml[84,1685+12]..[84,1685+19]) Pmod_constraint - module_expr (shortcut_ext_attr.ml[83,1669+18]..[83,1669+19]) - Pmod_ident "M" (shortcut_ext_attr.ml[83,1669+18]..[83,1669+19]) - module_type (shortcut_ext_attr.ml[83,1669+14]..[83,1669+15]) - Pmty_ident "S" (shortcut_ext_attr.ml[83,1669+14]..[83,1669+15]) + module_expr (shortcut_ext_attr.ml[84,1685+18]..[84,1685+19]) + Pmod_ident "M" (shortcut_ext_attr.ml[84,1685+18]..[84,1685+19]) + module_type (shortcut_ext_attr.ml[84,1685+14]..[84,1685+15]) + Pmty_ident "S" (shortcut_ext_attr.ml[84,1685+14]..[84,1685+15]) ] ] - structure_item (shortcut_ext_attr.ml[84,1689+0]..[84,1689+27]) ghost + structure_item (shortcut_ext_attr.ml[85,1705+0]..[85,1705+27]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[84,1689+0]..[84,1689+27]) - Pstr_modtype "S" (shortcut_ext_attr.ml[84,1689+22]..[84,1689+23]) + structure_item (shortcut_ext_attr.ml[85,1705+0]..[85,1705+27]) + Pstr_modtype "S" (shortcut_ext_attr.ml[85,1705+22]..[85,1705+23]) attribute "foo" [] - module_type (shortcut_ext_attr.ml[84,1689+26]..[84,1689+27]) - Pmty_ident "S" (shortcut_ext_attr.ml[84,1689+26]..[84,1689+27]) + module_type (shortcut_ext_attr.ml[85,1705+26]..[85,1705+27]) + Pmty_ident "S" (shortcut_ext_attr.ml[85,1705+26]..[85,1705+27]) ] - structure_item (shortcut_ext_attr.ml[86,1718+0]..[86,1718+19]) ghost + structure_item (shortcut_ext_attr.ml[87,1734+0]..[87,1734+19]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[86,1718+0]..[86,1718+19]) + structure_item (shortcut_ext_attr.ml[87,1734+0]..[87,1734+19]) Pstr_include attribute "foo" [] - module_expr (shortcut_ext_attr.ml[86,1718+18]..[86,1718+19]) - Pmod_ident "M" (shortcut_ext_attr.ml[86,1718+18]..[86,1718+19]) + module_expr (shortcut_ext_attr.ml[87,1734+18]..[87,1734+19]) + Pmod_ident "M" (shortcut_ext_attr.ml[87,1734+18]..[87,1734+19]) ] - structure_item (shortcut_ext_attr.ml[87,1738+0]..[87,1738+16]) ghost + structure_item (shortcut_ext_attr.ml[88,1754+0]..[88,1754+16]) ghost Pstr_extension "foo" [ - structure_item (shortcut_ext_attr.ml[87,1738+0]..[87,1738+16]) - Pstr_open Fresh "M" (shortcut_ext_attr.ml[87,1738+15]..[87,1738+16]) + structure_item (shortcut_ext_attr.ml[88,1754+0]..[88,1754+16]) + Pstr_open Fresh "M" (shortcut_ext_attr.ml[88,1754+15]..[88,1754+16]) attribute "foo" [] ] - structure_item (shortcut_ext_attr.ml[90,1778+0]..[113,2174+3]) - Pstr_modtype "S" (shortcut_ext_attr.ml[90,1778+12]..[90,1778+13]) - module_type (shortcut_ext_attr.ml[90,1778+16]..[113,2174+3]) + structure_item (shortcut_ext_attr.ml[91,1794+0]..[114,2190+3]) + Pstr_modtype "S" (shortcut_ext_attr.ml[91,1794+12]..[91,1794+13]) + module_type (shortcut_ext_attr.ml[91,1794+16]..[114,2190+3]) Pmty_signature [ - signature_item (shortcut_ext_attr.ml[91,1798+2]..[91,1798+21]) ghost + signature_item (shortcut_ext_attr.ml[92,1814+2]..[92,1814+21]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[91,1798+2]..[91,1798+21]) + signature_item (shortcut_ext_attr.ml[92,1814+2]..[92,1814+21]) Psig_value - value_description "x" (shortcut_ext_attr.ml[91,1798+16]..[91,1798+17]) (shortcut_ext_attr.ml[91,1798+2]..[91,1798+21]) + value_description "x" (shortcut_ext_attr.ml[92,1814+16]..[92,1814+17]) (shortcut_ext_attr.ml[92,1814+2]..[92,1814+21]) attribute "foo" [] - core_type (shortcut_ext_attr.ml[91,1798+20]..[91,1798+21]) - Ptyp_constr "t" (shortcut_ext_attr.ml[91,1798+20]..[91,1798+21]) + core_type (shortcut_ext_attr.ml[92,1814+20]..[92,1814+21]) + Ptyp_constr "t" (shortcut_ext_attr.ml[92,1814+20]..[92,1814+21]) [] [] ] - signature_item (shortcut_ext_attr.ml[92,1820+2]..[92,1820+31]) ghost + signature_item (shortcut_ext_attr.ml[93,1836+2]..[93,1836+31]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[92,1820+2]..[92,1820+31]) + signature_item (shortcut_ext_attr.ml[93,1836+2]..[93,1836+31]) Psig_value - value_description "x" (shortcut_ext_attr.ml[92,1820+21]..[92,1820+22]) (shortcut_ext_attr.ml[92,1820+2]..[92,1820+31]) + value_description "x" (shortcut_ext_attr.ml[93,1836+21]..[93,1836+22]) (shortcut_ext_attr.ml[93,1836+2]..[93,1836+31]) attribute "foo" [] - core_type (shortcut_ext_attr.ml[92,1820+25]..[92,1820+26]) - Ptyp_constr "t" (shortcut_ext_attr.ml[92,1820+25]..[92,1820+26]) + core_type (shortcut_ext_attr.ml[93,1836+25]..[93,1836+26]) + Ptyp_constr "t" (shortcut_ext_attr.ml[93,1836+25]..[93,1836+26]) [] [ "" ] ] - signature_item (shortcut_ext_attr.ml[94,1853+2]..[95,1878+20]) ghost + signature_item (shortcut_ext_attr.ml[95,1869+2]..[96,1894+20]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[94,1853+2]..[95,1878+20]) + signature_item (shortcut_ext_attr.ml[95,1869+2]..[96,1894+20]) Psig_type Rec [ - type_declaration "t" (shortcut_ext_attr.ml[94,1853+17]..[94,1853+18]) (shortcut_ext_attr.ml[94,1853+2]..[94,1853+24]) + type_declaration "t" (shortcut_ext_attr.ml[95,1869+17]..[95,1869+18]) (shortcut_ext_attr.ml[95,1869+2]..[95,1869+24]) attribute "foo" [] ptype_params = @@ -795,10 +811,10 @@ ptype_private = Public ptype_manifest = Some - core_type (shortcut_ext_attr.ml[94,1853+21]..[94,1853+24]) - Ptyp_constr "int" (shortcut_ext_attr.ml[94,1853+21]..[94,1853+24]) + core_type (shortcut_ext_attr.ml[95,1869+21]..[95,1869+24]) + Ptyp_constr "int" (shortcut_ext_attr.ml[95,1869+21]..[95,1869+24]) [] - type_declaration "t'" (shortcut_ext_attr.ml[95,1878+12]..[95,1878+14]) (shortcut_ext_attr.ml[95,1878+2]..[95,1878+20]) + type_declaration "t'" (shortcut_ext_attr.ml[96,1894+12]..[96,1894+14]) (shortcut_ext_attr.ml[96,1894+2]..[96,1894+20]) attribute "foo" [] ptype_params = @@ -810,25 +826,25 @@ ptype_private = Public ptype_manifest = Some - core_type (shortcut_ext_attr.ml[95,1878+17]..[95,1878+20]) - Ptyp_constr "int" (shortcut_ext_attr.ml[95,1878+17]..[95,1878+20]) + core_type (shortcut_ext_attr.ml[96,1894+17]..[96,1894+20]) + Ptyp_constr "int" (shortcut_ext_attr.ml[96,1894+17]..[96,1894+20]) [] ] ] - signature_item (shortcut_ext_attr.ml[96,1899+2]..[96,1899+23]) ghost + signature_item (shortcut_ext_attr.ml[97,1915+2]..[97,1915+23]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[96,1899+2]..[96,1899+23]) + signature_item (shortcut_ext_attr.ml[97,1915+2]..[97,1915+23]) Psig_typext type_extension attribute "foo" [] - ptyext_path = "t" (shortcut_ext_attr.ml[96,1899+17]..[96,1899+18]) + ptyext_path = "t" (shortcut_ext_attr.ml[97,1915+17]..[97,1915+18]) ptyext_params = [] ptyext_constructors = [ - extension_constructor (shortcut_ext_attr.ml[96,1899+22]..[96,1899+23]) + extension_constructor (shortcut_ext_attr.ml[97,1915+22]..[97,1915+23]) pext_name = "T" pext_kind = Pext_decl @@ -837,12 +853,12 @@ ] ptyext_private = Public ] - signature_item (shortcut_ext_attr.ml[98,1924+2]..[98,1924+23]) ghost + signature_item (shortcut_ext_attr.ml[99,1940+2]..[99,1940+23]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[98,1924+2]..[98,1924+23]) + signature_item (shortcut_ext_attr.ml[99,1940+2]..[99,1940+23]) Psig_exception - extension_constructor (shortcut_ext_attr.ml[98,1924+2]..[98,1924+23]) + extension_constructor (shortcut_ext_attr.ml[99,1940+2]..[99,1940+23]) attribute "foo" [] pext_name = "X" @@ -851,107 +867,107 @@ [] None ] - signature_item (shortcut_ext_attr.ml[100,1949+2]..[100,1949+24]) ghost + signature_item (shortcut_ext_attr.ml[101,1965+2]..[101,1965+24]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[100,1949+2]..[100,1949+24]) - Psig_module "M" (shortcut_ext_attr.ml[100,1949+19]..[100,1949+20]) + signature_item (shortcut_ext_attr.ml[101,1965+2]..[101,1965+24]) + Psig_module "M" (shortcut_ext_attr.ml[101,1965+19]..[101,1965+20]) attribute "foo" [] - module_type (shortcut_ext_attr.ml[100,1949+23]..[100,1949+24]) - Pmty_ident "S" (shortcut_ext_attr.ml[100,1949+23]..[100,1949+24]) + module_type (shortcut_ext_attr.ml[101,1965+23]..[101,1965+24]) + Pmty_ident "S" (shortcut_ext_attr.ml[101,1965+23]..[101,1965+24]) ] - signature_item (shortcut_ext_attr.ml[101,1974+2]..[102,2003+17]) ghost + signature_item (shortcut_ext_attr.ml[102,1990+2]..[103,2019+17]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[101,1974+2]..[102,2003+17]) + signature_item (shortcut_ext_attr.ml[102,1990+2]..[103,2019+17]) Psig_recmodule [ - "M" (shortcut_ext_attr.ml[101,1974+23]..[101,1974+24]) + "M" (shortcut_ext_attr.ml[102,1990+23]..[102,1990+24]) attribute "foo" [] - module_type (shortcut_ext_attr.ml[101,1974+27]..[101,1974+28]) - Pmty_ident "S" (shortcut_ext_attr.ml[101,1974+27]..[101,1974+28]) - "M" (shortcut_ext_attr.ml[102,2003+12]..[102,2003+13]) + module_type (shortcut_ext_attr.ml[102,1990+27]..[102,1990+28]) + Pmty_ident "S" (shortcut_ext_attr.ml[102,1990+27]..[102,1990+28]) + "M" (shortcut_ext_attr.ml[103,2019+12]..[103,2019+13]) attribute "foo" [] - module_type (shortcut_ext_attr.ml[102,2003+16]..[102,2003+17]) - Pmty_ident "S" (shortcut_ext_attr.ml[102,2003+16]..[102,2003+17]) + module_type (shortcut_ext_attr.ml[103,2019+16]..[103,2019+17]) + Pmty_ident "S" (shortcut_ext_attr.ml[103,2019+16]..[103,2019+17]) ] ] - signature_item (shortcut_ext_attr.ml[103,2021+2]..[103,2021+24]) ghost + signature_item (shortcut_ext_attr.ml[104,2037+2]..[104,2037+24]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[103,2021+2]..[103,2021+24]) - Psig_module "M" (shortcut_ext_attr.ml[103,2021+19]..[103,2021+20]) + signature_item (shortcut_ext_attr.ml[104,2037+2]..[104,2037+24]) + Psig_module "M" (shortcut_ext_attr.ml[104,2037+19]..[104,2037+20]) attribute "foo" [] - module_type (shortcut_ext_attr.ml[103,2021+23]..[103,2021+24]) - Pmty_alias "M" (shortcut_ext_attr.ml[103,2021+23]..[103,2021+24]) + module_type (shortcut_ext_attr.ml[104,2037+23]..[104,2037+24]) + Pmty_alias "M" (shortcut_ext_attr.ml[104,2037+23]..[104,2037+24]) ] - signature_item (shortcut_ext_attr.ml[105,2047+2]..[105,2047+29]) ghost + signature_item (shortcut_ext_attr.ml[106,2063+2]..[106,2063+29]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[105,2047+2]..[105,2047+29]) - Psig_modtype "S" (shortcut_ext_attr.ml[105,2047+24]..[105,2047+25]) + signature_item (shortcut_ext_attr.ml[106,2063+2]..[106,2063+29]) + Psig_modtype "S" (shortcut_ext_attr.ml[106,2063+24]..[106,2063+25]) attribute "foo" [] - module_type (shortcut_ext_attr.ml[105,2047+28]..[105,2047+29]) - Pmty_ident "S" (shortcut_ext_attr.ml[105,2047+28]..[105,2047+29]) + module_type (shortcut_ext_attr.ml[106,2063+28]..[106,2063+29]) + Pmty_ident "S" (shortcut_ext_attr.ml[106,2063+28]..[106,2063+29]) ] - signature_item (shortcut_ext_attr.ml[107,2078+2]..[107,2078+21]) ghost + signature_item (shortcut_ext_attr.ml[108,2094+2]..[108,2094+21]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[107,2078+2]..[107,2078+21]) + signature_item (shortcut_ext_attr.ml[108,2094+2]..[108,2094+21]) Psig_include - module_type (shortcut_ext_attr.ml[107,2078+20]..[107,2078+21]) - Pmty_ident "M" (shortcut_ext_attr.ml[107,2078+20]..[107,2078+21]) + module_type (shortcut_ext_attr.ml[108,2094+20]..[108,2094+21]) + Pmty_ident "M" (shortcut_ext_attr.ml[108,2094+20]..[108,2094+21]) attribute "foo" [] ] - signature_item (shortcut_ext_attr.ml[108,2100+2]..[108,2100+18]) ghost + signature_item (shortcut_ext_attr.ml[109,2116+2]..[109,2116+18]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[108,2100+2]..[108,2100+18]) - Psig_open Fresh "M" (shortcut_ext_attr.ml[108,2100+17]..[108,2100+18]) + signature_item (shortcut_ext_attr.ml[109,2116+2]..[109,2116+18]) + Psig_open Fresh "M" (shortcut_ext_attr.ml[109,2116+17]..[109,2116+18]) attribute "foo" [] ] - signature_item (shortcut_ext_attr.ml[110,2120+2]..[110,2120+23]) ghost + signature_item (shortcut_ext_attr.ml[111,2136+2]..[111,2136+23]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[110,2120+2]..[110,2120+23]) + signature_item (shortcut_ext_attr.ml[111,2136+2]..[111,2136+23]) Psig_class [ - class_description (shortcut_ext_attr.ml[110,2120+2]..[110,2120+23]) + class_description (shortcut_ext_attr.ml[111,2136+2]..[111,2136+23]) attribute "foo" [] pci_virt = Concrete pci_params = [] - pci_name = "x" (shortcut_ext_attr.ml[110,2120+18]..[110,2120+19]) + pci_name = "x" (shortcut_ext_attr.ml[111,2136+18]..[111,2136+19]) pci_expr = - class_type (shortcut_ext_attr.ml[110,2120+22]..[110,2120+23]) - Pcty_constr "t" (shortcut_ext_attr.ml[110,2120+22]..[110,2120+23]) + class_type (shortcut_ext_attr.ml[111,2136+22]..[111,2136+23]) + Pcty_constr "t" (shortcut_ext_attr.ml[111,2136+22]..[111,2136+23]) [] ] ] - signature_item (shortcut_ext_attr.ml[111,2144+2]..[111,2144+28]) ghost + signature_item (shortcut_ext_attr.ml[112,2160+2]..[112,2160+28]) ghost Psig_extension "foo" [ - signature_item (shortcut_ext_attr.ml[111,2144+2]..[111,2144+28]) + signature_item (shortcut_ext_attr.ml[112,2160+2]..[112,2160+28]) Psig_class_type [ - class_type_declaration (shortcut_ext_attr.ml[111,2144+2]..[111,2144+28]) + class_type_declaration (shortcut_ext_attr.ml[112,2160+2]..[112,2160+28]) attribute "foo" [] pci_virt = Concrete pci_params = [] - pci_name = "x" (shortcut_ext_attr.ml[111,2144+23]..[111,2144+24]) + pci_name = "x" (shortcut_ext_attr.ml[112,2160+23]..[112,2160+24]) pci_expr = - class_type (shortcut_ext_attr.ml[111,2144+27]..[111,2144+28]) - Pcty_constr "x" (shortcut_ext_attr.ml[111,2144+27]..[111,2144+28]) + class_type (shortcut_ext_attr.ml[112,2160+27]..[112,2160+28]) + Pcty_constr "x" (shortcut_ext_attr.ml[112,2160+27]..[112,2160+28]) [] ] ]