Refine INSTANCE_ACCESS_BEFORE_SUPER_CALL check

- Detect usages of unitialized `this` as extension receiver argument
- Make it work within object literal created before super call

 #KT-9120 Fixed
 #KT-8289 Fixed
This commit is contained in:
Denis Zharkov
2015-12-17 16:49:11 +03:00
parent ba180f915a
commit 0d7c8635b3
17 changed files with 182 additions and 62 deletions
@@ -0,0 +1,15 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun A.foobar() = 3
class A {
fun foo() = 1
constructor(x: () -> Int)
constructor() : this(
{
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>foo<!>() +
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.foo() +
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this@A<!>.foo() +
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>foobar<!>()
})
}