feat(library/init/lean): remove some TODOs using the new opaque constants
This commit is contained in:
parent
0b7d987699
commit
ffc3436dd6
4 changed files with 4 additions and 74 deletions
|
|
@ -69,15 +69,11 @@ args.foldl expr.app fn
|
|||
def mk_capp (fn : name) (args : list expr) : expr :=
|
||||
mk_app (expr.const fn []) args
|
||||
|
||||
-- Mark as opaque
|
||||
@[extern "lean_expr_hash"]
|
||||
protected def hash (n : @& expr) : usize :=
|
||||
0 -- dummy implementation
|
||||
constant hash (n : @& expr) : usize := default usize
|
||||
|
||||
-- Mark as opaque
|
||||
@[extern "lean_expr_dbg_to_string"]
|
||||
protected def dbg_to_string (e : @& expr) : string :=
|
||||
"" -- dummy implementation
|
||||
constant dbg_to_string (e : @& expr) : string := default string
|
||||
|
||||
end expr
|
||||
|
||||
|
|
|
|||
|
|
@ -71,10 +71,8 @@ def level.instantiate (s : name → option level) : level → level
|
|||
| none := l)
|
||||
| l := l
|
||||
|
||||
-- Mark as opaque
|
||||
@[extern "lean_level_hash"]
|
||||
protected def level.hash (n : @& level) : usize :=
|
||||
0 -- dummy implementation
|
||||
constant level.hash (n : @& level) : usize := default usize
|
||||
|
||||
/- level to format -/
|
||||
namespace level_to_format
|
||||
|
|
|
|||
|
|
@ -32,15 +32,8 @@ instance string_to_name : has_coe string name :=
|
|||
⟨mk_simple_name⟩
|
||||
|
||||
namespace name
|
||||
private def hash_aux : name → usize → usize
|
||||
| anonymous r := r
|
||||
| (mk_string n s) r := hash_aux n (mix_hash r (hash s))
|
||||
| (mk_numeral n k) r := hash_aux n (mix_hash r (hash k))
|
||||
|
||||
-- TODO: mark as opaque
|
||||
@[extern "lean_name_hash_usize"]
|
||||
protected def hash (n : @& name) : usize :=
|
||||
hash_aux n 11
|
||||
constant hash (n : @& name) : usize := default usize
|
||||
|
||||
instance : hashable name :=
|
||||
⟨name.hash⟩
|
||||
|
|
|
|||
57
src/boot/init/lean/name.cpp
generated
57
src/boot/init/lean/name.cpp
generated
|
|
@ -26,7 +26,6 @@ obj* l_lean_name_decidable__eq;
|
|||
obj* l_lean_mk__str__name(obj*, obj*);
|
||||
obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___boxed(obj*);
|
||||
obj* l_rbnode_insert___at_lean_name__map_insert___spec__2___rarg___boxed(obj*, obj*, obj*, obj*);
|
||||
obj* l___private_init_lean_name_1__hash__aux___main___boxed(obj*, obj*);
|
||||
obj* l_lean_name_components_x_27(obj*);
|
||||
obj* l_lean_name__map_find___rarg___boxed(obj*, obj*);
|
||||
obj* l_lean_name_quick__lt__core___main___boxed(obj*, obj*);
|
||||
|
|
@ -82,7 +81,6 @@ obj* l_lean_name_append___main(obj*, obj*);
|
|||
obj* l_lean_name_to__string__with__sep(obj*, obj*);
|
||||
obj* l_lean_name_to__string__with__sep___main___boxed(obj*, obj*);
|
||||
obj* l_lean_name_dec__eq___boxed(obj*, obj*);
|
||||
usize l___private_init_lean_name_1__hash__aux(obj*, usize);
|
||||
obj* l_rbnode_ins___main___at_lean_name__set_insert___spec__4(obj*, obj*, obj*, obj*);
|
||||
obj* l_rbmap_insert___main___at_lean_name__map_insert___spec__1___boxed(obj*);
|
||||
obj* l_lean_name__map_insert___boxed(obj*);
|
||||
|
|
@ -108,17 +106,12 @@ obj* l_lean_mk__num__name(obj*, obj*);
|
|||
uint8 l_lean_name_quick__lt(obj*, obj*);
|
||||
obj* l_lean_mk__simple__name(obj*);
|
||||
obj* l_lean_name_lean_has__to__format(obj*);
|
||||
namespace lean {
|
||||
usize usize_of_nat(obj*);
|
||||
}
|
||||
obj* l_rbnode_balance1___main___rarg(obj*, obj*);
|
||||
obj* l___private_init_lean_name_1__hash__aux___boxed(obj*, obj*);
|
||||
obj* l_lean_name_to__string__with__sep___boxed(obj*, obj*);
|
||||
obj* l_lean_name__map_find(obj*);
|
||||
obj* l_lean_name_update__prefix___main(obj*, obj*);
|
||||
obj* l_lean_name_get__prefix(obj*);
|
||||
obj* l_rbnode_ins___main___at_lean_name__map_insert___spec__3___rarg(obj*, obj*, obj*, obj*);
|
||||
usize l___private_init_lean_name_1__hash__aux___main(obj*, usize);
|
||||
obj* l_rbmap_find___main___at_lean_name__map_find___spec__1___rarg___boxed(obj*, obj*);
|
||||
extern "C" obj* lean_name_mk_numeral(obj*, obj*);
|
||||
obj* l_nat_repr(obj*);
|
||||
|
|
@ -184,56 +177,6 @@ x_0 = lean::alloc_closure(reinterpret_cast<void*>(l_lean_mk__simple__name), 1, 0
|
|||
return x_0;
|
||||
}
|
||||
}
|
||||
usize l___private_init_lean_name_1__hash__aux___main(obj* x_0, usize x_1) {
|
||||
_start:
|
||||
{
|
||||
switch (lean::obj_tag(x_0)) {
|
||||
case 0:
|
||||
{
|
||||
return x_1;
|
||||
}
|
||||
default:
|
||||
{
|
||||
obj* x_2; usize x_3;
|
||||
x_2 = lean::cnstr_get(x_0, 0);
|
||||
x_3 = 0;
|
||||
x_0 = x_2;
|
||||
x_1 = x_3;
|
||||
goto _start;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
obj* l___private_init_lean_name_1__hash__aux___main___boxed(obj* x_0, obj* x_1) {
|
||||
_start:
|
||||
{
|
||||
usize x_2; usize x_3; obj* x_4;
|
||||
x_2 = lean::unbox_size_t(x_1);
|
||||
x_3 = l___private_init_lean_name_1__hash__aux___main(x_0, x_2);
|
||||
x_4 = lean::box_size_t(x_3);
|
||||
lean::dec(x_0);
|
||||
return x_4;
|
||||
}
|
||||
}
|
||||
usize l___private_init_lean_name_1__hash__aux(obj* x_0, usize x_1) {
|
||||
_start:
|
||||
{
|
||||
usize x_2;
|
||||
x_2 = l___private_init_lean_name_1__hash__aux___main(x_0, x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
obj* l___private_init_lean_name_1__hash__aux___boxed(obj* x_0, obj* x_1) {
|
||||
_start:
|
||||
{
|
||||
usize x_2; usize x_3; obj* x_4;
|
||||
x_2 = lean::unbox_size_t(x_1);
|
||||
x_3 = l___private_init_lean_name_1__hash__aux(x_0, x_2);
|
||||
x_4 = lean::box_size_t(x_3);
|
||||
lean::dec(x_0);
|
||||
return x_4;
|
||||
}
|
||||
}
|
||||
obj* l_lean_name_hash___boxed(obj* x_0) {
|
||||
_start:
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue