The compiler still supports #[derive(FromPrimitive)] but it uses std::num::FromPrimitive which doesn't exist anymore. The compiler should remove its built-in support for #[derive_FromPrimitive] and the num crate should implement it instead.
Alternatively, to avoid the need for #![feature(custom_derive)], the compiler's built-in support could be adjusted to use num::traits::FromPrimitive instead, with the expectation that clients will adopt the external num crate, but this approach is inflexible (the num crate can't change FromPrimitive without breaking compatibility).