diff options
author | Florian Angeletti <florian.angeletti@inria.fr> | 2023-03-24 16:45:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-24 16:45:01 +0100 |
commit | 5b7a3111573e3641bd01f3c112e199b7394e2244 (patch) | |
tree | f1f4d7b2c0f078e0981baec3a28e251061442f5b /testsuite | |
parent | dbd36ae1a5f06a599434f2cca6261aacca4bdf91 (diff) | |
download | ocaml-5b7a3111573e3641bd01f3c112e199b7394e2244.tar.gz |
parsetree: explicit type constraints for value bindings (#12119)
Add an explicit type constraint field to the Parsetree node for value bindings (`let p : typ = exp`).
Diffstat (limited to 'testsuite')
5 files changed, 219 insertions, 258 deletions
diff --git a/testsuite/tests/parsetree/locations_test.compilers.reference b/testsuite/tests/parsetree/locations_test.compilers.reference index b5b89d7486..80cf4721d8 100644 --- a/testsuite/tests/parsetree/locations_test.compilers.reference +++ b/testsuite/tests/parsetree/locations_test.compilers.reference @@ -222,22 +222,13 @@ Ptop_def Pstr_value Nonrec [ <def> - pattern (//toplevel//[4,29+4]..[4,29+11]) ghost - Ppat_constraint - pattern (//toplevel//[4,29+4]..[4,29+5]) - Ppat_var "x" (//toplevel//[4,29+4]..[4,29+5]) - core_type (//toplevel//[4,29+8]..[4,29+11]) ghost - Ptyp_poly - core_type (//toplevel//[4,29+8]..[4,29+11]) - Ptyp_constr "int" (//toplevel//[4,29+8]..[4,29+11]) - [] - expression (//toplevel//[4,29+4]..[4,29+15]) - Pexp_constraint - expression (//toplevel//[4,29+14]..[4,29+15]) - Pexp_constant PConst_int (3,None) - core_type (//toplevel//[4,29+8]..[4,29+11]) - Ptyp_constr "int" (//toplevel//[4,29+8]..[4,29+11]) - [] + pattern (//toplevel//[4,29+4]..[4,29+5]) + Ppat_var "x" (//toplevel//[4,29+4]..[4,29+5]) + core_type (//toplevel//[4,29+8]..[4,29+11]) + Ptyp_constr "int" (//toplevel//[4,29+8]..[4,29+11]) + [] + expression (//toplevel//[4,29+14]..[4,29+15]) + Pexp_constant PConst_int (3,None) ] ] @@ -248,40 +239,26 @@ Ptop_def Pstr_value Nonrec [ <def> - pattern (//toplevel//[2,1+4]..[2,1+22]) ghost - Ppat_constraint - pattern (//toplevel//[2,1+4]..[2,1+5]) - Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5]) - core_type (//toplevel//[2,1+4]..[2,1+35]) ghost - Ptyp_poly 'a - core_type (//toplevel//[2,1+16]..[2,1+22]) - Ptyp_arrow - Nolabel - core_type (//toplevel//[2,1+16]..[2,1+17]) - Ptyp_var a - core_type (//toplevel//[2,1+21]..[2,1+22]) - Ptyp_var a - expression (//toplevel//[2,1+4]..[2,1+35]) - Pexp_newtype "a" - expression (//toplevel//[2,1+4]..[2,1+35]) - Pexp_constraint - expression (//toplevel//[2,1+25]..[2,1+35]) - Pexp_fun - Nolabel - None - pattern (//toplevel//[2,1+29]..[2,1+30]) - Ppat_var "x" (//toplevel//[2,1+29]..[2,1+30]) - expression (//toplevel//[2,1+34]..[2,1+35]) - Pexp_ident "x" (//toplevel//[2,1+34]..[2,1+35]) - core_type (//toplevel//[2,1+16]..[2,1+22]) - Ptyp_arrow - Nolabel - core_type (//toplevel//[2,1+16]..[2,1+17]) - Ptyp_constr "a" (//toplevel//[2,1+16]..[2,1+17]) - [] - core_type (//toplevel//[2,1+21]..[2,1+22]) - Ptyp_constr "a" (//toplevel//[2,1+21]..[2,1+22]) - [] + pattern (//toplevel//[2,1+4]..[2,1+5]) + Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5]) + <type> "a" (//toplevel//[2,1+13]..[2,1+14]). + core_type (//toplevel//[2,1+16]..[2,1+22]) + Ptyp_arrow + Nolabel + core_type (//toplevel//[2,1+16]..[2,1+17]) + Ptyp_constr "a" (//toplevel//[2,1+16]..[2,1+17]) + [] + core_type (//toplevel//[2,1+21]..[2,1+22]) + Ptyp_constr "a" (//toplevel//[2,1+21]..[2,1+22]) + [] + expression (//toplevel//[2,1+25]..[2,1+35]) + Pexp_fun + Nolabel + None + pattern (//toplevel//[2,1+29]..[2,1+30]) + Ppat_var "x" (//toplevel//[2,1+29]..[2,1+30]) + expression (//toplevel//[2,1+34]..[2,1+35]) + Pexp_ident "x" (//toplevel//[2,1+34]..[2,1+35]) ] ] diff --git a/testsuite/tests/parsing/attributes.compilers.reference b/testsuite/tests/parsing/attributes.compilers.reference index 4f22202730..956550354f 100644 --- a/testsuite/tests/parsing/attributes.compilers.reference +++ b/testsuite/tests/parsing/attributes.compilers.reference @@ -42,17 +42,15 @@ <def> attribute "foo" [] - pattern (attributes.ml[14,206+4]..[14,206+27]) ghost - Ppat_constraint - pattern (attributes.ml[14,206+4]..[14,206+13]) - attribute "foo" - [] - Ppat_var "x" (attributes.ml[14,206+5]..[14,206+6]) - core_type (attributes.ml[14,206+16]..[14,206+20]) - attribute "foo" - [] - Ptyp_constr "unit" (attributes.ml[14,206+16]..[14,206+20]) + pattern (attributes.ml[14,206+4]..[14,206+13]) + attribute "foo" + [] + Ppat_var "x" (attributes.ml[14,206+5]..[14,206+6]) + core_type (attributes.ml[14,206+16]..[14,206+20]) + attribute "foo" [] + Ptyp_constr "unit" (attributes.ml[14,206+16]..[14,206+20]) + [] expression (attributes.ml[14,206+30]..[14,206+32]) attribute "foo" [] diff --git a/testsuite/tests/parsing/extensions.compilers.reference b/testsuite/tests/parsing/extensions.compilers.reference index 44172998ec..075a5167fe 100644 --- a/testsuite/tests/parsing/extensions.compilers.reference +++ b/testsuite/tests/parsing/extensions.compilers.reference @@ -20,39 +20,37 @@ Pstr_value Nonrec [ <def> - pattern (extensions.ml[10,176+4]..[10,176+31]) ghost - Ppat_constraint - pattern (extensions.ml[10,176+4]..[10,176+14]) - Ppat_extension "foo" - [ - structure_item (extensions.ml[10,176+10]..[10,176+13]) - Pstr_eval - expression (extensions.ml[10,176+10]..[10,176+13]) - Pexp_apply - expression (extensions.ml[10,176+11]..[10,176+12]) - Pexp_ident "+" (extensions.ml[10,176+11]..[10,176+12]) - [ - <arg> - Nolabel - expression (extensions.ml[10,176+10]..[10,176+11]) - Pexp_constant PConst_int (2,None) - <arg> - Nolabel - expression (extensions.ml[10,176+12]..[10,176+13]) - Pexp_constant PConst_int (1,None) - ] - ] - core_type (extensions.ml[10,176+17]..[10,176+31]) - Ptyp_extension "foo" - [ - structure_item (extensions.ml[10,176+23]..[10,176+30]) - Pstr_eval - expression (extensions.ml[10,176+23]..[10,176+30]) - Pexp_field - expression (extensions.ml[10,176+23]..[10,176+26]) - Pexp_ident "bar" (extensions.ml[10,176+23]..[10,176+26]) - "baz" (extensions.ml[10,176+27]..[10,176+30]) - ] + pattern (extensions.ml[10,176+4]..[10,176+14]) + Ppat_extension "foo" + [ + structure_item (extensions.ml[10,176+10]..[10,176+13]) + Pstr_eval + expression (extensions.ml[10,176+10]..[10,176+13]) + Pexp_apply + expression (extensions.ml[10,176+11]..[10,176+12]) + Pexp_ident "+" (extensions.ml[10,176+11]..[10,176+12]) + [ + <arg> + Nolabel + expression (extensions.ml[10,176+10]..[10,176+11]) + Pexp_constant PConst_int (2,None) + <arg> + Nolabel + expression (extensions.ml[10,176+12]..[10,176+13]) + Pexp_constant PConst_int (1,None) + ] + ] + core_type (extensions.ml[10,176+17]..[10,176+31]) + Ptyp_extension "foo" + [ + structure_item (extensions.ml[10,176+23]..[10,176+30]) + Pstr_eval + expression (extensions.ml[10,176+23]..[10,176+30]) + Pexp_field + expression (extensions.ml[10,176+23]..[10,176+26]) + Pexp_ident "bar" (extensions.ml[10,176+23]..[10,176+26]) + "baz" (extensions.ml[10,176+27]..[10,176+30]) + ] expression (extensions.ml[10,176+34]..[10,176+46]) Pexp_extension "foo" [ @@ -76,44 +74,42 @@ Pstr_value Nonrec [ <def> - pattern (extensions.ml[13,251+4]..[13,251+44]) ghost - Ppat_constraint - pattern (extensions.ml[13,251+4]..[13,251+23]) - Ppat_extension "foo" - [ - structure_item (extensions.ml[13,251+10]..[13,251+21]) - Pstr_value Nonrec - [ - <def> - pattern (extensions.ml[13,251+14]..[13,251+16]) - Ppat_construct "()" (extensions.ml[13,251+14]..[13,251+16]) - None - expression (extensions.ml[13,251+19]..[13,251+21]) - Pexp_construct "()" (extensions.ml[13,251+19]..[13,251+21]) - None - ] - ] - core_type (extensions.ml[13,251+26]..[13,251+44]) - Ptyp_extension "foo" - [ - structure_item (extensions.ml[13,251+32]..[13,251+42]) - Pstr_type Rec - [ - type_declaration "t" (extensions.ml[13,251+37]..[13,251+38]) (extensions.ml[13,251+32]..[13,251+42]) - ptype_params = - [] - ptype_cstrs = - [] - ptype_kind = - Ptype_abstract - ptype_private = Public - ptype_manifest = - Some - core_type (extensions.ml[13,251+41]..[13,251+42]) - Ptyp_constr "t" (extensions.ml[13,251+41]..[13,251+42]) - [] - ] - ] + pattern (extensions.ml[13,251+4]..[13,251+23]) + Ppat_extension "foo" + [ + structure_item (extensions.ml[13,251+10]..[13,251+21]) + Pstr_value Nonrec + [ + <def> + pattern (extensions.ml[13,251+14]..[13,251+16]) + Ppat_construct "()" (extensions.ml[13,251+14]..[13,251+16]) + None + expression (extensions.ml[13,251+19]..[13,251+21]) + Pexp_construct "()" (extensions.ml[13,251+19]..[13,251+21]) + None + ] + ] + core_type (extensions.ml[13,251+26]..[13,251+44]) + Ptyp_extension "foo" + [ + structure_item (extensions.ml[13,251+32]..[13,251+42]) + Pstr_type Rec + [ + type_declaration "t" (extensions.ml[13,251+37]..[13,251+38]) (extensions.ml[13,251+32]..[13,251+42]) + ptype_params = + [] + ptype_cstrs = + [] + ptype_kind = + Ptype_abstract + ptype_private = Public + ptype_manifest = + Some + core_type (extensions.ml[13,251+41]..[13,251+42]) + Ptyp_constr "t" (extensions.ml[13,251+41]..[13,251+42]) + [] + ] + ] expression (extensions.ml[13,251+47]..[13,251+74]) Pexp_extension "foo" [ @@ -147,28 +143,26 @@ Pstr_value Nonrec [ <def> - pattern (extensions.ml[16,344+4]..[16,344+37]) ghost - Ppat_constraint - pattern (extensions.ml[16,344+4]..[16,344+19]) - Ppat_extension "foo" - core_type (extensions.ml[16,344+11]..[16,344+17]) - Ptyp_variant closed=Closed - [ - Rtag "Foo" true - [] - ] - None - core_type (extensions.ml[16,344+22]..[16,344+37]) - Ptyp_extension "foo" - core_type (extensions.ml[16,344+29]..[16,344+35]) - Ptyp_arrow - Nolabel - core_type (extensions.ml[16,344+29]..[16,344+30]) - Ptyp_constr "t" (extensions.ml[16,344+29]..[16,344+30]) - [] - core_type (extensions.ml[16,344+34]..[16,344+35]) - Ptyp_constr "t" (extensions.ml[16,344+34]..[16,344+35]) + pattern (extensions.ml[16,344+4]..[16,344+19]) + Ppat_extension "foo" + core_type (extensions.ml[16,344+11]..[16,344+17]) + Ptyp_variant closed=Closed + [ + Rtag "Foo" true [] + ] + None + core_type (extensions.ml[16,344+22]..[16,344+37]) + Ptyp_extension "foo" + core_type (extensions.ml[16,344+29]..[16,344+35]) + Ptyp_arrow + Nolabel + core_type (extensions.ml[16,344+29]..[16,344+30]) + Ptyp_constr "t" (extensions.ml[16,344+29]..[16,344+30]) + [] + core_type (extensions.ml[16,344+34]..[16,344+35]) + Ptyp_constr "t" (extensions.ml[16,344+34]..[16,344+35]) + [] expression (extensions.ml[16,344+40]..[16,344+60]) Pexp_extension "foo" core_type (extensions.ml[16,344+47]..[16,344+58]) @@ -209,29 +203,27 @@ Pstr_value Nonrec [ <def> - pattern (extensions.ml[20,445+4]..[20,445+44]) ghost - Ppat_constraint - pattern (extensions.ml[20,445+4]..[20,445+28]) - Ppat_extension "foo" - pattern (extensions.ml[20,445+11]..[20,445+26]) - Ppat_or - pattern (extensions.ml[20,445+12]..[20,445+17]) - Ppat_construct "Bar" (extensions.ml[20,445+12]..[20,445+15]) - Some - [] - pattern (extensions.ml[20,445+16]..[20,445+17]) - Ppat_var "x" (extensions.ml[20,445+16]..[20,445+17]) - pattern (extensions.ml[20,445+20]..[20,445+25]) - Ppat_construct "Baz" (extensions.ml[20,445+20]..[20,445+23]) - Some - [] - pattern (extensions.ml[20,445+24]..[20,445+25]) - Ppat_var "x" (extensions.ml[20,445+24]..[20,445+25]) - core_type (extensions.ml[20,445+31]..[20,445+44]) - Ptyp_extension "foo" - pattern (extensions.ml[20,445+38]..[20,445+42]) - Ppat_type - "bar" (extensions.ml[20,445+39]..[20,445+42]) + pattern (extensions.ml[20,445+4]..[20,445+28]) + Ppat_extension "foo" + pattern (extensions.ml[20,445+11]..[20,445+26]) + Ppat_or + pattern (extensions.ml[20,445+12]..[20,445+17]) + Ppat_construct "Bar" (extensions.ml[20,445+12]..[20,445+15]) + Some + [] + pattern (extensions.ml[20,445+16]..[20,445+17]) + Ppat_var "x" (extensions.ml[20,445+16]..[20,445+17]) + pattern (extensions.ml[20,445+20]..[20,445+25]) + Ppat_construct "Baz" (extensions.ml[20,445+20]..[20,445+23]) + Some + [] + pattern (extensions.ml[20,445+24]..[20,445+25]) + Ppat_var "x" (extensions.ml[20,445+24]..[20,445+25]) + core_type (extensions.ml[20,445+31]..[20,445+44]) + Ptyp_extension "foo" + pattern (extensions.ml[20,445+38]..[20,445+42]) + Ppat_type + "bar" (extensions.ml[20,445+39]..[20,445+42]) expression (extensions.ml[20,445+47]..[20,445+60]) Pexp_extension "foo" pattern (extensions.ml[20,445+54]..[20,445+59]) @@ -255,52 +247,50 @@ Pstr_value Nonrec [ <def> - pattern (extensions.ml[23,534+4]..[24,573+32]) ghost - Ppat_constraint - pattern (extensions.ml[23,534+4]..[23,534+38]) - Ppat_extension "foo" - [ - signature_item (extensions.ml[23,534+11]..[23,534+36]) - Psig_include - module_type (extensions.ml[23,534+19]..[23,534+36]) - Pmty_with - module_type (extensions.ml[23,534+19]..[23,534+20]) - Pmty_ident "S" (extensions.ml[23,534+19]..[23,534+20]) - [ - Pwith_type "t" (extensions.ml[23,534+31]..[23,534+32]) - type_declaration "t" (extensions.ml[23,534+31]..[23,534+32]) (extensions.ml[23,534+26]..[23,534+36]) - ptype_params = - [] - ptype_cstrs = - [] - ptype_kind = - Ptype_abstract - ptype_private = Public - ptype_manifest = - Some - core_type (extensions.ml[23,534+35]..[23,534+36]) - Ptyp_constr "t" (extensions.ml[23,534+35]..[23,534+36]) - [] - ] - ] - core_type (extensions.ml[24,573+4]..[24,573+32]) - Ptyp_extension "foo" - [ - signature_item (extensions.ml[24,573+11]..[24,573+20]) - Psig_value - value_description "x" (extensions.ml[24,573+15]..[24,573+16]) (extensions.ml[24,573+11]..[24,573+20]) - core_type (extensions.ml[24,573+19]..[24,573+20]) - Ptyp_constr "t" (extensions.ml[24,573+19]..[24,573+20]) - [] + pattern (extensions.ml[23,534+4]..[23,534+38]) + Ppat_extension "foo" + [ + signature_item (extensions.ml[23,534+11]..[23,534+36]) + Psig_include + module_type (extensions.ml[23,534+19]..[23,534+36]) + Pmty_with + module_type (extensions.ml[23,534+19]..[23,534+20]) + Pmty_ident "S" (extensions.ml[23,534+19]..[23,534+20]) + [ + Pwith_type "t" (extensions.ml[23,534+31]..[23,534+32]) + type_declaration "t" (extensions.ml[23,534+31]..[23,534+32]) (extensions.ml[23,534+26]..[23,534+36]) + ptype_params = + [] + ptype_cstrs = + [] + ptype_kind = + Ptype_abstract + ptype_private = Public + ptype_manifest = + Some + core_type (extensions.ml[23,534+35]..[23,534+36]) + Ptyp_constr "t" (extensions.ml[23,534+35]..[23,534+36]) + [] + ] + ] + core_type (extensions.ml[24,573+4]..[24,573+32]) + Ptyp_extension "foo" + [ + signature_item (extensions.ml[24,573+11]..[24,573+20]) + Psig_value + value_description "x" (extensions.ml[24,573+15]..[24,573+16]) (extensions.ml[24,573+11]..[24,573+20]) + core_type (extensions.ml[24,573+19]..[24,573+20]) + Ptyp_constr "t" (extensions.ml[24,573+19]..[24,573+20]) [] - signature_item (extensions.ml[24,573+22]..[24,573+31]) - Psig_value - value_description "y" (extensions.ml[24,573+26]..[24,573+27]) (extensions.ml[24,573+22]..[24,573+31]) - core_type (extensions.ml[24,573+30]..[24,573+31]) - Ptyp_constr "t" (extensions.ml[24,573+30]..[24,573+31]) - [] + [] + signature_item (extensions.ml[24,573+22]..[24,573+31]) + Psig_value + value_description "y" (extensions.ml[24,573+26]..[24,573+27]) (extensions.ml[24,573+22]..[24,573+31]) + core_type (extensions.ml[24,573+30]..[24,573+31]) + Ptyp_constr "t" (extensions.ml[24,573+30]..[24,573+31]) [] - ] + [] + ] expression (extensions.ml[25,606+4]..[25,606+23]) Pexp_extension "foo" [ diff --git a/testsuite/tests/parsing/quotedextensions.compilers.reference b/testsuite/tests/parsing/quotedextensions.compilers.reference index 4f84877fde..dc23bd1137 100644 --- a/testsuite/tests/parsing/quotedextensions.compilers.reference +++ b/testsuite/tests/parsing/quotedextensions.compilers.reference @@ -41,24 +41,22 @@ Pstr_value Nonrec [ <def> - pattern (quotedextensions.ml[20,363+4]..[21,390+26]) ghost - Ppat_constraint - pattern (quotedextensions.ml[20,363+4]..[20,363+26]) - Ppat_extension "M.foo" - [ - structure_item (quotedextensions.ml[20,363+4]..[20,363+26]) ghost - Pstr_eval - expression (quotedextensions.ml[20,363+4]..[20,363+26]) ghost - Pexp_constant PConst_string (" <hello>{x} ",(quotedextensions.ml[20,363+12]..[20,363+24]),Some "") - ] - core_type (quotedextensions.ml[21,390+4]..[21,390+26]) - Ptyp_extension "M.foo" - [ - structure_item (quotedextensions.ml[21,390+4]..[21,390+26]) ghost - Pstr_eval - expression (quotedextensions.ml[21,390+4]..[21,390+26]) ghost - Pexp_constant PConst_string (" <hello>{x} ",(quotedextensions.ml[21,390+12]..[21,390+24]),Some "") - ] + pattern (quotedextensions.ml[20,363+4]..[20,363+26]) + Ppat_extension "M.foo" + [ + structure_item (quotedextensions.ml[20,363+4]..[20,363+26]) ghost + Pstr_eval + expression (quotedextensions.ml[20,363+4]..[20,363+26]) ghost + Pexp_constant PConst_string (" <hello>{x} ",(quotedextensions.ml[20,363+12]..[20,363+24]),Some "") + ] + core_type (quotedextensions.ml[21,390+4]..[21,390+26]) + Ptyp_extension "M.foo" + [ + structure_item (quotedextensions.ml[21,390+4]..[21,390+26]) ghost + Pstr_eval + expression (quotedextensions.ml[21,390+4]..[21,390+26]) ghost + Pexp_constant PConst_string (" <hello>{x} ",(quotedextensions.ml[21,390+12]..[21,390+24]),Some "") + ] expression (quotedextensions.ml[22,417+4]..[22,417+26]) Pexp_extension "M.foo" [ @@ -72,24 +70,22 @@ Pstr_value Nonrec [ <def> - pattern (quotedextensions.ml[23,444+4]..[24,480+35]) ghost - Ppat_constraint - pattern (quotedextensions.ml[23,444+4]..[23,444+35]) - Ppat_extension "M.foo" - [ - structure_item (quotedextensions.ml[23,444+4]..[23,444+35]) ghost - Pstr_eval - expression (quotedextensions.ml[23,444+4]..[23,444+35]) ghost - Pexp_constant PConst_string (" <hello>{|x|} ",(quotedextensions.ml[23,444+16]..[23,444+30]),Some "bar") - ] - core_type (quotedextensions.ml[24,480+4]..[24,480+35]) - Ptyp_extension "M.foo" - [ - structure_item (quotedextensions.ml[24,480+4]..[24,480+35]) ghost - Pstr_eval - expression (quotedextensions.ml[24,480+4]..[24,480+35]) ghost - Pexp_constant PConst_string (" <hello>{|x|} ",(quotedextensions.ml[24,480+16]..[24,480+30]),Some "bar") - ] + pattern (quotedextensions.ml[23,444+4]..[23,444+35]) + Ppat_extension "M.foo" + [ + structure_item (quotedextensions.ml[23,444+4]..[23,444+35]) ghost + Pstr_eval + expression (quotedextensions.ml[23,444+4]..[23,444+35]) ghost + Pexp_constant PConst_string (" <hello>{|x|} ",(quotedextensions.ml[23,444+16]..[23,444+30]),Some "bar") + ] + core_type (quotedextensions.ml[24,480+4]..[24,480+35]) + Ptyp_extension "M.foo" + [ + structure_item (quotedextensions.ml[24,480+4]..[24,480+35]) ghost + Pstr_eval + expression (quotedextensions.ml[24,480+4]..[24,480+35]) ghost + Pexp_constant PConst_string (" <hello>{|x|} ",(quotedextensions.ml[24,480+16]..[24,480+30]),Some "bar") + ] expression (quotedextensions.ml[25,516+4]..[25,516+35]) Pexp_extension "M.foo" [ diff --git a/testsuite/tests/typing-gadts/test.ml b/testsuite/tests/typing-gadts/test.ml index 178b9c9590..aaa5be181f 100644 --- a/testsuite/tests/typing-gadts/test.ml +++ b/testsuite/tests/typing-gadts/test.ml @@ -682,9 +682,9 @@ let f : type a b. (a,b) eq -> (<m : a; ..> as 'c) -> (<m : b; ..> as 'c) = ;; (* fail *) [%%expect{| type (_, _) eq = Eq : ('a, 'a) eq -Lines 3-4, characters 4-15: -3 | ....f : type a b. (a,b) eq -> (<m : a; ..> as 'c) -> (<m : b; ..> as 'c) = -4 | fun Eq o -> o +Line 3, characters 18-72: +3 | let f : type a b. (a,b) eq -> (<m : a; ..> as 'c) -> (<m : b; ..> as 'c) = + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error: The universal type variable 'b cannot be generalized: it is already bound to another variable. |}];; |