[swift-evolution] [Review] SE-0101: Rename sizeof and related functions to comply with API Guidelines

Joe Groff jgroff at apple.com
Tue Jun 21 13:45:27 CDT 2016


Regarding the issue of existential metatypes with sizeof:

Pyry Jahkola points out one instance where the memorySize(type(of: …)) workaround won't work. When the value is an existential, it's illegal to ask for the size of its dynamic type: the result can't be retrieved at compile time:

// Swift 2.2, 64-bit
let i = 123
print(sizeofValue(i)) //=> 8
let c: CustomStringConvertible = i
print(sizeofValue(c)) //=> 40
print(sizeof(c.dynamicType)) // error: cannot invoke 'sizeof' with an argument list of type '(CustomStringCo
This could be enabled by having sizeof and friends formally take an Any.Type instead of <T> T.Type. (This might need some tweaking of the underlying builtins to be able to open existential metatypes, but it seems implementable.)

-Joe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160621/006e8da4/attachment.html>


More information about the swift-evolution mailing list