You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
libc::Nullable exists as an Option-equivalent that is suitable for using with liblibc without requiring libstd. It seems the appropriate type to use for nullable function pointers, e.g. Nullable<extern "C" fn (int)>. But doing this is making the implicit assumption that Nullable benefits from the null-pointer optimization, i.e. that this type has the same size as *(). I think we should statically guarantee this by adding an attribute that guarantees that Nullable<T> can only be used with a type parameter that allows it to use the null-pointer optimization. This means I can say Nullable<extern "C" fn (int)>, but I can't say Nullable<uint>, nor Nullable<*u32> (because *u32 is already nullable, and therefore the null-pointer optimization doesn't apply).