| // 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" | |
| } |