HomePhabricator

typechecker: keep track of type params for require extends X<T1, T2, ...>

Authored by Eugene Letuchy <eletuchy@fb.com>.

Description

typechecker: keep track of type params for require extends X<T1, T2, ...>

Summary: ... these were previously being thrown away and replaced with the
type params of the containing trait and interface, usually working
simply because the typechecker is (too) tolerant of classes without
bound type params. The code for this is somewhat involved and
complicated by the fact that a require extends Foo<T1, T2> requires
the type variables T1 and T2 to be substituted juuuuust right in
each place they're used.

Reviewed By: @jwatzman

Differential Revision: D1410558

Details

Committed
facebook-github-botJul 9 2014, 11:00 PM
Parents
rOSHD738e7aeb18fc: Fix autoloading for "type" and "newtype" statements
Branches
Unknown
Tags
Unknown
ChangeId
None

Event Timeline

facebook-github-bot <githubbot@fb.com> committed rOSHD1404f439f36a: typechecker: keep track of type params for require extends X<T1, T2, ...> (authored by Eugene Letuchy <eletuchy@fb.com>).Jul 9 2014, 11:00 PM