diff --git a/core/builtin/builtin.odin b/core/builtin/builtin.odin index dc9bfcb06..7f5b8cf75 100644 --- a/core/builtin/builtin.odin +++ b/core/builtin/builtin.odin @@ -94,7 +94,14 @@ cap :: proc(array: Array_Type) -> int --- size_of :: proc($T: typeid) -> int --- align_of :: proc($T: typeid) -> int --- -offset_of :: proc($T: typeid) -> uintptr --- +// e.g. offset_of(t.f), where t is an instance of the type T +offset_of_selector :: proc(selector: $T) -> int --- +// e.g. offset_of(T, f), where T can be the type instead of a variable +offset_of_member :: proc($T: typeid, member: $M) -> int --- +offset_of :: proc{offset_of_selector, offset_of_member} +// e.g. offset_of(T, "f"), where T can be the type instead of a variable +offset_of_by_string :: proc($T: typeid, member: string) -> --- + type_of :: proc(x: expr) -> type --- type_info_of :: proc($T: typeid) -> ^runtime.Type_Info --- typeid_of :: proc($T: typeid) -> typeid ---