[NI] Don't skip constraints with projections during variable fixation

Those constraints are only restored for variable fixation stage because of the
influence on pefrormance.

^KT-37650 Fixed
^KT-37380 Fixed
This commit is contained in:
Pavel Kirpichenkov
2020-03-23 15:45:32 +03:00
parent 1f6834538b
commit adf3351a8b
11 changed files with 59 additions and 17 deletions
@@ -52,7 +52,6 @@ fun <L> main(x: L?, y: L) {
foo3(x, Foo(Bar()))
foo3(y, Foo(Bar()))
// Change after fix KT-37380
foo4(x, Foo(Bar()))
foo4(y, Foo(Bar()))
@@ -124,11 +123,9 @@ fun <L> main(x: L?, y: L) {
foo22(x, Foo(Foo(InBar())))
foo22(y, Foo(Foo(InBar())))
// Change after fix KT-37380
foo23(x, Foo(Foo(Bar())))
foo23(y, Foo(Foo(Bar())))
// Change after fix KT-37380
foo24(x, Foo(Foo(Bar())))
foo24(y, Foo(Foo(Bar())))
}
@@ -52,9 +52,8 @@ fun <L> main(x: L?, y: L) {
foo3(x, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Bar<L!!>>")!>Foo(Bar())<!>)
foo3(y, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Bar<L!!>>")!>Foo(Bar())<!>)
// Change after fix KT-37380
foo4(x, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Bar<L!!>>"), TYPE_MISMATCH!>Foo(Bar())<!>)
foo4(y, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Bar<L!!>>"), TYPE_MISMATCH!>Foo(Bar())<!>)
foo4(x, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Bar<out L!!>>")!>Foo(Bar())<!>)
foo4(y, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Bar<out L!!>>")!>Foo(Bar())<!>)
foo5(x, <!DEBUG_INFO_EXPRESSION_TYPE("Bar<L!!>")!>Bar()<!>)
foo5(y, <!DEBUG_INFO_EXPRESSION_TYPE("Bar<L!!>")!>Bar()<!>)
@@ -124,11 +123,9 @@ fun <L> main(x: L?, y: L) {
foo22(x, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Foo<InBar<L!!>>>")!>Foo(Foo(InBar()))<!>)
foo22(y, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Foo<InBar<L!!>>>")!>Foo(Foo(InBar()))<!>)
// Change after fix KT-37380
foo23(x, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Foo<Bar<L!!>>>"), TYPE_MISMATCH!>Foo(Foo(Bar()))<!>)
foo23(y, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Foo<Bar<L!!>>>"), TYPE_MISMATCH!>Foo(Foo(Bar()))<!>)
foo23(x, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Foo<Bar<out L!!>>>")!>Foo(Foo(Bar()))<!>)
foo23(y, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Foo<Bar<out L!!>>>")!>Foo(Foo(Bar()))<!>)
// Change after fix KT-37380
foo24(x, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Foo<Bar<L!!>>>"), TYPE_MISMATCH!>Foo(Foo(Bar()))<!>)
foo24(y, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Foo<Bar<L!!>>>"), TYPE_MISMATCH!>Foo(Foo(Bar()))<!>)
foo24(x, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Foo<Bar<in L!!>>>")!>Foo(Foo(Bar()))<!>)
foo24(y, <!DEBUG_INFO_EXPRESSION_TYPE("Foo<Foo<Bar<in L!!>>>")!>Foo(Foo(Bar()))<!>)
}
@@ -245,8 +245,8 @@ class Main<L>(x: L?, y: L) {
val x420 = <!DEBUG_INFO_EXPRESSION_TYPE("IFoo<L>")!>foo42(x)<!>
val x421 = <!DEBUG_INFO_EXPRESSION_TYPE("IFoo<L>")!>foo42(y)<!>
val x430 = <!DEBUG_INFO_EXPRESSION_TYPE("{IBar<L> & IFoo<L>}")!>foo43(x)<!>
val x431 = <!DEBUG_INFO_EXPRESSION_TYPE("{IBar<L> & IFoo<L>}")!>foo43(y)<!>
val x430 = <!DEBUG_INFO_EXPRESSION_TYPE("{IBar<L> & IBar<out L> & IFoo<L> & IFoo<out L>}")!>foo43(x)<!>
val x431 = <!DEBUG_INFO_EXPRESSION_TYPE("{IBar<L> & IBar<out L> & IFoo<L> & IFoo<out L>}")!>foo43(y)<!>
// Change after fix KT-37380
val x440 = <!DEBUG_INFO_EXPRESSION_TYPE("{IBar<L> & IFoo<String>}")!>foo44(x)<!>