diff options
| author | Pierre-Marie Pédrot | 2015-10-27 11:44:58 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2015-10-27 14:02:49 +0100 |
| commit | 72bed859fb8d037044abd8a1518661c52502f7be (patch) | |
| tree | a338b6d023c32db4f7cf0226117ab2f33b5dbca6 /parsing | |
| parent | d51e5688f521c8a77a1dbdb0b88d8f99d5ff8060 (diff) | |
Type-safe Egramml.grammar_prod_item.
Diffstat (limited to 'parsing')
| -rw-r--r-- | parsing/egramml.ml | 6 | ||||
| -rw-r--r-- | parsing/egramml.mli | 2 |
2 files changed, 3 insertions, 5 deletions
diff --git a/parsing/egramml.ml b/parsing/egramml.ml index 7a66b24f31..984027b815 100644 --- a/parsing/egramml.ml +++ b/parsing/egramml.ml @@ -18,7 +18,7 @@ open Vernacexpr type 's grammar_prod_item = | GramTerminal of string | GramNonTerminal : - Loc.t * argument_type * ('s, 'a) entry_key * Id.t option -> 's grammar_prod_item + Loc.t * 'a raw_abstract_argument_type * ('s, 'a) entry_key * Id.t option -> 's grammar_prod_item type 'a ty_arg = Id.t * ('a -> raw_generic_argument) @@ -41,9 +41,7 @@ let rec ty_rule_of_gram = function let AnyTyRule rem = ty_rule_of_gram rem in let inj = match idopt with | None -> None - | Some id -> - (** FIXME *) - Some (id, fun obj -> Genarg.Unsafe.inj t (Obj.repr obj)) + | Some id -> Some (id, fun obj -> Genarg.in_gen t obj) in let r = TyNext (rem, tok, inj) in AnyTyRule r diff --git a/parsing/egramml.mli b/parsing/egramml.mli index 32646cfafa..e3ae4e0118 100644 --- a/parsing/egramml.mli +++ b/parsing/egramml.mli @@ -15,7 +15,7 @@ open Vernacexpr type 's grammar_prod_item = | GramTerminal of string - | GramNonTerminal : Loc.t * Genarg.argument_type * + | GramNonTerminal : Loc.t * 'a Genarg.raw_abstract_argument_type * ('s, 'a) Pcoq.entry_key * Names.Id.t option -> 's grammar_prod_item val extend_vernac_command_grammar : |
