Skip to content

Commit bd6be4d

Browse files
committed
clean up code
1 parent 6b18b8a commit bd6be4d

File tree

4 files changed

+24
-144
lines changed

4 files changed

+24
-144
lines changed

jscomp/common/pattern_printer.ml

+6-36
Original file line numberDiff line numberDiff line change
@@ -2,47 +2,17 @@ open Types
22
open Typedtree
33
open Parsetree
44

5-
module Non_empty_list : sig
6-
type 'a t = 'a * 'a list
7-
8-
val concat : 'a t -> 'a t -> 'a t
9-
end = struct
10-
type 'a t = 'a * 'a list
11-
12-
let concat l r =
13-
let lhead, ltail = l in
14-
let rhead, rtail = r in
15-
(lhead, ltail @ (rhead :: rtail))
16-
end
17-
185
let mkpat desc = Ast_helper.Pat.mk desc
196

20-
let join_or_patterns = function
21-
| p, [] -> p
22-
| init_l, init_r :: t ->
23-
let initial_value = mkpat (Ppat_or (init_l, init_r)) in
24-
let result =
25-
List.fold_left (fun l r -> mkpat (Ppat_or (l, r))) initial_value t
26-
in
27-
result
28-
29-
let flatten_or_patterns p =
30-
let rec loop p =
31-
match p.ppat_desc with
32-
| Ppat_or (l, r) ->
33-
let lhs_patterns = loop l in
34-
let rhs_patterns = loop r in
35-
Non_empty_list.concat lhs_patterns rhs_patterns
36-
| _ -> (p, [])
37-
in
38-
loop p
39-
407
let untype typed =
418
let rec loop pat =
429
match pat.pat_desc with
43-
| Tpat_or (pa, pb, _) ->
44-
mkpat (Ppat_or (loop pa, loop pb))
45-
|> flatten_or_patterns |> join_or_patterns
10+
| Tpat_or (p1, { pat_desc = Tpat_or (p2, p3, rI) }, rO) ->
11+
(* Turn A | (B | C) into (A | B) | C for pretty printing without parens *)
12+
let newInner = { pat with pat_desc = Tpat_or (p1, p2, rI) } in
13+
let newOuter = { pat with pat_desc = Tpat_or (newInner, p3, rO) } in
14+
loop newOuter
15+
| Tpat_or (pa, pb, _) -> mkpat (Ppat_or (loop pa, loop pb))
4616
| Tpat_any | Tpat_var _ -> mkpat Ppat_any
4717
| Tpat_constant c -> mkpat (Ppat_constant (Untypeast.constant c))
4818
| Tpat_alias (p, _, _) -> loop p

lib/4.06.1/unstable/js_compiler.ml

+6-36
Original file line numberDiff line numberDiff line change
@@ -56526,47 +56526,17 @@ open Types
5652656526
open Typedtree
5652756527
open Parsetree
5652856528

56529-
module Non_empty_list : sig
56530-
type 'a t = 'a * 'a list
56531-
56532-
val concat : 'a t -> 'a t -> 'a t
56533-
end = struct
56534-
type 'a t = 'a * 'a list
56535-
56536-
let concat l r =
56537-
let lhead, ltail = l in
56538-
let rhead, rtail = r in
56539-
(lhead, ltail @ (rhead :: rtail))
56540-
end
56541-
5654256529
let mkpat desc = Ast_helper.Pat.mk desc
5654356530

56544-
let join_or_patterns = function
56545-
| p, [] -> p
56546-
| init_l, init_r :: t ->
56547-
let initial_value = mkpat (Ppat_or (init_l, init_r)) in
56548-
let result =
56549-
List.fold_left (fun l r -> mkpat (Ppat_or (l, r))) initial_value t
56550-
in
56551-
result
56552-
56553-
let flatten_or_patterns p =
56554-
let rec loop p =
56555-
match p.ppat_desc with
56556-
| Ppat_or (l, r) ->
56557-
let lhs_patterns = loop l in
56558-
let rhs_patterns = loop r in
56559-
Non_empty_list.concat lhs_patterns rhs_patterns
56560-
| _ -> (p, [])
56561-
in
56562-
loop p
56563-
5656456531
let untype typed =
5656556532
let rec loop pat =
5656656533
match pat.pat_desc with
56567-
| Tpat_or (pa, pb, _) ->
56568-
mkpat (Ppat_or (loop pa, loop pb))
56569-
|> flatten_or_patterns |> join_or_patterns
56534+
| Tpat_or (p1, { pat_desc = Tpat_or (p2, p3, rI) }, rO) ->
56535+
(* Turn A | (B | C) into (A | B) | C for pretty printing without parens *)
56536+
let newInner = { pat with pat_desc = Tpat_or (p1, p2, rI) } in
56537+
let newOuter = { pat with pat_desc = Tpat_or (newInner, p3, rO) } in
56538+
loop newOuter
56539+
| Tpat_or (pa, pb, _) -> mkpat (Ppat_or (loop pa, loop pb))
5657056540
| Tpat_any | Tpat_var _ -> mkpat Ppat_any
5657156541
| Tpat_constant c -> mkpat (Ppat_constant (Untypeast.constant c))
5657256542
| Tpat_alias (p, _, _) -> loop p

lib/4.06.1/unstable/js_playground_compiler.ml

+6-36
Original file line numberDiff line numberDiff line change
@@ -56526,47 +56526,17 @@ open Types
5652656526
open Typedtree
5652756527
open Parsetree
5652856528

56529-
module Non_empty_list : sig
56530-
type 'a t = 'a * 'a list
56531-
56532-
val concat : 'a t -> 'a t -> 'a t
56533-
end = struct
56534-
type 'a t = 'a * 'a list
56535-
56536-
let concat l r =
56537-
let lhead, ltail = l in
56538-
let rhead, rtail = r in
56539-
(lhead, ltail @ (rhead :: rtail))
56540-
end
56541-
5654256529
let mkpat desc = Ast_helper.Pat.mk desc
5654356530

56544-
let join_or_patterns = function
56545-
| p, [] -> p
56546-
| init_l, init_r :: t ->
56547-
let initial_value = mkpat (Ppat_or (init_l, init_r)) in
56548-
let result =
56549-
List.fold_left (fun l r -> mkpat (Ppat_or (l, r))) initial_value t
56550-
in
56551-
result
56552-
56553-
let flatten_or_patterns p =
56554-
let rec loop p =
56555-
match p.ppat_desc with
56556-
| Ppat_or (l, r) ->
56557-
let lhs_patterns = loop l in
56558-
let rhs_patterns = loop r in
56559-
Non_empty_list.concat lhs_patterns rhs_patterns
56560-
| _ -> (p, [])
56561-
in
56562-
loop p
56563-
5656456531
let untype typed =
5656556532
let rec loop pat =
5656656533
match pat.pat_desc with
56567-
| Tpat_or (pa, pb, _) ->
56568-
mkpat (Ppat_or (loop pa, loop pb))
56569-
|> flatten_or_patterns |> join_or_patterns
56534+
| Tpat_or (p1, { pat_desc = Tpat_or (p2, p3, rI) }, rO) ->
56535+
(* Turn A | (B | C) into (A | B) | C for pretty printing without parens *)
56536+
let newInner = { pat with pat_desc = Tpat_or (p1, p2, rI) } in
56537+
let newOuter = { pat with pat_desc = Tpat_or (newInner, p3, rO) } in
56538+
loop newOuter
56539+
| Tpat_or (pa, pb, _) -> mkpat (Ppat_or (loop pa, loop pb))
5657056540
| Tpat_any | Tpat_var _ -> mkpat Ppat_any
5657156541
| Tpat_constant c -> mkpat (Ppat_constant (Untypeast.constant c))
5657256542
| Tpat_alias (p, _, _) -> loop p

lib/4.06.1/whole_compiler.ml

+6-36
Original file line numberDiff line numberDiff line change
@@ -230857,47 +230857,17 @@ open Types
230857230857
open Typedtree
230858230858
open Parsetree
230859230859

230860-
module Non_empty_list : sig
230861-
type 'a t = 'a * 'a list
230862-
230863-
val concat : 'a t -> 'a t -> 'a t
230864-
end = struct
230865-
type 'a t = 'a * 'a list
230866-
230867-
let concat l r =
230868-
let lhead, ltail = l in
230869-
let rhead, rtail = r in
230870-
(lhead, ltail @ (rhead :: rtail))
230871-
end
230872-
230873230860
let mkpat desc = Ast_helper.Pat.mk desc
230874230861

230875-
let join_or_patterns = function
230876-
| p, [] -> p
230877-
| init_l, init_r :: t ->
230878-
let initial_value = mkpat (Ppat_or (init_l, init_r)) in
230879-
let result =
230880-
List.fold_left (fun l r -> mkpat (Ppat_or (l, r))) initial_value t
230881-
in
230882-
result
230883-
230884-
let flatten_or_patterns p =
230885-
let rec loop p =
230886-
match p.ppat_desc with
230887-
| Ppat_or (l, r) ->
230888-
let lhs_patterns = loop l in
230889-
let rhs_patterns = loop r in
230890-
Non_empty_list.concat lhs_patterns rhs_patterns
230891-
| _ -> (p, [])
230892-
in
230893-
loop p
230894-
230895230862
let untype typed =
230896230863
let rec loop pat =
230897230864
match pat.pat_desc with
230898-
| Tpat_or (pa, pb, _) ->
230899-
mkpat (Ppat_or (loop pa, loop pb))
230900-
|> flatten_or_patterns |> join_or_patterns
230865+
| Tpat_or (p1, { pat_desc = Tpat_or (p2, p3, rI) }, rO) ->
230866+
(* Turn A | (B | C) into (A | B) | C for pretty printing without parens *)
230867+
let newInner = { pat with pat_desc = Tpat_or (p1, p2, rI) } in
230868+
let newOuter = { pat with pat_desc = Tpat_or (newInner, p3, rO) } in
230869+
loop newOuter
230870+
| Tpat_or (pa, pb, _) -> mkpat (Ppat_or (loop pa, loop pb))
230901230871
| Tpat_any | Tpat_var _ -> mkpat Ppat_any
230902230872
| Tpat_constant c -> mkpat (Ppat_constant (Untypeast.constant c))
230903230873
| Tpat_alias (p, _, _) -> loop p

0 commit comments

Comments
 (0)