Resolve constructors declared in traits and objects

It prevents exceptions and produces less red code

 #EA-68667 Fixed
This commit is contained in:
Denis Zharkov
2015-05-29 15:58:08 +03:00
parent 7f9d2e8a36
commit 70dbbd8fda
23 changed files with 179 additions and 31 deletions
+35
View File
@@ -0,0 +1,35 @@
object A1() {
constructor(x: Int = "", y: Int) : this() {
x + y
}
}
object A2 public constructor(private val prop: Int) {
constructor(x: Int = "", y: Int) : this(x * y) {
x + y
}
}
class A3 {
companion object B(val prop: Int) {
public constructor() : this(2)
}
}
//internal object A1 defined in root package
//private constructor A1() defined in A1
//private constructor A1(x: kotlin.Int = ..., y: kotlin.Int) defined in A1
//value-parameter val x: kotlin.Int = ... defined in A1.<init>
//value-parameter val y: kotlin.Int defined in A1.<init>
//internal object A2 defined in root package
//public constructor A2(prop: kotlin.Int) defined in A2
//value-parameter val prop: kotlin.Int defined in A2.<init>
//private constructor A2(x: kotlin.Int = ..., y: kotlin.Int) defined in A2
//value-parameter val x: kotlin.Int = ... defined in A2.<init>
//value-parameter val y: kotlin.Int defined in A2.<init>
//internal final class A3 defined in root package
//public constructor A3() defined in A3
//internal companion object defined in A3
//private constructor B(prop: kotlin.Int) defined in A3.B
//value-parameter val prop: kotlin.Int defined in A3.B.<init>
//public constructor B() defined in A3.B