aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré (counter) <49562770+awwdev@users.noreply.github.com>2022-12-09 18:14:47 +0100
committerGitHub <noreply@github.com>2022-12-09 18:14:47 +0100
commitb3be2cdf9d00692f61e90de0047fa922f5503c45 (patch)
treedbb4722f5031f75d259dbadc51610e092dd57c6a
parentffe953b43d1ad31d2c37f544a1d389e30d8f69bf (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.odin43
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