diff options
-rw-r--r-- | experimental/frisch/Makefile | 2 | ||||
-rw-r--r-- | experimental/frisch/genlifter.ml | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/experimental/frisch/Makefile b/experimental/frisch/Makefile index ae17e0951..2e4a65eb7 100644 --- a/experimental/frisch/Makefile +++ b/experimental/frisch/Makefile @@ -39,7 +39,7 @@ minidoc: .PHONY: lifter lifter: - $(OCAMLC) -w +A-4 -custom -o genlifter.exe $(COMMON) genlifter.ml + $(OCAMLC) -w +A-4-44-45 -custom -o genlifter.exe $(COMMON) genlifter.ml ./genlifter.exe -I ../../parsing -I ../../stdlib Parsetree.expression > ast_lifter.ml $(OCAMLC) -c -w +A-17 ast_lifter.ml $(OCAMLC) -c dumpast.ml diff --git a/experimental/frisch/genlifter.ml b/experimental/frisch/genlifter.ml index d39066eaa..48e795d53 100644 --- a/experimental/frisch/genlifter.ml +++ b/experimental/frisch/genlifter.ml @@ -134,6 +134,7 @@ and tyexpr_fun env ty = lam (pvar "x") (tyexpr env ty (evar "x")) let simplify = + (* (fun x -> <expr> x) ====> <expr> *) object inherit Ast_mapper.mapper as super method! expr e = @@ -165,7 +166,7 @@ let usage = let () = Config.load_path := []; Arg.parse (Arg.align args) gen usage; - let cl = {Parsetree.pcstr_self = pvar "this"; pcstr_fields = !meths} in + let cl = Cstr.mk (pvar "this") !meths in let params = [mknoloc "res", Invariant] in let cl = Ci.mk ~virt:Virtual ~params (mknoloc "lifter") (Cl.structure cl) in let s = [Str.class_ [cl]] in |