Don't allow to use own members when resolve super constructor call in (companion) object

This commit is contained in:
Zalim Bashorov
2015-12-14 18:45:17 +03:00
parent e9ea4cc953
commit 69c2668530
6 changed files with 114 additions and 1 deletions
@@ -0,0 +1,19 @@
open class S(val a: Any, val b: Any, val c: Any) {}
interface A {
companion object : S(<!UNRESOLVED_REFERENCE!>prop1<!>, <!UNRESOLVED_REFERENCE!>prop2<!>, <!UNRESOLVED_REFERENCE!>func<!>()) {
val prop1 = 1
val prop2: Int
get() = 1
fun func() {}
}
}
class B {
companion object : S(<!UNRESOLVED_REFERENCE!>prop1<!>, <!UNRESOLVED_REFERENCE!>prop2<!>, <!UNRESOLVED_REFERENCE!>func<!>()) {
val prop1 = 1
val prop2: Int
get() = 1
fun func() {}
}
}
@@ -0,0 +1,50 @@
package
public interface 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
public companion object Companion : S {
private constructor Companion()
public final override /*1*/ /*fake_override*/ val a: kotlin.Any
public final override /*1*/ /*fake_override*/ val b: kotlin.Any
public final override /*1*/ /*fake_override*/ val c: kotlin.Any
public final val prop1: kotlin.Int = 1
public final val prop2: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun func(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class B {
public constructor B()
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
public companion object Companion : S {
private constructor Companion()
public final override /*1*/ /*fake_override*/ val a: kotlin.Any
public final override /*1*/ /*fake_override*/ val b: kotlin.Any
public final override /*1*/ /*fake_override*/ val c: kotlin.Any
public final val prop1: kotlin.Int = 1
public final val prop2: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun func(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public open class S {
public constructor S(/*0*/ a: kotlin.Any, /*1*/ b: kotlin.Any, /*2*/ c: kotlin.Any)
public final val a: kotlin.Any
public final val b: kotlin.Any
public final val c: kotlin.Any
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
}
@@ -0,0 +1,8 @@
open class S(val a: Any, val b: Any, val c: Any) {}
object A : S(<!UNRESOLVED_REFERENCE!>prop1<!>, <!UNRESOLVED_REFERENCE!>prop2<!>, <!UNRESOLVED_REFERENCE!>func<!>()) {
val prop1 = 1
val prop2: Int
get() = 1
fun func() {}
}
@@ -0,0 +1,24 @@
package
public object A : S {
private constructor A()
public final override /*1*/ /*fake_override*/ val a: kotlin.Any
public final override /*1*/ /*fake_override*/ val b: kotlin.Any
public final override /*1*/ /*fake_override*/ val c: kotlin.Any
public final val prop1: kotlin.Int = 1
public final val prop2: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun func(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public open class S {
public constructor S(/*0*/ a: kotlin.Any, /*1*/ b: kotlin.Any, /*2*/ c: kotlin.Any)
public final val a: kotlin.Any
public final val b: kotlin.Any
public final val c: kotlin.Any
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
}