mirror of
https://github.com/janet-lang/janet
synced 2024-12-01 04:19:55 +00:00
Registering an abstract type is idemptotent.
This commit is contained in:
parent
5c05dec65a
commit
ebfa07f8ce
@ -449,7 +449,8 @@ void janet_cfuns(JanetTable *env, const char *regprefix, const JanetReg *cfuns)
|
|||||||
|
|
||||||
void janet_register_abstract_type(const JanetAbstractType *at) {
|
void janet_register_abstract_type(const JanetAbstractType *at) {
|
||||||
Janet sym = janet_csymbolv(at->name);
|
Janet sym = janet_csymbolv(at->name);
|
||||||
if (!(janet_checktype(janet_table_get(janet_vm_abstract_registry, sym), JANET_NIL))) {
|
Janet check = janet_table_get(janet_vm_abstract_registry, sym);
|
||||||
|
if (!janet_checktype(check, JANET_NIL) && at != janet_unwrap_pointer(check)) {
|
||||||
janet_panicf("cannot register abstract type %s, "
|
janet_panicf("cannot register abstract type %s, "
|
||||||
"a type with the same name exists", at->name);
|
"a type with the same name exists", at->name);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user