70a4d169c0
"Covariance checks" are checks on certain parameters, necessary due to the unsafe covariant subtyping rule for interface types. The new pass generates a checked entry point for each method with covariance checks. This entry point checks the parameters whose type cannot be trusted, and then calls the actual method implementation. Every typed call is then redirected to the checked entry point if the interface taget declares any parameters with unsafe types, unless the receiver is 'this'. Dynamic calls and covariant overrides are not addressed by this CL, these are still unchecked. BUG= R=kmillikin@google.com Review-Url: https://codereview.chromium.org/2618393002 .