Migrate CompileKotlinAgainstKotlin test to multi-file framework
This commit is contained in:
committed by
Alexander Udalov
parent
5884d4be79
commit
cc8af573f9
@@ -1,9 +0,0 @@
|
||||
package a
|
||||
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
annotation class Ann
|
||||
|
||||
interface Tr {
|
||||
@Ann
|
||||
fun foo() {}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package a
|
||||
|
||||
object CartRoutes {
|
||||
class RemoveOrderItem()
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package library
|
||||
|
||||
public enum class EnumClass {
|
||||
ENTRY;
|
||||
|
||||
public companion object {
|
||||
public fun entry(): EnumClass = ENTRY
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import library.EnumClass
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
if (EnumClass.entry() != EnumClass.ENTRY) throw AssertionError()
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
class A {
|
||||
companion object {
|
||||
fun foo() = 42
|
||||
val bar = "OK"
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
fun main(args: Array<String>) {
|
||||
if (A.foo() != 42) throw Exception()
|
||||
if (A.bar != "OK") throw Exception()
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
class A(vararg s: String) {
|
||||
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
package aaa
|
||||
|
||||
class A(val a: Int = 1)
|
||||
@@ -1,3 +0,0 @@
|
||||
fun main(args: Array<String>) {
|
||||
aaa.A()
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package aaa
|
||||
|
||||
class A {
|
||||
class B {
|
||||
class O {
|
||||
val s = "OK"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
fun main(args: Array<String>) {
|
||||
val str = aaa.A.B.O().s
|
||||
if (str != "OK") {
|
||||
throw Exception()
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
package aaa
|
||||
|
||||
enum class E {
|
||||
TRIVIAL_ENTRY,
|
||||
SUBCLASS { }
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
//This a test for blinking bug from KT-3124
|
||||
package some
|
||||
|
||||
public object SOME_OBJECT {
|
||||
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
import constants.*
|
||||
|
||||
@AnnotationClass("$b $s $i $l $f $d $bb $c $str")
|
||||
class DummyClass()
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val klass = DummyClass::class.java
|
||||
val annotationClass = AnnotationClass::class.java
|
||||
val annotation = klass.getAnnotation(annotationClass)!!
|
||||
val value = annotation.value
|
||||
require(value == "100 20000 2000000 2000000000000 3.14 3.14 true \u03c0 :)", { "Annotation value: $value" })
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
//test for KT-3702 Inner class constructor cannot be invoked in override function with receiver
|
||||
package second
|
||||
|
||||
public class Outer() {
|
||||
inner class Inner(test: String)
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
class A {
|
||||
val OK: String = "OK"
|
||||
@JvmName("OK") get
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
fun main(args: Array<String>) {
|
||||
if (A().OK != "OK") throw java.lang.AssertionError()
|
||||
}
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
package a
|
||||
|
||||
const val i = 2
|
||||
const val s = 2.toShort()
|
||||
const val f = 2.0.toFloat()
|
||||
const val d = 2.0
|
||||
const val l = 2L
|
||||
const val b = 2.toByte()
|
||||
const val bool = true
|
||||
const val c = 'c'
|
||||
const val str = "str"
|
||||
|
||||
const val i2 = i
|
||||
const val s2 = s
|
||||
const val f2 = f
|
||||
const val d2 = d
|
||||
const val l2 = l
|
||||
const val b2 = b
|
||||
const val bool2 = bool
|
||||
const val c2 = c
|
||||
const val str2 = str
|
||||
Vendored
-6
@@ -1,6 +0,0 @@
|
||||
@file:[JvmName("Test") JvmMultifileClass]
|
||||
|
||||
val property = "K"
|
||||
|
||||
inline fun K(body: () -> String): String =
|
||||
body() + property
|
||||
Vendored
-4
@@ -1,4 +0,0 @@
|
||||
fun main(args: Array<String>) {
|
||||
val ok = K { "O" }
|
||||
if (ok != "OK") throw java.lang.AssertionError("Expected: OK, actual: $ok")
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package aaa
|
||||
|
||||
class A {
|
||||
class O {
|
||||
val s = "OK"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package aaa
|
||||
|
||||
class A {
|
||||
enum class E {
|
||||
A
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package aaa
|
||||
|
||||
class A {
|
||||
object O {
|
||||
val s = "OK"
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
import lib.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo()
|
||||
|
||||
v = 1
|
||||
println(v)
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package aaa
|
||||
|
||||
import kotlin.jvm.*
|
||||
|
||||
public object TestObject {
|
||||
|
||||
@JvmStatic
|
||||
public val test: String = "test"
|
||||
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
fun main(args: Array<String>) {
|
||||
val h = aaa.TestObject.test
|
||||
if (h != "test") {
|
||||
throw Exception()
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package test
|
||||
|
||||
import java.util.*
|
||||
|
||||
fun printStream() = System.out
|
||||
fun list() = Collections.emptyList<String>()
|
||||
fun array(a: Array<Int>) = Arrays.copyOf(a, 2)
|
||||
@@ -1,6 +0,0 @@
|
||||
package a
|
||||
|
||||
public var topLevel: Int = 42
|
||||
|
||||
public val String.extension: Long
|
||||
get() = length.toLong()
|
||||
@@ -1,9 +0,0 @@
|
||||
package a
|
||||
|
||||
interface Rec<R, out T: Rec<R, T>> {
|
||||
fun t(): T
|
||||
}
|
||||
|
||||
interface Super {
|
||||
fun foo(p: Rec<*, *>) = p.t()
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
open class A {
|
||||
val prop: String
|
||||
constructor(x1: String, x2: String = "abc") {
|
||||
prop = "$x1#$x2"
|
||||
}
|
||||
constructor(x1: Long) {
|
||||
prop = "$x1"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
package aaa
|
||||
|
||||
fun hello() = 17
|
||||
@@ -1,6 +0,0 @@
|
||||
import pkg.ClassA
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val obj = ClassA.DEFAULT
|
||||
obj.toString()
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package aaa
|
||||
|
||||
enum class E {
|
||||
TRIVIAL_ENTRY,
|
||||
SUBCLASS { };
|
||||
|
||||
class Nested {
|
||||
fun fortyTwo() = 42
|
||||
}
|
||||
}
|
||||
+15
-1
@@ -1,3 +1,17 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package a
|
||||
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
annotation class Ann
|
||||
|
||||
interface Tr {
|
||||
@Ann
|
||||
fun foo() {}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
class C : a.Tr
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
@@ -6,4 +20,4 @@ fun main(args: Array<String>) {
|
||||
if (annotations != "@a.Ann()") {
|
||||
throw AssertionError(annotations)
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
@@ -1,3 +1,13 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package a
|
||||
|
||||
object CartRoutes {
|
||||
class RemoveOrderItem()
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import a.CartRoutes
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
@@ -0,0 +1,19 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package library
|
||||
|
||||
public enum class EnumClass {
|
||||
ENTRY;
|
||||
|
||||
public companion object {
|
||||
public fun entry(): EnumClass = ENTRY
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import library.EnumClass
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
if (EnumClass.entry() != EnumClass.ENTRY) throw AssertionError()
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// FILE: A.kt
|
||||
|
||||
class A {
|
||||
companion object {
|
||||
fun foo() = 42
|
||||
val bar = "OK"
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
if (A.foo() != 42) throw Exception()
|
||||
if (A.bar != "OK") throw Exception()
|
||||
}
|
||||
+8
@@ -1,3 +1,11 @@
|
||||
// FILE: A.kt
|
||||
|
||||
class A(vararg s: String) {
|
||||
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
A()
|
||||
A("a")
|
||||
@@ -0,0 +1,11 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package aaa
|
||||
|
||||
class A(val a: Int = 1)
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
aaa.A()
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package aaa
|
||||
|
||||
class A {
|
||||
class B {
|
||||
class O {
|
||||
val s = "OK"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val str = aaa.A.B.O().s
|
||||
if (str != "OK") {
|
||||
throw Exception()
|
||||
}
|
||||
}
|
||||
+11
@@ -1,3 +1,14 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package aaa
|
||||
|
||||
enum class E {
|
||||
TRIVIAL_ENTRY,
|
||||
SUBCLASS { }
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import aaa.E
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
+11
-1
@@ -1,7 +1,17 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package some
|
||||
|
||||
public object SOME_OBJECT {
|
||||
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
//This a test for blinking bug from KT-3124
|
||||
|
||||
import some.SOME_OBJECT
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val a = SOME_OBJECT
|
||||
}
|
||||
}
|
||||
+17
@@ -1,3 +1,5 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package constants
|
||||
|
||||
public const val b: Byte = 100
|
||||
@@ -13,3 +15,18 @@ public const val str: String = ":)"
|
||||
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
public annotation class AnnotationClass(public val value: String)
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import constants.*
|
||||
|
||||
@AnnotationClass("$b $s $i $l $f $d $bb $c $str")
|
||||
class DummyClass()
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val klass = DummyClass::class.java
|
||||
val annotationClass = AnnotationClass::class.java
|
||||
val annotation = klass.getAnnotation(annotationClass)!!
|
||||
val value = annotation.value
|
||||
require(value == "100 20000 2000000 2000000000000 3.14 3.14 true \u03c0 :)", { "Annotation value: $value" })
|
||||
}
|
||||
+11
-1
@@ -1,3 +1,13 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package second
|
||||
|
||||
public class Outer() {
|
||||
inner class Inner(test: String)
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
//test for KT-3702 Inner class constructor cannot be invoked in override function with receiver
|
||||
import second.Outer
|
||||
|
||||
@@ -7,4 +17,4 @@ fun Outer.testExt() {
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
Outer().testExt()
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
open class A {
|
||||
@JvmField public val publicField = "1";
|
||||
@JvmField internal val internalField = "2";
|
||||
@JvmField protected val protectedfield = "3";
|
||||
}
|
||||
|
||||
open class B : A() {
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
open class C : B() {
|
||||
fun test(): String {
|
||||
return super.publicField + super.internalField + super.protectedfield
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
C().test()
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// FILE: A.kt
|
||||
|
||||
open class A {
|
||||
@JvmField public val publicField = "1";
|
||||
@JvmField internal val internalField = "2";
|
||||
@JvmField protected val protectedfield = "3";
|
||||
}
|
||||
|
||||
open class B : A() {
|
||||
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
open class C : B() {
|
||||
fun test(): String {
|
||||
return super.publicField + super.internalField + super.protectedfield
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
C().test()
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
open class A(@JvmField public val publicField: String = "1",
|
||||
@JvmField internal val internalField: String = "2",
|
||||
@JvmField protected val protectedfield: String = "3")
|
||||
|
||||
open class B : A()
|
||||
@@ -1,9 +0,0 @@
|
||||
open class C : B() {
|
||||
fun test(): String {
|
||||
return super.publicField + super.internalField + super.protectedfield
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
C().test()
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
// FILE: A.kt
|
||||
|
||||
open class A(@JvmField public val publicField: String = "1",
|
||||
@JvmField internal val internalField: String = "2",
|
||||
@JvmField protected val protectedfield: String = "3")
|
||||
|
||||
open class B : A()
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
open class C : B() {
|
||||
fun test(): String {
|
||||
return super.publicField + super.internalField + super.protectedfield
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
C().test()
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// FILE: A.kt
|
||||
|
||||
class A {
|
||||
val OK: String = "OK"
|
||||
@JvmName("OK") get
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
if (A().OK != "OK") throw java.lang.AssertionError()
|
||||
}
|
||||
+26
@@ -1,3 +1,29 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package a
|
||||
|
||||
const val i = 2
|
||||
const val s = 2.toShort()
|
||||
const val f = 2.0.toFloat()
|
||||
const val d = 2.0
|
||||
const val l = 2L
|
||||
const val b = 2.toByte()
|
||||
const val bool = true
|
||||
const val c = 'c'
|
||||
const val str = "str"
|
||||
|
||||
const val i2 = i
|
||||
const val s2 = s
|
||||
const val f2 = f
|
||||
const val d2 = d
|
||||
const val l2 = l
|
||||
const val b2 = b
|
||||
const val bool2 = bool
|
||||
const val c2 = c
|
||||
const val str2 = str
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import a.*
|
||||
|
||||
@Ann(i, s, f, d, l, b, bool, c, str)
|
||||
Vendored
+15
@@ -0,0 +1,15 @@
|
||||
// FILE: A.kt
|
||||
|
||||
@file:[JvmName("Test") JvmMultifileClass]
|
||||
|
||||
val property = "K"
|
||||
|
||||
inline fun K(body: () -> String): String =
|
||||
body() + property
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val ok = K { "O" }
|
||||
if (ok != "OK") throw java.lang.AssertionError("Expected: OK, actual: $ok")
|
||||
}
|
||||
+12
@@ -1,3 +1,15 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package aaa
|
||||
|
||||
class A {
|
||||
class O {
|
||||
val s = "OK"
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val str = aaa.A.O().s
|
||||
if (str != "OK") {
|
||||
+12
@@ -1,3 +1,15 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package aaa
|
||||
|
||||
class A {
|
||||
enum class E {
|
||||
A
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val str = aaa.A.E.A
|
||||
if (str.toString() != "A") {
|
||||
+12
@@ -1,3 +1,15 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package aaa
|
||||
|
||||
class A {
|
||||
object O {
|
||||
val s = "OK"
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val str = aaa.A.O.s
|
||||
if (str != "OK") {
|
||||
+13
@@ -1,3 +1,5 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package lib
|
||||
|
||||
@JvmName("bar")
|
||||
@@ -8,3 +10,14 @@ var v: Int = 1
|
||||
get
|
||||
@JvmName("vset")
|
||||
set
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import lib.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo()
|
||||
|
||||
v = 1
|
||||
println(v)
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package aaa
|
||||
|
||||
import kotlin.jvm.*
|
||||
|
||||
public object TestObject {
|
||||
|
||||
@JvmStatic
|
||||
public val test: String = "test"
|
||||
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val h = aaa.TestObject.test
|
||||
if (h != "test") {
|
||||
throw Exception()
|
||||
}
|
||||
}
|
||||
+13
-1
@@ -1,3 +1,15 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package test
|
||||
|
||||
import java.util.*
|
||||
|
||||
fun printStream() = System.out
|
||||
fun list() = Collections.emptyList<String>()
|
||||
fun array(a: Array<Int>) = Arrays.copyOf(a, 2)
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import java.io.PrintStream
|
||||
import java.util.ArrayList
|
||||
import test.*
|
||||
@@ -19,4 +31,4 @@ fun main(args: Array<String>) {
|
||||
a[0] = 1
|
||||
val a1: Inv<Array<Int>> = inv(a)
|
||||
val a2: Inv<Array<out Int>?> = inv(a)
|
||||
}
|
||||
}
|
||||
+11
@@ -1,3 +1,14 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package a
|
||||
|
||||
public var topLevel: Int = 42
|
||||
|
||||
public val String.extension: Long
|
||||
get() = length.toLong()
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import a.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
+15
-1
@@ -1,3 +1,17 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package a
|
||||
|
||||
interface Rec<R, out T: Rec<R, T>> {
|
||||
fun t(): T
|
||||
}
|
||||
|
||||
interface Super {
|
||||
fun foo(p: Rec<*, *>) = p.t()
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import a.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
@@ -8,4 +22,4 @@ fun main(args: Array<String>) {
|
||||
|
||||
fun test(s: Super, p: Rec<*, *>) {
|
||||
s.foo(p).t().t().t()
|
||||
}
|
||||
}
|
||||
+13
@@ -1,3 +1,16 @@
|
||||
// FILE: A.kt
|
||||
|
||||
open class A {
|
||||
val prop: String
|
||||
constructor(x1: String, x2: String = "abc") {
|
||||
prop = "$x1#$x2"
|
||||
}
|
||||
constructor(x1: Long) {
|
||||
prop = "$x1"
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
class B1() : A("123") {
|
||||
constructor(x1: Int): this() {}
|
||||
+8
@@ -1,3 +1,11 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package aaa
|
||||
|
||||
fun hello() = 17
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val h = aaa.hello()
|
||||
if (h != 17) {
|
||||
+11
@@ -1,3 +1,5 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package pkg
|
||||
|
||||
interface ClassA {
|
||||
@@ -7,3 +9,12 @@ interface ClassA {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import pkg.ClassA
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val obj = ClassA.DEFAULT
|
||||
obj.toString()
|
||||
}
|
||||
+15
@@ -1,3 +1,18 @@
|
||||
// FILE: A.kt
|
||||
|
||||
package aaa
|
||||
|
||||
enum class E {
|
||||
TRIVIAL_ENTRY,
|
||||
SUBCLASS { };
|
||||
|
||||
class Nested {
|
||||
fun fortyTwo() = 42
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import aaa.E.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
Reference in New Issue
Block a user