/* * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package test.utils import kotlin.test.* private class TopLevel private fun Any.toStringWithoutHashCode(): String { val string = toString() assertEquals(1, string.count { it == '@' }, "Invalid toString() value: $string") return string.substringBefore('@') } class AnyTest { @Test fun testToString() { assertEquals("test.utils.TopLevel", TopLevel().toStringWithoutHashCode()) class Local1 assertEquals("test.utils.AnyTest\$testToString\$Local1", Local1().toStringWithoutHashCode()) assertEquals("test.utils.AnyTest\$testToString\$1", object {}.toStringWithoutHashCode()) fun localFun() { class Local2 assertEquals("test.utils.AnyTest\$testToString\$localFun\$Local2", Local2().toStringWithoutHashCode()) assertEquals("test.utils.AnyTest\$testToString\$localFun\$1", object {}.toStringWithoutHashCode()) } localFun() } }