| fun useUnit(fn: () -> Unit) { | |
| fn.invoke() | |
| } | |
| var cInit = false | |
| class C { | |
| init { | |
| cInit = true | |
| } | |
| } | |
| var cWithDefaultInit = false | |
| class CWithDefault(x: Int = 1) { | |
| init { | |
| cWithDefaultInit = true | |
| } | |
| } | |
| var cWithVarargInit = false | |
| class CWithVararg(vararg x: Int) { | |
| init { | |
| cWithVarargInit = true | |
| } | |
| } | |
| fun box(): String { | |
| useUnit(::C) | |
| if (!cInit) throw AssertionError("cInit") | |
| useUnit(::CWithDefault) | |
| if (!cWithDefaultInit) throw AssertionError("cWithDefaultInit") | |
| useUnit(::CWithVararg) | |
| if (!cWithVarargInit) throw AssertionError("cWithVarargInit") | |
| return "OK" | |
| } |