aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-09-25 17:47:23 +0100
committergingerBill <bill@gingerbill.org>2021-09-25 17:47:23 +0100
commit931fdd2dca7dcd4f647acb1b38d9cbe49ca9cb30 (patch)
treec9127e50d677ec84407c040181dc63dbefc0b07c
parente6d8fbf194b9559299c7d757de2e2c8ac4402e66 (diff)
Add `reflect.any_base` `reflect.any_core`
-rw-r--r--core/reflect/reflect.odin15
1 files changed, 15 insertions, 0 deletions
diff --git a/core/reflect/reflect.odin b/core/reflect/reflect.odin
index e7cb928c3..6316115ec 100644
--- a/core/reflect/reflect.odin
+++ b/core/reflect/reflect.odin
@@ -157,6 +157,21 @@ typeid_core :: proc(id: typeid) -> typeid {
}
typeid_base_without_enum :: typeid_core
+any_base :: proc(v: any) -> any {
+ v := v
+ if v != nil {
+ v.id = typeid_base(v.id)
+ }
+ return v
+}
+any_core :: proc(v: any) -> any {
+ v := v
+ if v != nil {
+ v.id = typeid_core(v.id)
+ }
+ return v
+}
+
typeid_elem :: proc(id: typeid) -> typeid {
ti := type_info_of(id)
if ti == nil { return nil }