52 lines
1.3 KiB
Kotlin
Vendored
52 lines
1.3 KiB
Kotlin
Vendored
// LANGUAGE: +DataObjects
|
|
// WITH_STDLIB
|
|
|
|
package com.example
|
|
|
|
import kotlin.test.*
|
|
|
|
data object DataObject {
|
|
data object Nested
|
|
}
|
|
|
|
class Foo {
|
|
data object Inner
|
|
}
|
|
|
|
data object Declared {
|
|
override fun toString() = "Overriden"
|
|
}
|
|
|
|
open class WithFinalToString {
|
|
final override fun toString() = "FinalToString"
|
|
}
|
|
|
|
data object InheritedFromClassWithFinalToString: WithFinalToString()
|
|
|
|
open class WithOpenToString {
|
|
override fun toString() = "OpenToString"
|
|
}
|
|
|
|
data object InheritedFromClassWithOpenToString: WithOpenToString()
|
|
|
|
abstract class WithAbstractToString {
|
|
abstract override fun toString(): String
|
|
}
|
|
|
|
data object InheritedFromClassWithAbstractToString : WithAbstractToString()
|
|
|
|
class C {
|
|
companion object CC
|
|
}
|
|
|
|
fun box(): String {
|
|
assertEquals("DataObject", DataObject.toString())
|
|
assertEquals("Nested", DataObject.Nested.toString())
|
|
assertEquals("Inner", Foo.Inner.toString())
|
|
assertEquals("Overriden", Declared.toString())
|
|
assertEquals("FinalToString", InheritedFromClassWithFinalToString.toString())
|
|
assertEquals("InheritedFromClassWithOpenToString", InheritedFromClassWithOpenToString.toString())
|
|
assertEquals("InheritedFromClassWithAbstractToString", InheritedFromClassWithAbstractToString.toString())
|
|
|
|
return "OK"
|
|
} |