This PR slightly improves the types involved in creating boxed declarations. Previously the type of the vdecl used for the return was always `tobj` when returning a boxed scalar. This is not the most precise annotation we can give.
413 lines
3.4 KiB
Text
413 lines
3.4 KiB
Text
Int8 : Type
|
|
20
|
|
-20
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
[Compiler.IR] [result]
|
|
def _private.lean.sint_basic.0.myId8 (x_1 : u8) : u8 :=
|
|
ret x_1
|
|
def _private.lean.sint_basic.0.myId8._boxed (x_1 : tagged) : tagged :=
|
|
let x_2 : u8 := unbox x_1;
|
|
let x_3 : u8 := _private.lean.sint_basic.0.myId8 x_2;
|
|
let x_4 : tagged := box x_3;
|
|
ret x_4
|
|
Int16 : Type
|
|
20
|
|
-20
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
[Compiler.IR] [result]
|
|
def _private.lean.sint_basic.0.myId16 (x_1 : u16) : u16 :=
|
|
ret x_1
|
|
def _private.lean.sint_basic.0.myId16._boxed (x_1 : tagged) : tagged :=
|
|
let x_2 : u16 := unbox x_1;
|
|
let x_3 : u16 := _private.lean.sint_basic.0.myId16 x_2;
|
|
let x_4 : tagged := box x_3;
|
|
ret x_4
|
|
Int32 : Type
|
|
20
|
|
-20
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
[Compiler.IR] [result]
|
|
def _private.lean.sint_basic.0.myId32 (x_1 : u32) : u32 :=
|
|
ret x_1
|
|
def _private.lean.sint_basic.0.myId32._boxed (x_1 : tobj) : tobj :=
|
|
let x_2 : u32 := unbox x_1;
|
|
dec x_1;
|
|
let x_3 : u32 := _private.lean.sint_basic.0.myId32 x_2;
|
|
let x_4 : tobj := box x_3;
|
|
ret x_4
|
|
Int64 : Type
|
|
20
|
|
-20
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
[Compiler.IR] [result]
|
|
def _private.lean.sint_basic.0.myId64 (x_1 : u64) : u64 :=
|
|
ret x_1
|
|
def _private.lean.sint_basic.0.myId64._boxed (x_1 : tobj) : tobj :=
|
|
let x_2 : u64 := unbox x_1;
|
|
dec x_1;
|
|
let x_3 : u64 := _private.lean.sint_basic.0.myId64 x_2;
|
|
let x_4 : tobj := box x_3;
|
|
ret x_4
|
|
ISize : Type
|
|
20
|
|
-20
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
[Compiler.IR] [result]
|
|
def _private.lean.sint_basic.0.myIdSize (x_1 : usize) : usize :=
|
|
ret x_1
|
|
def _private.lean.sint_basic.0.myIdSize._boxed (x_1 : tobj) : tobj :=
|
|
let x_2 : usize := unbox x_1;
|
|
dec x_1;
|
|
let x_3 : usize := _private.lean.sint_basic.0.myIdSize x_2;
|
|
let x_4 : tobj := box x_3;
|
|
ret x_4
|