36a57973b5
Recursive type with several recursive anscestors can create a number of identical common supertype calculations, growing exponentially on every step of recursion. Previously the number of calculations was limited by D + 3, where D is a type depth. Since the limit is dynamic, it seems that extra +3 offset can be dropped thus reducing the number of recursions. The proper solution is to detect such a recursion and fold recursive type preemtively, but for now this may improve performance in some use cases. ^KT-38544 In progress