Reject all invalid enum base types.
Summary:
Update TypeConstraint::validForEnumBase to reject invalid base types that are not "precise" (i.e. don't exactly map to a DataType) as well. Add unit tests for all invalid base types.
This is safe because the typechecker already rejects all these invalid base types (any types that aren't a subtype of arraykey), which I verified manually. Omitting a base type is a parse error.
Reviewed By: ricklavoie
Differential Revision:
D38329639
fbshipit-source-id:
8e1816d7f723cf1e2629c5134478b0d3ca36050f