Skip to content

Commit 906b949

Browse files
authored
Merge pull request #3964 from mtzguido/lid_range
Syntax: no need to add a range to `var`, a lident already has one
2 parents ebb59ca + f3f3a8a commit 906b949

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+214
-217
lines changed

src/basic/FStarC.MachineInts.fst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,8 @@ instance nbe_machint (k : machint_kind) : Tot (NBE.embedding (machint k)) =
158158
in
159159
match a.nbe_t with
160160
| FV (fv1, [], [(a, _)])
161-
when Ident.lid_equals (fv1.fv_name.v) (int_to_t_lid_for k)
162-
|| Ident.lid_equals (fv1.fv_name.v) (__int_to_t_lid_for k) ->
161+
when Ident.lid_equals (fv1.fv_name) (int_to_t_lid_for k)
162+
|| Ident.lid_equals (fv1.fv_name) (__int_to_t_lid_for k) ->
163163
let! a : int = unembed e_int cbs a in
164164
Some (Mk a m)
165165
| _ -> None

src/extraction/FStarC.Extraction.ML.Modul.fst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ let extract_typ_abbrev env quals attrs lb
360360
//eta expansion is important; see issue #490, including unrefining and unascribing
361361
let lbdef = FStarC.TypeChecker.Normalize.eta_expand_with_type tcenv lbdef lbtyp in
362362
let fv = Inr?.v lb.lbname in
363-
let lid = fv.fv_name.v in
363+
let lid = fv.fv_name in
364364
let def = SS.compress lbdef |> U.unmeta |> U.un_uinst in
365365
let def =
366366
match def.n with
@@ -426,7 +426,7 @@ let extract_let_rec_type env quals attrs lb
426426
let bs, _ = U.arrow_formals lbtyp in
427427
let env1, ml_bs = binders_as_mlty_binders env bs in
428428
let fv = Inr?.v lb.lbname in
429-
let lid = fv.fv_name.v in
429+
let lid = fv.fv_name in
430430
let body = MLTY_Top in
431431
let metadata = extract_metadata attrs @ List.choose flag_of_qual quals in
432432
let assumed = false in
@@ -565,7 +565,7 @@ let extract_reifiable_effect g ed
565565
match (SS.compress tm).n with
566566
| Tm_uinst (tm, _) -> extract_fv tm
567567
| Tm_fvar fv ->
568-
let mlp = mlpath_of_lident g fv.fv_name.v in
568+
let mlp = mlpath_of_lident g fv.fv_name in
569569
let ({exp_b_tscheme=tysc}) = UEnv.lookup_fv tm.pos g fv in
570570
with_ty MLTY_Top <| MLE_Name mlp, tysc
571571
| _ -> failwith (Format.fmt2 "(%s) Not an fv: %s"
@@ -1254,7 +1254,7 @@ and extract_sig_let (g:uenv) (se:sigelt) : uenv & list mlmodule1 =
12541254
then env, ml_lbs
12551255
else
12561256
// debug g (fun () -> printfn "Translating source lb %s at type %s to %A" (show lbname) (show t) (must (mllb.mllb_tysc)));
1257-
let lb_lid = (Inr?.v lbname).fv_name.v in
1257+
let lb_lid = (Inr?.v lbname).fv_name in
12581258
let flags'' =
12591259
match (SS.compress t).n with
12601260
| Tm_arrow {comp={ n = Comp { effect_name = e }}}

src/extraction/FStarC.Extraction.ML.RegEmb.fst

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -307,13 +307,13 @@ let rec embedding_for
307307
all of them, using a name prefix __knot_e, and later define the e_X at the
308308
top-level by unthunking.
309309
*)
310-
| Tm_fvar fv when List.existsb (Ident.lid_equals fv.fv_name.v) mutuals ->
311-
let head = mk <| MLE_Var ("__knot_e_" ^ Ident.string_of_id (Ident.ident_of_lid fv.fv_name.v)) in
310+
| Tm_fvar fv when List.existsb (Ident.lid_equals fv.fv_name) mutuals ->
311+
let head = mk <| MLE_Var ("__knot_e_" ^ Ident.string_of_id (Ident.ident_of_lid fv.fv_name)) in
312312
mk (MLE_App (head, [ml_unit]))
313313

314314
(* An fv for which we have an embedding already registered. *)
315-
| Tm_fvar fv when Some? (find_fv_embedding' fv.fv_name.v) ->
316-
let emb_data = find_fv_embedding fv.fv_name.v in
315+
| Tm_fvar fv when Some? (find_fv_embedding' fv.fv_name) ->
316+
let emb_data = find_fv_embedding fv.fv_name in
317317
begin match k with
318318
| SyntaxTerm -> ml_name emb_data.syn_emb
319319
| NBETerm ->
@@ -332,7 +332,7 @@ let rec embedding_for
332332
| Tm_fvar fv when Env.fv_has_attr tcenv fv PC.plugin_attr ->
333333
begin match k with
334334
| SyntaxTerm ->
335-
let lid = fv.fv_name.v in
335+
let lid = fv.fv_name in
336336
as_name (List.map Ident.string_of_id (Ident.ns_of_lid lid),
337337
"e_" ^ Ident.string_of_id (Ident.ident_of_lid lid))
338338
| NBETerm ->
@@ -350,7 +350,7 @@ type wrapped_term = mlexpr & mlexpr & int & bool
350350

351351
let interpret_plugin_as_term_fun (env:UEnv.uenv) (fv:fv) (t:typ) (arity_opt:option int) (ml_fv:mlexpr')
352352
: option wrapped_term =
353-
let fv_lid = fv.fv_name.v in
353+
let fv_lid = fv.fv_name in
354354
let tcenv = UEnv.tcenv_of_uenv env in
355355
let t = N.normalize [
356356
Env.EraseUniverses;
@@ -513,7 +513,7 @@ let interpret_plugin_as_term_fun (env:UEnv.uenv) (fv:fv) (t:typ) (arity_opt:opti
513513
| [] ->
514514
let arg_unembeddings = List.rev accum_embeddings in
515515
let res_embedding = embedding_for tcenv [] loc tvar_context result_typ in
516-
let fv_lid = fv.fv_name.v in
516+
let fv_lid = fv.fv_name in
517517
if U.is_pure_comp c
518518
then begin
519519
let cb = str_to_name "cb" in
@@ -572,7 +572,7 @@ let interpret_plugin_as_term_fun (env:UEnv.uenv) (fv:fv) (t:typ) (arity_opt:opti
572572
Some (w, w', a, b)
573573
with
574574
| NoEmbedding msg ->
575-
not_implemented_warning (Ident.range_of_lid fv.fv_name.v)
575+
not_implemented_warning (Ident.range_of_lid fv.fv_name)
576576
(show fv)
577577
msg;
578578
None
@@ -689,7 +689,7 @@ let __do_handle_plugin (g: uenv) (arity_opt: option int) (se: sigelt) : list mlm
689689
| Sig_let {lbs} ->
690690
let mk_registration lb : list mlmodule1 =
691691
let fv = Inr?.v lb.lbname in
692-
let fv_lid = fv.fv_name.v in
692+
let fv_lid = fv.fv_name in
693693
let fv_t = lb.lbtyp in
694694
let ml_name_str = MLE_Const (MLC_String (Ident.string_of_lid fv_lid)) in
695695
match interpret_plugin_as_term_fun g fv fv_t arity_opt ml_name_str with

src/extraction/FStarC.Extraction.ML.Term.fst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ let rec is_arity_aux tcenv t =
180180
FStarC.TypeChecker.Env.lookup_definition
181181
[Env.Unfold delta_constant]
182182
tcenv
183-
fv.fv_name.v
183+
fv.fv_name
184184
in
185185
begin
186186
match topt with
@@ -732,7 +732,7 @@ let rec translate_term_to_mlty' (g:uenv) (t0:term) : mlty =
732732
translate_term_to_mlty g a
733733
else (
734734
let formals, _ =
735-
let (_, fvty), _ = FStarC.TypeChecker.Env.lookup_lid (tcenv_of_uenv g) fv.fv_name.v in
735+
let (_, fvty), _ = FStarC.TypeChecker.Env.lookup_lid (tcenv_of_uenv g) fv.fv_name in
736736
let fvty = N.normalize [Env.UnfoldUntil delta_constant; Env.ForExtraction] (tcenv_of_uenv g) fvty in
737737
U.arrow_formals fvty in
738738
let mlargs = List.map (arg_as_mlty g) args in
@@ -742,7 +742,7 @@ let rec translate_term_to_mlty' (g:uenv) (t0:term) : mlty =
742742
then let _, rest = BU.first_N n_args formals in
743743
mlargs @ (List.map (fun _ -> MLTY_Erased) rest)
744744
else mlargs in
745-
let nm = UEnv.mlpath_of_lident g fv.fv_name.v in
745+
let nm = UEnv.mlpath_of_lident g fv.fv_name in
746746
MLTY_Named (mlargs, nm)
747747
)
748748
)
@@ -1016,7 +1016,7 @@ let rec extract_one_pat (imp : bool)
10161016
| Some ({exp_b_expr={expr=MLE_Name n}; exp_b_tscheme=ttys}) -> n, ttys
10171017
| Some _ -> failwith "Expected a constructor"
10181018
| None ->
1019-
Errors.raise_error f.fv_name.p Errors.Error_ErasedCtor
1019+
Errors.raise_error f Errors.Error_ErasedCtor
10201020
(Format.fmt1 "Cannot extract this pattern, the %s constructor was erased" (show f))
10211021
in
10221022
// The prefix of the pattern are dot patterns matching the type parameters

src/extraction/FStarC.Extraction.ML.UEnv.fst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,9 @@ let try_lookup_fv (r:Range.t) (g:uenv) (fv:fv) : option exp_binding =
181181
(* Log an error/warning and return None *)
182182
let open FStarC.Errors.Msg in
183183
Errors.log_issue r Errors.Error_CallToErased [
184-
text <| Format.fmt1 "Will not extract reference to variable `%s` since it has the `noextract` qualifier." (string_of_lid fv.fv_name.v);
184+
text <| Format.fmt1 "Will not extract reference to variable `%s` since it has the `noextract` qualifier." (string_of_lid fv.fv_name);
185185
text <| Format.fmt2 "Either remove the noextract qualifier from %s (defined in %s) or add it to this definition."
186-
(string_of_lid fv.fv_name.v) (show pos);
186+
(string_of_lid fv.fv_name) (show pos);
187187
text <| Format.fmt1 "This error can be ignored with `--warn_error -%s`." (show Errors.call_to_erased_errno)];
188188
None
189189
| NotFound ->
@@ -195,8 +195,8 @@ let lookup_fv (r:Range.t) (g:uenv) (fv:fv) : exp_binding =
195195
| Found t -> t
196196
| res ->
197197
failwith (Format.fmt3 "Internal error: (%s) free variable %s not found during extraction (res=%s)\n"
198-
(Range.string_of_range fv.fv_name.p)
199-
(show fv.fv_name.v)
198+
(Range.string_of_range (pos fv))
199+
(show fv.fv_name)
200200
(show res))
201201

202202
(** An F* local variable (bv) can be mapped either to
@@ -546,7 +546,7 @@ let extend_fv (g:uenv) (x:fv) (t_x:mltyscheme) (add_unit:bool)
546546
let ml_ty = match t_x with
547547
| ([], t) -> t
548548
| _ -> MLTY_Top in
549-
let mlpath, g = new_mlpath_of_lident g x.fv_name.v in
549+
let mlpath, g = new_mlpath_of_lident g x.fv_name in
550550
let mlsymbol = snd mlpath in
551551
let mly = MLE_Name mlpath in
552552
let mly = if add_unit then with_ty MLTY_Top <| MLE_App(with_ty MLTY_Top mly, [ml_unit]) else with_ty ml_ty mly in
@@ -575,7 +575,7 @@ let extend_lb (g:uenv) (l:lbname) (t:typ) (t_x:mltyscheme) (add_unit:bool)
575575
(** Extend with an abbreviation [fv] for the type scheme [ts] *)
576576
let extend_tydef (g:uenv) (fv:fv) (ts:mltyscheme) (meta:FStarC.Extraction.ML.Syntax.metadata)
577577
: tydef & mlpath & uenv =
578-
let name, g = new_mlpath_of_lident g fv.fv_name.v in
578+
let name, g = new_mlpath_of_lident g fv.fv_name in
579579
let tydef = {
580580
tydef_fv = fv;
581581
tydef_mlmodule_name=fst name;
@@ -592,7 +592,7 @@ let extend_with_tydef_declaration u l =
592592
593593
(** Extend with [fv], the identifer for an F* inductive type *)
594594
let extend_type_name (g:uenv) (fv:fv) : mlpath & uenv =
595-
let name, g = new_mlpath_of_lident g fv.fv_name.v in
595+
let name, g = new_mlpath_of_lident g fv.fv_name in
596596
name,
597597
{g with type_names=(fv,name)::g.type_names}
598598

src/fstar/FStarC.CheckedFiles.fst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ let dbg = Debug.get_toggle "CheckedFiles"
3434
* detect when loading the cache that the version number is same
3535
* It needs to be kept in sync with Prims.fst
3636
*)
37-
let cache_version_number = 74
37+
let cache_version_number = 75
3838

3939
(*
4040
* Abbreviation for what we store in the checked files (stages as described below)

src/reflection/FStarC.Reflection.V1.NBEEmbeddings.fst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ let mkFV fv us ts = mkFV fv (List.rev us) (List.rev ts)
5858
let mkConstruct fv us ts = mkConstruct fv (List.rev us) (List.rev ts)
5959
(* ^ We still need to match on them in reverse order though, so this is pretty dumb *)
6060

61-
let fv_as_emb_typ fv = S.ET_app (FStarC.Ident.string_of_lid fv.fv_name.v, [])
61+
let fv_as_emb_typ fv = S.ET_app (FStarC.Ident.string_of_lid fv.fv_name, [])
6262
let mk_emb' x y fv = mk_emb x y (fun () -> mkFV fv [] []) (fun () -> fv_as_emb_typ fv)
6363

6464
let mk_lazy cb obj ty kind =

src/reflection/FStarC.Reflection.V2.NBEEmbeddings.fst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ let mkFV fv us ts = mkFV fv (List.rev us) (List.rev ts)
5454
let mkConstruct fv us ts = mkConstruct fv (List.rev us) (List.rev ts)
5555
(* ^ We still need to match on them in reverse order though, so this is pretty dumb *)
5656

57-
let fv_as_emb_typ fv = S.ET_app (FStarC.Ident.string_of_lid fv.fv_name.v, [])
57+
let fv_as_emb_typ fv = S.ET_app (FStarC.Ident.string_of_lid fv.fv_name, [])
5858
let mk_emb' x y fv = mk_emb x y (fun () -> mkFV fv [] []) (fun () -> fv_as_emb_typ fv)
5959

6060
let mk_lazy cb obj ty kind =

src/smtencoding/FStarC.SMTEncoding.Encode.fst

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -380,13 +380,13 @@ let primitive_type_axioms : env -> lident -> string -> term -> list decl =
380380
| Some(_, f) -> f env s tt)
381381

382382
let encode_smt_lemma env fv t =
383-
let lid = fv.fv_name.v in
383+
let lid = fv.fv_name in
384384
let form, decls = encode_function_type_as_formula t env in
385385
decls@([Util.mkAssume(form, Some ("Lemma: " ^ (string_of_lid lid)), ("lemma_"^(string_of_lid lid)))]
386386
|> mk_decls_trivial)
387387

388388
let encode_free_var uninterpreted env fv tt t_norm quals :decls_t & env_t =
389-
let lid = fv.fv_name.v in
389+
let lid = fv.fv_name in
390390
if not <| (U.is_pure_or_ghost_function t_norm || is_smt_reifiable_function env.tcenv t_norm)
391391
|| U.is_lemma t_norm
392392
|| uninterpreted
@@ -560,11 +560,11 @@ let encode_free_var uninterpreted env fv tt t_norm quals :decls_t & env_t =
560560

561561

562562
let declare_top_level_let env x t t_norm : fvar_binding & decls_t & env_t =
563-
match lookup_fvar_binding env x.fv_name.v with
563+
match lookup_fvar_binding env x.fv_name with
564564
(* Need to introduce a new name decl *)
565565
| None ->
566566
let decls, env = encode_free_var false env x t t_norm [] in
567-
let fvb = lookup_lid env x.fv_name.v in
567+
let fvb = lookup_lid env x.fv_name in
568568
fvb, decls, env
569569

570570
(* already declared, only need an equation *)
@@ -1267,7 +1267,7 @@ let encode_datacon (env:env_t) (se:sigelt)
12671267
data_arg_params
12681268
arg_params
12691269
in
1270-
let ty = maybe_curry_fvb fv.fv_name.p encoded_head_fvb arg_vars in
1270+
let ty = maybe_curry_fvb (pos fv.fv_name) encoded_head_fvb arg_vars in
12711271
let xvars = List.map mkFreeV vars in
12721272
let dapp = mkApp(ddconstrsym, xvars) in //arity ok; |xvars| = |formals| = arity
12731273
let ty_pred = mk_HasTypeWithFuel (Some s_fuel_tm) dapp ty in
@@ -1632,7 +1632,7 @@ and encode_sigelt' (env:env_t) (se:sigelt) : (decls_t & env_t) =
16321632
|| se.sigattrs |> BU.for_some is_opaque_to_smt ->
16331633
let attrs = se.sigattrs in
16341634
let env, decls = BU.fold_map (fun env lb ->
1635-
let lid = (Inr?.v lb.lbname).fv_name.v in
1635+
let lid = (Inr?.v lb.lbname).fv_name in
16361636
if None? <| Env.try_lookup_val_decl env.tcenv lid
16371637
then let val_decl = { se with sigel = Sig_declare_typ {lid; us=lb.lbunivs; t=lb.lbtyp};
16381638
sigquals = S.Irreducible :: se.sigquals } in
@@ -1643,12 +1643,12 @@ and encode_sigelt' (env:env_t) (se:sigelt) : (decls_t & env_t) =
16431643

16441644
(* Special encoding for b2t *)
16451645
| Sig_let {lbs=(_, [{lbname=Inr b2t}])} when S.fv_eq_lid b2t Const.b2t_lid ->
1646-
let tname, ttok, env = new_term_constant_and_tok_from_lid env b2t.fv_name.v 1 in
1646+
let tname, ttok, env = new_term_constant_and_tok_from_lid env b2t.fv_name 1 in
16471647
let xx = mk_fv ("x", Term_sort) in
16481648
let x = mkFreeV xx in
16491649
let b2t_x = mkApp("Prims.b2t", [x]) in
16501650
let valid_b2t_x = mkApp("Valid", [b2t_x]) in //NS: Explicitly avoid the Vaild(b2t t) inlining
1651-
let bool_ty = lookup_free_var env (withsort Const.bool_lid) in
1651+
let bool_ty = lookup_free_var env Const.bool_lid in
16521652
let decls = [Term.DeclFun(tname, [Term_sort], Term_sort, None);
16531653
Util.mkAssume(mkForall (S.range_of_fv b2t) ([[b2t_x]], [xx],
16541654
mkEq(valid_b2t_x, mkApp(snd boxBoolFun, [x]))),
@@ -1682,7 +1682,7 @@ and encode_sigelt' (env:env_t) (se:sigelt) : (decls_t & env_t) =
16821682
//Projectors are also are encoded directly via (our encoding of) theory of datatypes
16831683
//Except in some cases where the front-end does not emit a declare_typ for some projector, because it doesn't know how to compute it
16841684
let fv = Inr?.v lb.lbname in
1685-
let l = fv.fv_name.v in
1685+
let l = fv.fv_name in
16861686
begin match try_lookup_free_var env l with
16871687
| Some _ ->
16881688
[], env //already encoded

src/smtencoding/FStarC.SMTEncoding.EncodeTerm.fst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ let head_normal env t =
8888
| Tm_abs _
8989
| Tm_constant _ -> true
9090
| Tm_fvar fv
91-
| Tm_app {hd={n=Tm_fvar fv}} -> Env.lookup_definition [Env.Eager_unfolding_only] env.tcenv fv.fv_name.v |> None?
91+
| Tm_app {hd={n=Tm_fvar fv}} -> Env.lookup_definition [Env.Eager_unfolding_only] env.tcenv fv.fv_name |> None?
9292
| _ -> false
9393

9494
let head_redex env t =
@@ -99,7 +99,7 @@ let head_redex env t =
9999
|| List.existsb (function TOTAL -> true | _ -> false) rc.residual_flags
100100

101101
| Tm_fvar fv ->
102-
Env.lookup_definition [Env.Eager_unfolding_only] env.tcenv fv.fv_name.v |> Some?
102+
Env.lookup_definition [Env.Eager_unfolding_only] env.tcenv fv.fv_name |> Some?
103103

104104
| _ -> false
105105

@@ -1155,7 +1155,7 @@ and encode_term (t:typ) (env:env_t) : (term (* encoding of t, expects t
11551155
| Tm_uinst({n=Tm_name x}, _)
11561156
| Tm_name x -> Some x.sort
11571157
| Tm_uinst({n=Tm_fvar fv}, _)
1158-
| Tm_fvar fv -> Some (Env.lookup_lid env.tcenv fv.fv_name.v |> fst |> snd)
1158+
| Tm_fvar fv -> Some (Env.lookup_lid env.tcenv fv.fv_name |> fst |> snd)
11591159
| Tm_ascribed {asc=(Inl t, _, _)} -> Some t
11601160
| Tm_ascribed {asc=(Inr c, _, _)} -> Some (U.comp_result c)
11611161
| _ -> None
@@ -1413,13 +1413,13 @@ and encode_pat (env:env_t) (pat:S.pat) : (env_t & pattern) =
14131413
mkEq(scrutinee, tm)
14141414
| Pat_cons(f, _, args) ->
14151415
let is_f =
1416-
let tc_name = Env.typ_of_datacon env.tcenv f.fv_name.v in
1416+
let tc_name = Env.typ_of_datacon env.tcenv f.fv_name in
14171417
match Env.datacons_of_typ env.tcenv tc_name with
14181418
| _, [_] -> mkTrue //single constructor type; no need for a test
1419-
| _ -> mk_data_tester env f.fv_name.v scrutinee
1419+
| _ -> mk_data_tester env f.fv_name scrutinee
14201420
in
14211421
let sub_term_guards = args |> List.mapi (fun i (arg, _) ->
1422-
let proj = primitive_projector_by_pos env.tcenv f.fv_name.v i in
1422+
let proj = primitive_projector_by_pos env.tcenv f.fv_name i in
14231423
mk_guard arg (mkApp(proj, [scrutinee]))) in //arity ok, primitive projector (#1383)
14241424
mk_and_l (is_f::sub_term_guards)
14251425
in
@@ -1434,7 +1434,7 @@ and encode_pat (env:env_t) (pat:S.pat) : (env_t & pattern) =
14341434
| Pat_cons(f, _, args) ->
14351435
args
14361436
|> List.mapi (fun i (arg, _) ->
1437-
let proj = primitive_projector_by_pos env.tcenv f.fv_name.v i in
1437+
let proj = primitive_projector_by_pos env.tcenv f.fv_name i in
14381438
mk_projections arg (mkApp(proj, [scrutinee]))) //arity ok, primitive projector (#1383)
14391439
|> List.flatten
14401440
in

0 commit comments

Comments
 (0)