Deprecate meaningless or vague-defined operations with Char operands.

Change expected test output.
This commit is contained in:
Ilya Gorbunov
2015-05-26 19:04:07 +03:00
parent c6abf75856
commit 84ca26719d
9 changed files with 256 additions and 170 deletions
@@ -1,12 +1,12 @@
fun intBinEq() {
var x = 0
x += 'a'
x <!DEPRECATED_SYMBOL_WITH_MESSAGE!>+=<!> 'a'
x += 1.toByte()
x += 1.toShort()
<!TYPE_MISMATCH!>x += 1L<!>
<!TYPE_MISMATCH!>x += 1f<!>
<!TYPE_MISMATCH!>x += 1.0<!>
x *= 'a'
x <!DEPRECATED_SYMBOL_WITH_MESSAGE!>*=<!> 'a'
x *= 1.toByte()
x *= 1.toShort()
<!TYPE_MISMATCH!>x *= 1L<!>
@@ -16,14 +16,14 @@ fun intBinEq() {
fun shortBinEq() {
var x = 0.toShort()
<!TYPE_MISMATCH!>x += 'a'<!>
<!TYPE_MISMATCH!>x <!DEPRECATED_SYMBOL_WITH_MESSAGE!>+=<!> 'a'<!>
<!TYPE_MISMATCH!>x += 1.toByte()<!>
<!TYPE_MISMATCH!>x += 1.toShort()<!>
<!TYPE_MISMATCH!>x += 1L<!>
<!TYPE_MISMATCH!>x += 1f<!>
<!TYPE_MISMATCH!>x += 1.0<!>
<!TYPE_MISMATCH!>x *= 'a'<!>
<!TYPE_MISMATCH!>x <!DEPRECATED_SYMBOL_WITH_MESSAGE!>*=<!> 'a'<!>
<!TYPE_MISMATCH!>x *= 1.toByte()<!>
<!TYPE_MISMATCH!>x *= 1.toShort()<!>
<!TYPE_MISMATCH!>x *= 1L<!>
@@ -2,17 +2,17 @@
class A(val a:Int) {
inner class B() {
fun Char.xx() : Double.() -> Any {
checkSubtype<Char>(this)
fun Byte.xx() : Double.() -> Any {
checkSubtype<Byte>(this)
val <!UNUSED_VARIABLE!>a<!>: Double.() -> Unit = {
checkSubtype<Double>(this)
checkSubtype<Char>(this@xx)
checkSubtype<Byte>(this@xx)
checkSubtype<B>(this@B)
checkSubtype<A>(this@A)
}
val <!UNUSED_VARIABLE!>b<!>: Double.() -> Unit = a@{ checkSubtype<Double>(this@a) + checkSubtype<Char>(this@xx) }
val <!UNUSED_VARIABLE!>c<!> = a@{ -> <!NO_THIS!>this@a<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> checkSubtype<Char>(this@xx) }
return (a@{checkSubtype<Double>(this@a) + checkSubtype<Char>(this@xx)})
val <!UNUSED_VARIABLE!>b<!>: Double.() -> Unit = a@{ checkSubtype<Double>(this@a) + checkSubtype<Byte>(this@xx) }
val <!UNUSED_VARIABLE!>c<!> = a@{ -> <!NO_THIS!>this@a<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> checkSubtype<Byte>(this@xx) }
return (a@{checkSubtype<Double>(this@a) + checkSubtype<Byte>(this@xx)})
}
}
}
@@ -12,6 +12,6 @@ internal final class A {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
internal final fun kotlin.Char.xx(): kotlin.Double.() -> kotlin.Any
internal final fun kotlin.Byte.xx(): kotlin.Double.() -> kotlin.Any
}
}