relax the constraint on enum class base type
Summary:
The experimental phase of the feature lead to a few meaningful examples
where a more relax contraint made sense. Allowing things like class/interface
where all type parameters are bound, or primite types like `mixed` or `nonnull`
seems a good idea. We can still currently support these at the cost of
verbosity and extra userland wrappers, but the code starts to get quite heavy.
The new restriction can can be read as "any type where type parameters are all bound".
In practice we are a bit more strict (we refuse `dynamic`, `any`, `object`,
shapes, function types, ...).
Reviewed By: shayne-fletcher
Differential Revision:
D24951137
fbshipit-source-id:
4d4f4faf5c3bdf4022097a5500f0de33b66caf76