31ba1f1534
See KT-49404 for details In K1, within SubstitutingScope we approximate almost all the types containing captured types are being approximated to either a lower or an upper bound. While mostly, it's being done correctly there are some problems with approximations for flexible types So, the parameter's type of A<in Any>::foo is approximated to Inv<in Any!>, thus allowing to use Inv<*>, while it's obviously unsound. NB: For the similar example, in B, there are regular TYPE_MISMATCH because parameter for B<in Any>::foo is approximated to Nothing Also, it's important to say that - in K2 everything works because we don't use type approximation there - approximation algorithm that works incorrectly is only being used in K1 ^KT-54332 Fixed