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
+1 -1
View File
@@ -3,5 +3,5 @@ import java.util.ArrayList
fun foo() {
bar(ArrayList<String>())
bar(ArrayList<String?>())
}
@@ -2,4 +2,4 @@
import java.util.ArrayList
fun foo() = ArrayList<String>()
fun foo() = ArrayList<String?>()
@@ -4,7 +4,7 @@ import java.util.UUID
class ExampleClass {
override fun toString(): String {
override fun toString(): String? {
return UUID.randomUUID().toString()
}
}
+4 -4
View File
@@ -9,7 +9,7 @@ import java.util.HashMap
class Target {
var listOfPlatformType: List<String> = ArrayList()
var unresolved: UnresolvedInterface<UnresolvedGeneric?>? = UnresolvedImplementation() // Should not add import
var unresolved: UnresolvedInterface<UnresolvedGeneric?> = UnresolvedImplementation() // Should not add import
var hashMapOfNotImported: Map<ToBeImportedJava, ToBeImportedKotlin> = HashMap()
@@ -18,11 +18,11 @@ class Target {
internal fun acceptJavaClass(tbi: ToBeImportedJava?) {}
var ambiguousKotlin: IAmbiguousKotlin? = AmbiguousKotlin() // Should not add import in case of 2 declarations in Kotlin
var ambiguousKotlin: IAmbiguousKotlin = AmbiguousKotlin() // Should not add import in case of 2 declarations in Kotlin
var ambiguous: IAmbiguous? = Ambiguous() // Should not add import in case of ambiguous declarations in Kotlin and in Java
var ambiguous: IAmbiguous = Ambiguous() // Should not add import in case of ambiguous declarations in Kotlin and in Java
var ambiguousJava: IAmbiguousJava? = AmbiguousJava() // Should not add import in case of 2 declarations in Java
var ambiguousJava: IAmbiguousJava = AmbiguousJava() // Should not add import in case of 2 declarations in Java
internal fun workWithStatics() {
+1 -1
View File
@@ -3,5 +3,5 @@ import java.util.ArrayList
fun foo() {
bar(/*comment*/ArrayList<String>())
bar(/*comment*/ArrayList<String?>())
}
@@ -6,7 +6,7 @@ import java.util.ArrayList
class JavaClass {
internal fun foo(file: File?, target: List<String?>?) {
val list = ArrayList<String?>()
val list = ArrayList<String>()
if (file != null) {
list.add(file.name)
}