New J2K: separate nullability inference from common one & nullability bug fixes

It will be needed for structure mutability inference

#KT-21467 fixed
#KT-32609 fixed
#KT-32572 fixed
#KT-24677 fixed
This commit is contained in:
Ilya Kirillov
2019-07-25 00:31:50 +03:00
parent d7960caf89
commit 2bd5a1f196
234 changed files with 3940 additions and 1983 deletions
+15
View File
@@ -0,0 +1,15 @@
fun test() {
val x: /*T2@*/X</*T1@*/Int> = X</*T0@*/Int>(10/*LIT*/)/*X<T0@Int>*/
val x: /*T5@*/X</*T4@*/Int> = X</*T3@*/Int>(10/*LIT*/, 20/*LIT*/)/*X<T3@Int>*/
}
class X<T>(x: /*T6@*/T) {
constructor(x: /*T7@*/T, y: /*T8@*/Int): this(x/*T7@T*/)
}
//LOWER <: T0 due to 'PARAMETER'
//T1 := T0 due to 'INITIALIZER'
//LOWER <: T3 due to 'PARAMETER'
//LOWER <: T8 due to 'PARAMETER'
//T4 := T3 due to 'INITIALIZER'
//T7 <: T6 due to 'PARAMETER'