take into account require class constraints when checking overriding of type constants
Summary:
The hierarchy checks for type constants were not taking into account `require class` constraints in traits. As a consequence if a trait implemented interfaces with conflicting types for a type constant _and_ required a class that resolved the conflict, Hack was incorrectly raising an error on the trait.
This diff ensures that `require class` constraints are taken into account when checking the type constant hierarchies of traits.
Reviewed By: mpu
Differential Revision:
D38786863
fbshipit-source-id:
ef8b8f9fdcfb16faa9d8c6a8e1a43dd1b7b52bdd