diff options
| author | André (counter) <49562770+awwdev@users.noreply.github.com> | 2022-12-09 18:14:47 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-09 18:14:47 +0100 |
| commit | b3be2cdf9d00692f61e90de0047fa922f5503c45 (patch) | |
| tree | dbb4722f5031f75d259dbadc51610e092dd57c6a | |
| parent | ffe953b43d1ad31d2c37f544a1d389e30d8f69bf (diff) | |
Aliasing some procs to avoid code repetition
Aliasing some procedures within package reflect so they reference procedures from package runtime.
This avoids redundancy and potential deviation.
Not 100% sure about the ODIN_DISALLOW_RTTI part but I think it should be congruent as well.
| -rw-r--r-- | core/reflect/reflect.odin | 43 |
1 files changed, 7 insertions, 36 deletions
diff --git a/core/reflect/reflect.odin b/core/reflect/reflect.odin index 8aab77399..0312ffd95 100644 --- a/core/reflect/reflect.odin +++ b/core/reflect/reflect.odin @@ -123,46 +123,17 @@ backing_type_kind :: proc(T: typeid) -> Type_Kind { } -type_info_base :: proc(info: ^Type_Info) -> ^Type_Info { - if info == nil { return nil } - - base := info - loop: for { - #partial switch i in base.variant { - case Type_Info_Named: base = i.base - case: break loop - } - } - return base -} - - -type_info_core :: proc(info: ^Type_Info) -> ^Type_Info { - if info == nil { return nil } - - base := info - loop: for { - #partial switch i in base.variant { - case Type_Info_Named: base = i.base - case Type_Info_Enum: base = i.base - case: break loop - } - } - return base -} +type_info_base :: runtime.type_info_base +type_info_core :: runtime.type_info_core type_info_base_without_enum :: type_info_core -typeid_base :: proc(id: typeid) -> typeid { - ti := type_info_of(id) - ti = type_info_base(ti) - return ti.id -} -typeid_core :: proc(id: typeid) -> typeid { - ti := type_info_base_without_enum(type_info_of(id)) - return ti.id +when !ODIN_DISALLOW_RTTI { + typeid_base :: runtime.typeid_base + typeid_core :: runtime.typeid_core + typeid_base_without_enum :: typeid_core } -typeid_base_without_enum :: typeid_core + any_base :: proc(v: any) -> any { v := v |