Secondary constructors delegation calls and body resolve
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
class A<T> {
|
||||
constructor(x: T) {}
|
||||
<caret>constructor(block: () -> T): this(block()) {}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
class A<T> {
|
||||
constructor(x: T) {}
|
||||
<caret>constructor(block: () -> T): this(block()) {}
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Candidate descriptor: constructor A<T>(x: T) defined in A
|
||||
Resulting descriptor: constructor A<T>(x: T) defined in A
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
|
||||
Value arguments mapping:
|
||||
|
||||
SUCCESS x : T = block()
|
||||
@@ -0,0 +1,7 @@
|
||||
open class B<T> {
|
||||
constructor(x: T = null!!) {}
|
||||
}
|
||||
|
||||
class A : B<Int> {
|
||||
<caret>constructor() {}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
open class B<T> {
|
||||
constructor(x: T = null!!) {}
|
||||
}
|
||||
|
||||
class A : B<Int> {
|
||||
<caret>constructor() {}
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Candidate descriptor: constructor B<T>(x: T = ...) defined in B
|
||||
Resulting descriptor: constructor B<T>(x: Int = ...) defined in B
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
@@ -0,0 +1,5 @@
|
||||
class A {
|
||||
inner class B(arg: String) {
|
||||
<caret>constructor (arg: Int): this("") {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
class A {
|
||||
inner class B(arg: String) {
|
||||
<caret>constructor (arg: Int): this("") {}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor B(arg: String) defined in A.B
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = Class{A}
|
||||
Extension receiver = NO_RECEIVER
|
||||
|
||||
Value arguments mapping:
|
||||
|
||||
SUCCESS arg : String = ""
|
||||
@@ -0,0 +1,6 @@
|
||||
class A {
|
||||
inner class B {
|
||||
constructor(x: String) {}
|
||||
<caret>constructor (arg: Int): this("") {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
class A {
|
||||
inner class B {
|
||||
constructor(x: String) {}
|
||||
<caret>constructor (arg: Int): this("") {}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor B(x: String) defined in A.B
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = Class{A}
|
||||
Extension receiver = NO_RECEIVER
|
||||
|
||||
Value arguments mapping:
|
||||
|
||||
SUCCESS x : String = ""
|
||||
@@ -0,0 +1,3 @@
|
||||
class A {
|
||||
<caret>constructor(): super() { }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
class A {
|
||||
<caret>constructor(): super() { }
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor Any() defined in kotlin.Any
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
@@ -0,0 +1,3 @@
|
||||
class A {
|
||||
<caret>constructor() { }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
class A {
|
||||
<caret>constructor() { }
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor Any() defined in kotlin.Any
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
@@ -0,0 +1,5 @@
|
||||
open class B(x: Int)
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor(): super(1) { }
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
open class B(x: Int)
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor(): super(1) { }
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor B(x: Int) defined in B
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
|
||||
Value arguments mapping:
|
||||
|
||||
SUCCESS x : Int = 1
|
||||
@@ -0,0 +1,5 @@
|
||||
open class B
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor(): super() { }
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
open class B
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor(): super() { }
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor B() defined in B
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
@@ -0,0 +1,5 @@
|
||||
open class B
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor() { }
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
open class B
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor() { }
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor B() defined in B
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
@@ -0,0 +1,7 @@
|
||||
open class B {
|
||||
constructor(x: Int) {}
|
||||
}
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor(): super(1) { }
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
open class B {
|
||||
constructor(x: Int) {}
|
||||
}
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor(): super(1) { }
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor B(x: Int) defined in B
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
|
||||
Value arguments mapping:
|
||||
|
||||
SUCCESS x : Int = 1
|
||||
@@ -0,0 +1,7 @@
|
||||
open class B {
|
||||
constructor() {}
|
||||
}
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor() { }
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
open class B {
|
||||
constructor() {}
|
||||
}
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor() { }
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor B() defined in B
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
@@ -0,0 +1,8 @@
|
||||
open class B(x: Double) {
|
||||
constructor(x: Int) {}
|
||||
constructor(x: String) {}
|
||||
}
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor(): super("abc") { }
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
open class B(x: Double) {
|
||||
constructor(x: Int) {}
|
||||
constructor(x: String) {}
|
||||
}
|
||||
trait C
|
||||
class A : B, C {
|
||||
<caret>constructor(): super("abc") { }
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor B(x: String) defined in B
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
|
||||
Value arguments mapping:
|
||||
|
||||
SUCCESS x : String = "abc"
|
||||
@@ -0,0 +1,3 @@
|
||||
class A(x: Int) {
|
||||
<caret>constructor(): this(1) {}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
class A(x: Int) {
|
||||
<caret>constructor(): this(1) {}
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor A(x: Int) defined in A
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
|
||||
Value arguments mapping:
|
||||
|
||||
SUCCESS x : Int = 1
|
||||
@@ -0,0 +1,3 @@
|
||||
class A() {
|
||||
<caret>constructor(): this() {}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
class A() {
|
||||
<caret>constructor(): this() {}
|
||||
}
|
||||
|
||||
|
||||
null
|
||||
@@ -0,0 +1,4 @@
|
||||
class A {
|
||||
constructor(x: Int) {}
|
||||
<caret>constructor(): this(1) {}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
class A {
|
||||
constructor(x: Int) {}
|
||||
<caret>constructor(): this(1) {}
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor A(x: Int) defined in A
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
|
||||
Value arguments mapping:
|
||||
|
||||
SUCCESS x : Int = 1
|
||||
@@ -0,0 +1,5 @@
|
||||
class A(x: Double) {
|
||||
constructor(x: Int) {}
|
||||
constructor(x: String) {}
|
||||
<caret>constructor(): this("abc") {}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
class A(x: Double) {
|
||||
constructor(x: Int) {}
|
||||
constructor(x: String) {}
|
||||
<caret>constructor(): this("abc") {}
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor A(x: String) defined in A
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
|
||||
Value arguments mapping:
|
||||
|
||||
SUCCESS x : String = "abc"
|
||||
@@ -0,0 +1,7 @@
|
||||
open class B {
|
||||
constructor(vararg x: Int) {}
|
||||
}
|
||||
|
||||
class A : B {
|
||||
<caret>constructor(vararg x: Int): super(*x, *intArray(1, 2, 3), 4) {}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
open class B {
|
||||
constructor(vararg x: Int) {}
|
||||
}
|
||||
|
||||
class A : B {
|
||||
<caret>constructor(vararg x: Int): super(*x, *intArray(1, 2, 3), 4) {}
|
||||
}
|
||||
|
||||
|
||||
Resolved call:
|
||||
|
||||
Resulting descriptor: constructor B(vararg x: Int) defined in B
|
||||
|
||||
Explicit receiver kind = NO_EXPLICIT_RECEIVER
|
||||
Dispatch receiver = NO_RECEIVER
|
||||
Extension receiver = NO_RECEIVER
|
||||
|
||||
Value arguments mapping:
|
||||
|
||||
SUCCESS x : IntArray = x
|
||||
SUCCESS x : IntArray = intArray(1, 2, 3)
|
||||
SUCCESS x : IntArray = 4
|
||||
Reference in New Issue
Block a user