Update semantics of generics with no __RequireDynamic
Summary: Previously, an unannotated (with `__RequireDynamic`) generic parameter on a `__SDT` class C got no upper or lower bounds when checking that the class is ok to be `__SDT`. That in turn meant that when checking if `C<t> <D: dynamic` no constraint needed to be imposed on `t`. However, the condition on the class is very limiting. Here, we add an `as dynamic` constraint when checking that the class is SDT, and check that `t <D: dynamic` when doing `C<t> <D: dynamic`.
Reviewed By: vassilmladenov
Differential Revision:
D32098732
fbshipit-source-id:
12665ab510e10268c840343caa95269acaede113