deprecating types after colon

This commit is contained in:
Dmitry Jemerov
2015-04-21 18:32:31 +02:00
parent b7a4b3c17d
commit f374eec8f1
268 changed files with 1055 additions and 769 deletions
@@ -1,7 +1,9 @@
// !CHECK_TYPE
fun main(args : Array<String>) {
val a : Int? = null
val b : Int? = null
a!! : Int
checkSubtype<Int>(a!!)
a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!> + 2
a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>.plus(2)
a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>.plus(b!!)
@@ -32,5 +34,5 @@ fun main(args : Array<String>) {
}
val <!UNUSED_VARIABLE!>f<!> : String = <!TYPE_MISMATCH!>a<!><!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>
<!TYPE_MISMATCH!>a<!><!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!> : String
checkSubtype<String>(<!TYPE_MISMATCH!>a<!><!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
}
@@ -1,8 +1,9 @@
// !CHECK_TYPE
//KT-1778 Automatically cast error
package kt1778
fun main(args : Array<String>) {
val x = args[0]: Any
val x = checkSubtype<Any>(args[0])
if(x is <!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>java.lang.CharSequence<!>) {
if ("a" == x) <!DEBUG_INFO_SMARTCAST!>x<!>.length() else <!DEBUG_INFO_SMARTCAST!>x<!>.length() // OK
if ("a" == x || "b" == x) <!DEBUG_INFO_SMARTCAST!>x<!>.length() else <!DEBUG_INFO_SMARTCAST!>x<!>.length() // < THEN ERROR
@@ -1,27 +1,29 @@
// !CHECK_TYPE
//KT-2176 non-nullability is not inferred after !! or "as"
package kt2176
fun f1(a: String?) {
a!!
<!DEBUG_INFO_SMARTCAST!>a<!>: String
checkSubtype<String>(<!DEBUG_INFO_SMARTCAST!>a<!>)
}
fun f2(a: String) {
a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>
a: String
checkSubtype<String>(a)
}
fun f3(a: Any?) {
a as String
<!DEBUG_INFO_SMARTCAST!>a<!>: String
checkSubtype<String>(<!DEBUG_INFO_SMARTCAST!>a<!>)
}
fun f4(a: Any) {
a as String
<!DEBUG_INFO_SMARTCAST!>a<!>: String
checkSubtype<String>(<!DEBUG_INFO_SMARTCAST!>a<!>)
}
fun f5(a: String) {
a <!USELESS_CAST_STATIC_ASSERT_IS_FINE!>as Any?<!>
a: String
a <!USELESS_CAST!>as Any?<!>
checkSubtype<String>(a)
}
@@ -1,3 +1,5 @@
// !CHECK_TYPE
package a
//KT-2234 'period!!' has type Int?
@@ -7,15 +9,15 @@ class Pair<A, B>(val a: A, val b: B)
fun main(args : Array<String>) {
val d : Long = 1
val period : Int? = null
if (period != null) Pair(d, period<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!> : Int) else Pair(d, 1)
if (period != null) Pair(d, <!DEBUG_INFO_SMARTCAST!>period<!> : Int) else Pair(d, 1)
if (period != null) Pair(d, checkSubtype<Int>(period<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)) else Pair(d, 1)
if (period != null) Pair(d, checkSubtype<Int>(<!DEBUG_INFO_SMARTCAST!>period<!>)) else Pair(d, 1)
}
fun foo() {
val x : Int? = 3
if (x != null) {
val <!UNUSED_VARIABLE!>u<!> = x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!> : Int
val y = <!DEBUG_INFO_SMARTCAST!>x<!> : Int
val <!UNUSED_VARIABLE!>u<!> = checkSubtype<Int>(x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
val y = checkSubtype<Int>(<!DEBUG_INFO_SMARTCAST!>x<!>)
val <!UNUSED_VARIABLE!>z<!> : Int = y
}
}