File tree 4 files changed +10
-4
lines changed
4 files changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -43,9 +43,8 @@ let define name arity f =
43
43
registered := (name,arity) :: ! registered;
44
44
f
45
45
46
- (* Adds a thunk *)
47
46
let define0 name v =
48
- define name 1 ( fun ( _ :valexpr ) -> v)
47
+ define name 0 v
49
48
50
49
let define1 name r0 f =
51
50
define name 1 (fun x0 -> f (repr_to r0 x0))
@@ -56,7 +55,7 @@ let define2 name r0 r1 f =
56
55
let define3 name r0 r1 r2 f =
57
56
define name 3 (fun x0 x1 x2 -> f (repr_to r0 x0) (repr_to r1 x1) (repr_to r2 x2))
58
57
59
- let array_empty = define0 " array_empty" (return ( ValBlk (0 , [||]) ))
58
+ let array_empty = define0 " array_empty" (ValBlk (0 , [||]))
60
59
61
60
let array_make = define2 " array_make" int valexpr begin fun n x ->
62
61
if n < 0 || n > Sys. max_array_length then throw err_outofbounds
Original file line number Diff line number Diff line change 11
11
open Ltac2_plugin.Tac2val
12
12
open Proofview
13
13
14
- val array_empty : valexpr -> valexpr tactic
14
+ val array_empty : valexpr
15
15
val array_make : valexpr -> valexpr -> valexpr tactic
16
16
val array_length : valexpr -> valexpr tactic
17
17
val array_set : valexpr -> valexpr -> valexpr -> valexpr tactic
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ compiler_bug_6.v
11
11
compiler_bug_14.v
12
12
compiler_bug_16.v
13
13
compiler_bug_17.v
14
+ compiler_bug_24.v
14
15
15
16
-I src
16
17
Original file line number Diff line number Diff line change
1
+ Require Import Ltac2Compiler.Ltac2Compiler.
2
+ From Ltac2 Require Import Array.
3
+ Ltac2 test () := Array.empty.
4
+ Ltac2 Eval Array.length (test ()).
5
+ Ltac2 Compile Array.empty.
6
+ Ltac2 Eval Array.length (test ()).
You can’t perform that action at this time.
0 commit comments