Skip to content

Commit feb795a

Browse files
committed
AST cleanup: remove Pexp_object and Texp_object.
1 parent eee569e commit feb795a

26 files changed

+20
-32
lines changed

analysis/reanalyze/src/Arnold.ml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -995,9 +995,6 @@ module Compile = struct
995995
| Texp_lazy _ ->
996996
notImplemented "Texp_lazy";
997997
assert false
998-
| Texp_object _ ->
999-
notImplemented "Texp_letmodule";
1000-
assert false
1001998
| Texp_pack _ ->
1002999
notImplemented "Texp_pack";
10031000
assert false

analysis/reanalyze/src/SideEffects.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ let rec exprNoSideEffects (expr : Typedtree.expression) =
6666
| Texp_setinstvar _ -> false
6767
| Texp_override _ -> false
6868
| Texp_letexception (_ec, e) -> e |> exprNoSideEffects
69-
| Texp_object _ -> true
7069
| Texp_pack _ -> false
7170
| Texp_unreachable -> false
7271
| Texp_extension_constructor _ when true -> true

analysis/src/Utils.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ let identifyPexp pexp =
112112
| Pexp_assert _ -> "Pexp_assert"
113113
| Pexp_lazy _ -> "Pexp_lazy"
114114
| Pexp_poly _ -> "Pexp_poly"
115-
| Pexp_object _ -> "Pexp_object"
116115
| Pexp_newtype _ -> "Pexp_newtype"
117116
| Pexp_pack _ -> "Pexp_pack"
118117
| Pexp_extension _ -> "Pexp_extension"

compiler/frontend/bs_ast_invariant.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ let emit_external_warnings : iterator =
9494
(fun self ({pexp_loc = loc} as a) ->
9595
match a.pexp_desc with
9696
| Pexp_constant const -> check_constant loc const
97-
| Pexp_object _ | Pexp_new _ ->
97+
| Pexp_new _ ->
9898
Location.raise_errorf ~loc "OCaml style objects are not supported"
9999
| Pexp_variant (s, None) when Ext_string.is_valid_hash_number s -> (
100100
try ignore (Ext_string.hash_number_as_i32_exn s : int32)

compiler/frontend/bs_ast_mapper.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,6 @@ module E = struct
370370
| Pexp_lazy e -> lazy_ ~loc ~attrs (sub.expr sub e)
371371
| Pexp_poly (e, t) ->
372372
poly ~loc ~attrs (sub.expr sub e) (map_opt (sub.typ sub) t)
373-
| Pexp_object () -> assert false
374373
| Pexp_newtype (s, e) ->
375374
newtype ~loc ~attrs (map_loc sub s) (sub.expr sub e)
376375
| Pexp_pack me -> pack ~loc ~attrs (sub.module_expr sub me)

compiler/ml/ast_iterator.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,6 @@ module E = struct
352352
| Pexp_poly (e, t) ->
353353
sub.expr sub e;
354354
iter_opt (sub.typ sub) t
355-
| Pexp_object () -> ()
356355
| Pexp_newtype (_s, e) -> sub.expr sub e
357356
| Pexp_pack me -> sub.module_expr sub me
358357
| Pexp_open (_ovf, lid, e) ->

compiler/ml/ast_mapper.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,6 @@ module E = struct
333333
| Pexp_lazy e -> lazy_ ~loc ~attrs (sub.expr sub e)
334334
| Pexp_poly (e, t) ->
335335
poly ~loc ~attrs (sub.expr sub e) (map_opt (sub.typ sub) t)
336-
| Pexp_object () -> assert false
337336
| Pexp_newtype (s, e) ->
338337
newtype ~loc ~attrs (map_loc sub s) (sub.expr sub e)
339338
| Pexp_pack me -> pack ~loc ~attrs (sub.module_expr sub me)

compiler/ml/ast_mapper_to0.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,6 @@ module E = struct
339339
| Pexp_lazy e -> lazy_ ~loc ~attrs (sub.expr sub e)
340340
| Pexp_poly (e, t) ->
341341
poly ~loc ~attrs (sub.expr sub e) (map_opt (sub.typ sub) t)
342-
| Pexp_object () -> assert false
343342
| Pexp_newtype (s, e) ->
344343
newtype ~loc ~attrs (map_loc sub s) (sub.expr sub e)
345344
| Pexp_pack me -> pack ~loc ~attrs (sub.module_expr sub me)

compiler/ml/depend.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,6 @@ let rec add_expr bv exp =
284284
| Pexp_poly (e, t) ->
285285
add_expr bv e;
286286
add_opt add_type bv t
287-
| Pexp_object () -> ()
288287
| Pexp_newtype (_, e) -> add_expr bv e
289288
| Pexp_pack m -> add_module bv m
290289
| Pexp_open (_ovf, m, e) ->

compiler/ml/parsetree.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,6 @@ and expression_desc =
300300
301301
Can only be used as the expression under Cfk_concrete
302302
for methods (not values). *)
303-
| Pexp_object of unit (* dummy AST node *)
304303
| Pexp_newtype of string loc * expression (* fun (type t) -> E *)
305304
| Pexp_pack of module_expr
306305
(* (module ME)

compiler/ml/pprintast.ml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -666,9 +666,7 @@ and expression ctxt f x =
666666

667667
and expression1 ctxt f x =
668668
if x.pexp_attributes <> [] then expression ctxt f x
669-
else match x.pexp_desc with
670-
| Pexp_object () -> assert false
671-
| _ -> expression2 ctxt f x
669+
else expression2 ctxt f x
672670
(* used in [Pexp_apply] *)
673671

674672
and expression2 ctxt f x =

compiler/ml/printast.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,6 @@ and expression i ppf x =
334334
line i ppf "Pexp_poly\n";
335335
expression i ppf e;
336336
option i core_type ppf cto
337-
| Pexp_object () -> ()
338337
| Pexp_newtype (s, e) ->
339338
line i ppf "Pexp_newtype \"%s\"\n" s.txt;
340339
expression i ppf e

compiler/ml/printtyped.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,6 @@ and expression i ppf x =
372372
| Texp_lazy e ->
373373
line i ppf "Texp_lazy";
374374
expression i ppf e
375-
| Texp_object () -> ()
376375
| Texp_pack me ->
377376
line i ppf "Texp_pack";
378377
module_expr i ppf me

compiler/ml/rec_check.ml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ let rec classify_expression : Typedtree.expression -> sd =
198198
| Texp_ident _ | Texp_for _ | Texp_constant _ | Texp_new _ | Texp_instvar _
199199
| Texp_tuple _ | Texp_array _ | Texp_construct _ | Texp_variant _
200200
| Texp_record _ | Texp_setfield _ | Texp_while _ | Texp_setinstvar _
201-
| Texp_pack _ | Texp_object _ | Texp_function _ | Texp_lazy _
202-
| Texp_unreachable | Texp_extension_constructor _ ->
201+
| Texp_pack _ | Texp_function _ | Texp_lazy _ | Texp_unreachable
202+
| Texp_extension_constructor _ ->
203203
Static
204204
| Texp_apply ({exp_desc = Texp_ident (_, _, vd)}, _) when is_ref vd -> Static
205205
| Texp_apply _ | Texp_match _ | Texp_ifthenelse _ | Texp_send _ | Texp_field _
@@ -289,7 +289,6 @@ let rec expression : Env.env -> Typedtree.expression -> Use.t =
289289
| Texp_letexception (_, e) -> expression env e
290290
| Texp_assert e -> Use.inspect (expression env e)
291291
| Texp_pack m -> modexp env m
292-
| Texp_object () -> assert false
293292
| Texp_try (e, cases) ->
294293
(* This is more permissive than the old check. *)
295294
let case env {Typedtree.c_rhs} = expression env c_rhs in

compiler/ml/tast_iterator.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@ let expr sub {exp_extra; exp_desc; exp_env; _} =
210210
sub.expr sub exp
211211
| Texp_assert exp -> sub.expr sub exp
212212
| Texp_lazy exp -> sub.expr sub exp
213-
| Texp_object _ -> ()
214213
| Texp_pack mexpr -> sub.module_expr sub mexpr
215214
| Texp_unreachable -> ()
216215
| Texp_extension_constructor _ -> ()

compiler/ml/tast_mapper.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,6 @@ let expr sub x =
250250
Texp_letexception (sub.extension_constructor sub cd, sub.expr sub exp)
251251
| Texp_assert exp -> Texp_assert (sub.expr sub exp)
252252
| Texp_lazy exp -> Texp_lazy (sub.expr sub exp)
253-
| Texp_object () -> Texp_object ()
254253
| Texp_pack mexpr -> Texp_pack (sub.module_expr sub mexpr)
255254
| Texp_unreachable -> Texp_unreachable
256255
| Texp_extension_constructor _ as e -> e

compiler/ml/translcore.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -986,7 +986,6 @@ and transl_exp0 (e : Typedtree.expression) : Lambda.lambda =
986986
optimize the translation just as Lazy.lazy_from_val would
987987
do *)
988988
Lprim (Pmakeblock Blk_lazy_general, [transl_exp e], e.exp_loc)
989-
| Texp_object () -> assert false
990989
| Texp_unreachable -> raise (Error (e.exp_loc, Unreachable_reached))
991990

992991
and transl_list expr_list = List.map transl_exp expr_list

compiler/ml/typecore.ml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,6 @@ let iter_expression f e =
183183
| Pexp_letmodule (_, me, e) ->
184184
expr e;
185185
module_expr me
186-
| Pexp_object _ -> assert false
187186
| Pexp_pack me -> module_expr me
188187
| Pexp_unreachable -> ()
189188
and case {pc_lhs = _; pc_guard; pc_rhs} =
@@ -1853,7 +1852,6 @@ let rec is_nonexpansive exp =
18531852
| Texp_new _ -> assert false
18541853
(* Note: nonexpansive only means no _observable_ side effects *)
18551854
| Texp_lazy e -> is_nonexpansive e
1856-
| Texp_object () -> assert false
18571855
| Texp_letmodule (_, _, mexp, e) ->
18581856
is_nonexpansive_mod mexp && is_nonexpansive e
18591857
| Texp_pack mexp -> is_nonexpansive_mod mexp
@@ -3156,7 +3154,6 @@ and type_expect_ ?type_clash_context ?in_function ?(recarg = Rejected) env sexp
31563154
exp_attributes = sexp.pexp_attributes;
31573155
exp_env = env;
31583156
}
3159-
| Pexp_object _ -> assert false
31603157
| Pexp_poly (sbody, sty) ->
31613158
let ty, cty =
31623159
match sty with

compiler/ml/typedtree.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ and expression_desc =
116116
| Texp_letexception of extension_constructor * expression
117117
| Texp_assert of expression
118118
| Texp_lazy of expression
119-
| Texp_object of unit
120119
| Texp_pack of module_expr
121120
| Texp_unreachable
122121
| Texp_extension_constructor of Longident.t loc * Path.t

compiler/ml/typedtree.mli

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,6 @@ and expression_desc =
218218
| Texp_letexception of extension_constructor * expression
219219
| Texp_assert of expression
220220
| Texp_lazy of expression
221-
| Texp_object of unit
222221
| Texp_pack of module_expr
223222
| Texp_unreachable
224223
| Texp_extension_constructor of Longident.t loc * Path.t

compiler/ml/typedtreeIter.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,6 @@ end = struct
296296
iter_expression exp
297297
| Texp_assert exp -> iter_expression exp
298298
| Texp_lazy exp -> iter_expression exp
299-
| Texp_object () -> ()
300299
| Texp_pack mexpr -> iter_module_expr mexpr
301300
| Texp_unreachable -> ()
302301
| Texp_extension_constructor _ -> ());

compiler/ml/untypeast.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,6 @@ let expression sub exp =
394394
Pexp_letexception (sub.extension_constructor sub ext, sub.expr sub exp)
395395
| Texp_assert exp -> Pexp_assert (sub.expr sub exp)
396396
| Texp_lazy exp -> Pexp_lazy (sub.expr sub exp)
397-
| Texp_object () -> assert false
398397
| Texp_pack mexpr -> Pexp_pack (sub.module_expr sub mexpr)
399398
| Texp_unreachable -> Pexp_unreachable
400399
| Texp_extension_constructor (lid, _) ->

compiler/syntax/src/res_ast_debugger.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,6 @@ module SexpAst = struct
702702
| Pexp_assert expr -> Sexp.list [Sexp.atom "Pexp_assert"; expression expr]
703703
| Pexp_lazy expr -> Sexp.list [Sexp.atom "Pexp_lazy"; expression expr]
704704
| Pexp_poly _ -> Sexp.list [Sexp.atom "Pexp_poly"]
705-
| Pexp_object _ -> Sexp.list [Sexp.atom "Pexp_object"]
706705
| Pexp_newtype (lbl, expr) ->
707706
Sexp.list
708707
[Sexp.atom "Pexp_newtype"; string lbl.Asttypes.txt; expression expr]

compiler/syntax/src/res_printer.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3420,7 +3420,6 @@ and print_expression ~state (e : Parsetree.expression) cmt_tbl =
34203420
| Pexp_setinstvar _ -> Doc.text "Pexp_setinstvar not implemented in printer"
34213421
| Pexp_override _ -> Doc.text "Pexp_override not implemented in printer"
34223422
| Pexp_poly _ -> Doc.text "Pexp_poly not implemented in printer"
3423-
| Pexp_object _ -> Doc.text "Pexp_object not implemented in printer"
34243423
in
34253424
let expr_with_await =
34263425
if ParsetreeViewer.has_await_attribute e.pexp_attributes then

tests/tools_tests/ppx/TestPpx.res

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,11 @@ type t = [#A | #B]
44

55
let a: t = #A
66
let b: t = #B
7+
8+
module M = {
9+
let v = 10
10+
}
11+
12+
open M
13+
14+
let vv = v

tests/tools_tests/src/expected/TestPpx.res.jsout

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,18 @@ console.log("ppx test");
66

77
console.log("ppx test");
88

9+
let M = {
10+
v: 10
11+
};
12+
913
let a = "A";
1014

1115
let b = "B";
1216

17+
let vv = 10;
18+
1319
exports.a = a;
1420
exports.b = b;
21+
exports.M = M;
22+
exports.vv = vv;
1523
/* Not a pure module */

0 commit comments

Comments
 (0)