[FIR] Fix INSTANCE_ACCESS_BEFORE_SUPER_CALL
This commit is contained in:
+1
-1
@@ -261,7 +261,7 @@ class BodyResolveContext(
|
|||||||
) {
|
) {
|
||||||
if (owningClass == null) return
|
if (owningClass == null) return
|
||||||
addReceiver(
|
addReceiver(
|
||||||
name = null,
|
name = owningClass.name,
|
||||||
implicitReceiverValue = InaccessibleImplicitReceiverValue(
|
implicitReceiverValue = InaccessibleImplicitReceiverValue(
|
||||||
owningClass.symbol,
|
owningClass.symbol,
|
||||||
owningClass.defaultType(),
|
owningClass.defaultType(),
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@ open class Base<T>(p: Any?) {
|
|||||||
class D: Base<Int>(1) {
|
class D: Base<Int>(1) {
|
||||||
inner class B : Base<Int> {
|
inner class B : Base<Int> {
|
||||||
constructor() : super(foo1(1))
|
constructor() : super(foo1(1))
|
||||||
constructor(x: Int) : super(this<!UNRESOLVED_LABEL!>@B<!>.foo1(1))
|
constructor(x: Int) : super(<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this@B<!>.foo1(1))
|
||||||
constructor(x: Int, y: Int) : super(this@D.foo1(1))
|
constructor(x: Int, y: Int) : super(this@D.foo1(1))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -7,6 +7,6 @@ fun Base.foo() {
|
|||||||
class B : Base {
|
class B : Base {
|
||||||
constructor() : super(foo1())
|
constructor() : super(foo1())
|
||||||
constructor(x: Int) : super(this@foo.foo1())
|
constructor(x: Int) : super(this@foo.foo1())
|
||||||
constructor(x: Int, y: Int) : super(this<!UNRESOLVED_LABEL!>@B<!>.foo1())
|
constructor(x: Int, y: Int) : super(<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this@B<!>.foo1())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -8,6 +8,6 @@ fun Base<Int>.foo() {
|
|||||||
constructor() : super(foo1(<!ARGUMENT_TYPE_MISMATCH!>""<!>))
|
constructor() : super(foo1(<!ARGUMENT_TYPE_MISMATCH!>""<!>))
|
||||||
constructor(x: Int) : super(foo1(1))
|
constructor(x: Int) : super(foo1(1))
|
||||||
constructor(x: Int, y: Int) : super(this@foo.foo1(12))
|
constructor(x: Int, y: Int) : super(this@foo.foo1(12))
|
||||||
constructor(x: Int, y: Int, z: Int) : super(this<!UNRESOLVED_LABEL!>@B<!>.foo1(""))
|
constructor(x: Int, y: Int, z: Int) : super(<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this@B<!>.foo1(""))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
@@ -9,7 +9,7 @@ class A {
|
|||||||
{
|
{
|
||||||
<!ARGUMENT_TYPE_MISMATCH, TYPE_MISMATCH!><!UNRESOLVED_REFERENCE!>foo<!>() +
|
<!ARGUMENT_TYPE_MISMATCH, TYPE_MISMATCH!><!UNRESOLVED_REFERENCE!>foo<!>() +
|
||||||
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.foo() +
|
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.foo() +
|
||||||
this<!UNRESOLVED_LABEL!>@A<!>.foo() +
|
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this@A<!>.foo() +
|
||||||
<!UNRESOLVED_REFERENCE!>foobar<!>()<!>
|
<!UNRESOLVED_REFERENCE!>foobar<!>()<!>
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ class A {
|
|||||||
fun foo() = 1
|
fun foo() = 1
|
||||||
constructor(x: Any?)
|
constructor(x: Any?)
|
||||||
constructor() : this(object {
|
constructor() : this(object {
|
||||||
fun bar() = <!UNRESOLVED_REFERENCE!>foo<!>() + this<!UNRESOLVED_LABEL!>@A<!>.foo() +
|
fun bar() = <!UNRESOLVED_REFERENCE!>foo<!>() + <!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this@A<!>.foo() +
|
||||||
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foobar<!>() + super<!UNRESOLVED_LABEL!>@A<!>.hashCode()
|
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foobar<!>() + super<!UNRESOLVED_LABEL!>@A<!>.hashCode()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ fun A.foobar() = 3
|
|||||||
class A {
|
class A {
|
||||||
fun foo() = 1
|
fun foo() = 1
|
||||||
constructor( x: Any = object {
|
constructor( x: Any = object {
|
||||||
fun bar() = <!UNRESOLVED_REFERENCE!>foo<!>() + this<!UNRESOLVED_LABEL!>@A<!>.foo() +
|
fun bar() = <!UNRESOLVED_REFERENCE!>foo<!>() + <!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this@A<!>.foo() +
|
||||||
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foobar<!>()
|
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foobar<!>()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
-8
@@ -1,8 +0,0 @@
|
|||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
|
||||||
fun foo(x: A) = 1
|
|
||||||
|
|
||||||
class A {
|
|
||||||
constructor(x: Int)
|
|
||||||
constructor(x: Int, y: Int, z: Int = x + foo(<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>) + foo(this<!UNRESOLVED_LABEL!>@A<!>)) :
|
|
||||||
this(x + foo(<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>) + foo(this<!UNRESOLVED_LABEL!>@A<!>))
|
|
||||||
}
|
|
||||||
Vendored
+1
@@ -1,3 +1,4 @@
|
|||||||
|
// FIR_IDENTICAL
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
fun foo(x: A) = 1
|
fun foo(x: A) = 1
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -10,6 +10,6 @@ class A {
|
|||||||
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.foobar() +
|
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.foobar() +
|
||||||
<!UNRESOLVED_REFERENCE!>prop<!> +
|
<!UNRESOLVED_REFERENCE!>prop<!> +
|
||||||
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.prop +
|
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this<!>.prop +
|
||||||
this<!UNRESOLVED_LABEL!>@A<!>.prop<!>
|
<!INSTANCE_ACCESS_BEFORE_SUPER_CALL!>this@A<!>.prop<!>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user