Skip to content

Commit 6e95be3

Browse files
gabelevifacebook-github-bot
authored andcommitted
[Easy] Rename ResolveRestT to `ResolveSpreadT
Summary: `ResolveRestT` is used to resolve a list of spread elements or arguments. It is misnamed. This diff renames stuff to make it closer to what it does. Reviewed By: samwgoldman Differential Revision: D4468923 fbshipit-source-id: 6b687d7ed8da684b6b985bafc704324cf21a5695
1 parent a5b952e commit 6e95be3

9 files changed

Lines changed: 84 additions & 84 deletions

File tree

src/typing/debug_js.ml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,7 @@ and _json_of_use_t_impl json_cx t = Hh_json.(
691691
("refined_t", _json_of_t_impl json_cx t)
692692
]
693693
]
694-
| ResolveRestT (_, {
694+
| ResolveSpreadT (_, {
695695
rrt_id;
696696
rrt_resolved;
697697
rrt_unresolved;
@@ -701,11 +701,11 @@ and _json_of_use_t_impl json_cx t = Hh_json.(
701701
"id", JSON_Number (string_of_int rrt_id);
702702
"resolved", JSON_Array (List.map (fun param ->
703703
let kind, t = match param with
704-
| ResolvedParam t -> "ResolvedParam", t
705-
| ResolvedRestParam (at) ->
706-
"ResolvedRestParam", ArrT (locationless_reason (RCustom "array"), at)
707-
| ResolvedAnyRestParam ->
708-
"ResolvedAnyRestParam", AnyT (locationless_reason (RAny))
704+
| ResolvedArg t -> "ResolvedArg", t
705+
| ResolvedSpreadArg (at) ->
706+
"ResolvedSpreadArg", ArrT (locationless_reason (RCustom "array"), at)
707+
| ResolvedAnySpreadArg ->
708+
"ResolvedAnySpreadArg", AnyT (locationless_reason (RAny))
709709
in
710710
JSON_Object [
711711
"kind", JSON_String kind;
@@ -714,8 +714,8 @@ and _json_of_use_t_impl json_cx t = Hh_json.(
714714
) rrt_resolved);
715715
"unresolved", JSON_Array (List.map (fun param ->
716716
let kind, t = match param with
717-
| UnresolvedParam t -> "UnresolvedParam", t
718-
| UnresolvedRestParam t -> "UnresolvedRestParam", t in
717+
| UnresolvedArg t -> "UnresolvedArg", t
718+
| UnresolvedSpreadArg t -> "UnresolvedSpreadArg", t in
719719
JSON_Object [
720720
"kind", JSON_String kind;
721721
"type", _json_of_t_impl json_cx t;
@@ -1570,7 +1570,7 @@ and dump_use_t_ (depth, tvars) cx t =
15701570
| RefineT _ -> p t
15711571
| ReposLowerT (_, arg) -> p ~extra:(use_kid arg) t
15721572
| ReposUseT (_, _, arg) -> p ~extra:(kid arg) t
1573-
| ResolveRestT (_, {rrt_resolve_to; rrt_tout; _;}) ->
1573+
| ResolveSpreadT (_, {rrt_resolve_to; rrt_tout; _;}) ->
15741574
p ~extra:(spf "%s, %s" (match rrt_resolve_to with
15751575
| ResolveSpreadsToTuple -> "ResolveSpreadsToTuple"
15761576
| ResolveSpreadsToArrayLiteral -> "ResolveSpreadsToArrayLiteral"

src/typing/flow_error.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ let rec error_of_msg ~trace_reasons ~op ~source_file =
232232
| ObjectMapi -> "Expected object instead of")
233233
| ReactCreateElementT _ -> "Expected React component instead of"
234234
| CallLatentPredT _ -> "Expected predicated function instead of"
235-
| ResolveRestT _ ->
235+
| ResolveSpreadT _ ->
236236
"Expected rest element to be an array or tuple instead of"
237237
| TypeAppVarianceCheckT _ -> "Expected polymorphic type instead of"
238238
(* unreachable or unclassified use-types. until we have a mechanical way

src/typing/flow_js.ml

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1497,25 +1497,25 @@ let rec __flow cx ((l: Type.t), (u: Type.use_t)) trace =
14971497
prep_try_intersection cx trace reason unresolved (resolved @ [t]) u r rep
14981498

14991499
(*************************)
1500-
(* Resolving rest params *)
1500+
(* Resolving spread args *)
15011501
(*************************)
15021502

15031503
| AnyT _,
1504-
ResolveRestT (reason_op, {
1504+
ResolveSpreadT (reason_op, {
15051505
rrt_id = _;
15061506
rrt_resolved;
15071507
rrt_unresolved;
15081508
rrt_resolve_to;
15091509
rrt_tout;
15101510
}) ->
15111511

1512-
let rrt_resolved = ResolvedAnyRestParam::rrt_resolved in
1512+
let rrt_resolved = ResolvedAnySpreadArg::rrt_resolved in
15131513
resolve_spread_list_rec
15141514
cx ~trace ~reason_op
15151515
(rrt_resolved, rrt_unresolved) rrt_resolve_to rrt_tout
15161516

15171517
| ArrT (_, arrtype),
1518-
ResolveRestT (reason_op, {
1518+
ResolveSpreadT (reason_op, {
15191519
rrt_id;
15201520
rrt_resolved;
15211521
rrt_unresolved;
@@ -1539,22 +1539,22 @@ let rec __flow cx ((l: Type.t), (u: Type.use_t)) trace =
15391539
* for (let x = 1; x < 3; x++) { foo = [...foo, x]; }
15401540
*
15411541
* where every time you spread foo, you flow another type into foo. So
1542-
* each time `l ~> ResolveRestT` is processed, it might produce a new
1543-
* `l ~> ResolveRestT` with a new `l`.
1542+
* each time `l ~> ResolveSpreadT` is processed, it might produce a new
1543+
* `l ~> ResolveSpreadT` with a new `l`.
15441544
*
15451545
* Here is how we avoid this:
15461546
*
1547-
* 1. We use ConstFoldExpansion to detect when we see a ResolveRestT
1547+
* 1. We use ConstFoldExpansion to detect when we see a ResolveSpreadT
15481548
* upper bound multiple times
1549-
* 2. When a ResolveRestT upper bound multiple times, we change it into
1550-
* a ResolveRestT upper bound that resolves to a more general type.
1549+
* 2. When a ResolveSpreadT upper bound multiple times, we change it into
1550+
* a ResolveSpreadT upper bound that resolves to a more general type.
15511551
* This should prevent more distinct lower bounds from flowing in
15521552
* 3. rec_flow caches (l,u) pairs.
15531553
*)
15541554
if ConstFoldExpansion.push_unless_loop id (reason_of_t elemt)
15551555
then begin
15561556
(* We haven't seen this ArrT yet, so no need to worry about loops *)
1557-
let rrt_resolved = ResolvedRestParam(arrtype)::rrt_resolved in
1557+
let rrt_resolved = ResolvedSpreadArg(arrtype)::rrt_resolved in
15581558
resolve_spread_list_rec
15591559
cx ~trace ~reason_op (rrt_resolved, rrt_unresolved) rrt_resolve_to rrt_tout;
15601560
ConstFoldExpansion.pop id
@@ -1568,7 +1568,7 @@ let rec __flow cx ((l: Type.t), (u: Type.use_t)) trace =
15681568
* an array. The rrt_id is the same so that we avoid creating many
15691569
* distinct upper bounds, which would sabotage the (l,u) pair
15701570
* caching that rec_flow does. *)
1571-
rec_flow cx trace (l, ResolveRestT (reason_op, {
1571+
rec_flow cx trace (l, ResolveSpreadT (reason_op, {
15721572
rrt_id;
15731573
rrt_resolved;
15741574
rrt_unresolved;
@@ -8794,16 +8794,16 @@ and resolve_spread_list_rec
87948794
| resolved, [] ->
87958795
finish_resolve_spread_list
87968796
cx ?trace ~reason_op (List.rev resolved) resolve_to tout
8797-
| resolved, UnresolvedParam(next)::unresolved ->
8797+
| resolved, UnresolvedArg(next)::unresolved ->
87988798
resolve_spread_list_rec
87998799
cx
88008800
?trace
88018801
~reason_op
8802-
(ResolvedParam(next)::resolved, unresolved)
8802+
(ResolvedArg(next)::resolved, unresolved)
88038803
resolve_to
88048804
tout
8805-
| resolved, UnresolvedRestParam(next)::unresolved ->
8806-
flow_opt cx ?trace (next, ResolveRestT (reason_op, {
8805+
| resolved, UnresolvedSpreadArg(next)::unresolved ->
8806+
flow_opt cx ?trace (next, ResolveSpreadT (reason_op, {
88078807
rrt_id = mk_id();
88088808
rrt_resolved = resolved;
88098809
rrt_unresolved = unresolved;
@@ -8815,37 +8815,37 @@ and resolve_spread_list_rec
88158815
* to resolve to. *)
88168816
and finish_resolve_spread_list =
88178817
(* Turn tuple rest params into single params *)
8818-
let flatten_rest_params list =
8818+
let flatten_spread_args list =
88198819
list
88208820
|> List.fold_left (fun acc param -> match param with
8821-
| ResolvedRestParam (arrtype) ->
8821+
| ResolvedSpreadArg (arrtype) ->
88228822
begin match arrtype with
88238823
| ArrayAT (_, Some tuple_types)
88248824
| TupleAT (_, tuple_types) ->
88258825
List.fold_left
8826-
(fun acc elem -> ResolvedParam(elem)::acc)
8826+
(fun acc elem -> ResolvedArg(elem)::acc)
88278827
acc
88288828
tuple_types
88298829
| ArrayAT (_, None)
88308830
| ROArrayAT (_) -> param::acc
88318831
end
8832-
| ResolvedParam _ -> param::acc
8833-
| ResolvedAnyRestParam -> failwith "Should not be hit"
8832+
| ResolvedArg _ -> param::acc
8833+
| ResolvedAnySpreadArg -> failwith "Should not be hit"
88348834
) []
88358835
|> List.rev
88368836

88378837
in
88388838

8839-
let rest_resolved_to_any = List.exists (function
8840-
| ResolvedAnyRestParam -> true
8841-
| ResolvedParam _ | ResolvedRestParam _ -> false)
8839+
let spread_resolved_to_any = List.exists (function
8840+
| ResolvedAnySpreadArg -> true
8841+
| ResolvedArg _ | ResolvedSpreadArg _ -> false)
88428842

88438843
in
88448844

88458845
let finish_array cx ?trace ~reason_op ~resolve_to resolved tout =
88468846
(* Did `any` flow to one of the rest parameters? If so, we need to resolve
88478847
* to a type that is both a subtype and supertype of the desired type. *)
8848-
let result = if rest_resolved_to_any resolved
8848+
let result = if spread_resolved_to_any resolved
88498849
then match resolve_to with
88508850
(* Array<any> is a good enough any type for arrays *)
88518851
| `Array -> ArrT (reason_op, ArrayAT (AnyT.why reason_op, None))
@@ -8858,7 +8858,7 @@ and finish_resolve_spread_list =
88588858
| `Tuple -> AnyT.why reason_op
88598859
else begin
88608860
(* Spreads that resolve to tuples are flattened *)
8861-
let elems = flatten_rest_params resolved in
8861+
let elems = flatten_spread_args resolved in
88628862

88638863
let tuple_types = match resolve_to with
88648864
| `Literal
@@ -8868,9 +8868,9 @@ and finish_resolve_spread_list =
88688868
|> List.fold_left (fun acc elem ->
88698869
match (acc, elem) with
88708870
| None, _ -> None
8871-
| _, ResolvedRestParam _ -> None
8872-
| Some tuple_types, ResolvedParam t -> Some (t::tuple_types)
8873-
| _, ResolvedAnyRestParam -> failwith "Should not be hit"
8871+
| _, ResolvedSpreadArg _ -> None
8872+
| Some tuple_types, ResolvedArg t -> Some (t::tuple_types)
8873+
| _, ResolvedAnySpreadArg -> failwith "Should not be hit"
88748874
) (Some [])
88758875
|> Option.map ~f:List.rev
88768876
| `Array -> None in
@@ -8879,12 +8879,12 @@ and finish_resolve_spread_list =
88798879
* every element in the array *)
88808880
let tset = List.fold_left (fun tset elem ->
88818881
let elemt = match elem with
8882-
| ResolvedRestParam (
8882+
| ResolvedSpreadArg (
88838883
(ArrayAT (elemt,_) | TupleAT (elemt,_) | ROArrayAT elemt )
88848884
) ->
88858885
elemt
8886-
| ResolvedParam elemt -> elemt
8887-
| ResolvedAnyRestParam -> failwith "Should not be hit"
8886+
| ResolvedArg elemt -> elemt
8887+
| ResolvedAnySpreadArg -> failwith "Should not be hit"
88888888
in
88898889

88908890
TypeExSet.add elemt tset

src/typing/flow_js.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ val mk_tvar_derivable_where: Context.t -> reason -> (Type.t -> unit) -> Type.t
4242

4343
val get_builtin_typeapp: Context.t -> ?trace:Trace.t -> reason -> string -> Type.t list -> Type.t
4444

45-
val resolve_spread_list: Context.t -> reason_op:Reason.t -> Type.unresolved_param list -> Type.rest_resolve -> Type.t -> unit
45+
val resolve_spread_list: Context.t -> reason_op:Reason.t -> Type.unresolved_param list -> Type.spread_resolve -> Type.t -> unit
4646

4747
(* polymorphism *)
4848

src/typing/gc_js.ml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -289,24 +289,24 @@ and gc_use cx state = function
289289
gc cx state t2
290290
) targs
291291

292-
| ResolveRestT (_, {
292+
| ResolveSpreadT (_, {
293293
rrt_id=_;
294294
rrt_resolved;
295295
rrt_unresolved;
296296
rrt_resolve_to;
297297
rrt_tout;
298298
}) ->
299299
List.iter (function
300-
| ResolvedParam t -> gc cx state t
301-
| ResolvedRestParam (arraytype) ->
300+
| ResolvedArg t -> gc cx state t
301+
| ResolvedSpreadArg (arraytype) ->
302302
gc_arraytype cx state arraytype
303-
| ResolvedAnyRestParam -> ()
303+
| ResolvedAnySpreadArg -> ()
304304
) rrt_resolved;
305305
List.iter (function
306-
| UnresolvedParam t
307-
| UnresolvedRestParam t -> gc cx state t
306+
| UnresolvedArg t
307+
| UnresolvedSpreadArg t -> gc cx state t
308308
) rrt_unresolved;
309-
gc_rest_resolve cx state rrt_resolve_to;
309+
gc_spread_resolve cx state rrt_resolve_to;
310310
gc cx state rrt_tout
311311

312312

@@ -429,7 +429,7 @@ and gc_elem_action cx state = function
429429
| ReadElem t | WriteElem t -> gc cx state t
430430
| CallElem (_, fct) -> gc_funcalltype cx state fct
431431

432-
and gc_rest_resolve _cx _state = function
432+
and gc_spread_resolve _cx _state = function
433433
| ResolveSpreadsToArray
434434
| ResolveSpreadsToArrayLiteral
435435
| ResolveSpreadsToTuple -> ()

src/typing/graph.ml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -332,24 +332,24 @@ and parts_of_use_t cx = function
332332
| RefineT (_, _, t) -> ["t", Def t]
333333
| ReposLowerT (_, u) -> ["upper", Use u]
334334
| ReposUseT (_, _, l) -> ["lower", Def l]
335-
| ResolveRestT (_, {
335+
| ResolveSpreadT (_, {
336336
rrt_id = _;
337337
rrt_resolved;
338338
rrt_unresolved;
339339
rrt_resolve_to;
340340
rrt_tout;
341341
}) ->
342342
let parts_of_resolved = List.mapi (fun i -> function
343-
| ResolvedParam t -> [spf "resolved param #%d" i, Def t]
344-
| ResolvedRestParam (arrtype) -> parts_of_arrtype arrtype
345-
| ResolvedAnyRestParam -> []
343+
| ResolvedArg t -> [spf "resolved param #%d" i, Def t]
344+
| ResolvedSpreadArg (arrtype) -> parts_of_arrtype arrtype
345+
| ResolvedAnySpreadArg -> []
346346
) rrt_resolved
347347
|> List.flatten in
348348
let parts_of_unresolved = List.mapi (fun i -> function
349-
| UnresolvedParam t -> spf "unresolved param #%d" i, Def t
350-
| UnresolvedRestParam t -> spf "unresolved rest param #%d" i, Def t
349+
| UnresolvedArg t -> spf "unresolved param #%d" i, Def t
350+
| UnresolvedSpreadArg t -> spf "unresolved rest param #%d" i, Def t
351351
) rrt_unresolved in
352-
let parts_of_resolve_to = parts_of_rest_resolve rrt_resolve_to in
352+
let parts_of_resolve_to = parts_of_spread_resolve rrt_resolve_to in
353353
parts_of_resolved @ parts_of_unresolved @ parts_of_resolve_to @ [
354354
"out", Def rrt_tout
355355
]
@@ -373,7 +373,7 @@ and parts_of_arrtype = function
373373
| TupleAT (elemt, tuple_types) ->
374374
("elem", Def elemt)::(list_parts tuple_types)
375375

376-
and parts_of_rest_resolve = function
376+
and parts_of_spread_resolve = function
377377
| ResolveSpreadsToTuple
378378
| ResolveSpreadsToArrayLiteral
379379
| ResolveSpreadsToArray -> []

src/typing/statement.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2389,10 +2389,10 @@ and expression_or_spread cx = Ast.Expression.(function
23892389

23902390
and expression_or_spread_list cx undef_loc = Ast.Expression.(
23912391
List.map (function
2392-
| Some (Expression e) -> UnresolvedParam (expression cx e)
2393-
| None -> UnresolvedParam (EmptyT.at undef_loc)
2392+
| Some (Expression e) -> UnresolvedArg (expression cx e)
2393+
| None -> UnresolvedArg (EmptyT.at undef_loc)
23942394
| Some (Spread (_, { SpreadElement.argument })) ->
2395-
UnresolvedRestParam (expression cx argument)
2395+
UnresolvedSpreadArg (expression cx argument)
23962396
)
23972397
)
23982398

0 commit comments

Comments
 (0)