Combined identifier info for things like '(x + y).z' is no longer treated as 'z' identifier info + a pair of tests + code fix #KT-9126 Fixed

This commit is contained in:
Mikhail Glukhikh
2015-09-11 17:16:53 +03:00
parent 085fc3bf87
commit d4d633ea26
7 changed files with 67 additions and 7 deletions
@@ -0,0 +1,14 @@
// !DIAGNOSTICS: -UNNECESSARY_NOT_NULL_ASSERTION
// Advancement of KT-9126
class My(val x: Int?) {
fun plus(y: My) = if (this.x != null) this else y
}
fun foo() {
var y: My? = My(42)
if (y!!.x != null) {
y = My(null)
(<!DEBUG_INFO_SMARTCAST!>y<!> + My(0)).x<!UNSAFE_CALL!>.<!>hashCode()
}
}