[NI] Consider intersection type with number type as Nothing

Currently, only for "in": In<in Int & A> == In<in Nothing> == In<*>

 #KT-37302 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2020-03-22 23:25:12 +03:00
parent b23aff4d0d
commit 191fb02bf6
26 changed files with 242 additions and 92 deletions
@@ -10,7 +10,7 @@ fun test(a: Any, ls: List<String>) {
Resolved call:
Candidate descriptor: fun <T> foo(t: T, l: List<T>): Unit defined in root package
Resulting descriptor: fun <T> foo(t: {Comparable<{Int & String}> & java.io.Serializable}, l: List<{Comparable<{Int & String}> & java.io.Serializable}>): Unit defined in root package
Resulting descriptor: fun <T> foo(t: {Comparable<*> & java.io.Serializable}, l: List<{Comparable<*> & java.io.Serializable}>): Unit defined in root package
Explicit receiver kind = NO_EXPLICIT_RECEIVER
Dispatch receiver = NO_RECEIVER
@@ -18,5 +18,5 @@ Extension receiver = NO_RECEIVER
Value arguments mapping:
SUCCESS t : {Comparable<{Int & String}> & java.io.Serializable} = 11
SUCCESS l : List<{Comparable<{Int & String}> & java.io.Serializable}> = ls
SUCCESS t : {Comparable<*> & java.io.Serializable} = 11
SUCCESS l : List<{Comparable<*> & java.io.Serializable}> = ls