062cb17ec4
The interface target can now be stored on PropertyGet, PropertySet, and MethodInvocation If set, we know the concrete target overrides or implements that member. All expressions have a method getStaticType for computing its type, which relies on interface targets for the expressions that have one. Expressions whose type is a least upper bound have the type stored explicitly, so the definition of least upper bounds is contained only in the frontend. This is a work in progress towards strong mode support, it is still not complete. Still missing in the frontend: - checks from implicit downcasts - parameter checks from covariant override or covariant generics Implemented but not part of this CL: - subtype tests - IR type checker (for debugging) BUG= R=kmillikin@google.com Review URL: https://chromereviews.googleplex.com/496717014 .