import Kt private func testObject() throws { let object = KT43780TestObject.shared try assertEquals(actual: object.x, expected: 5) try assertEquals(actual: object.y, expected: 6) try assertEquals(actual: object.shared, expected: "shared") try assertEquals(actual: object.Shared, expected: "Shared") try assertTrue(object === KT43780TestObject()) } private func testCompanionObject() throws { let object = KT43780TestClassWithCompanion.companion try assertEquals(actual: object.z, expected: 7) try assertTrue(object === KT43780TestClassWithCompanion.Companion()) try assertTrue(object === KT43780TestClassWithCompanion.Companion.shared) } private func testNameClash() throws { let object = Shared.shared try assertEquals(actual: object.x, expected: 8) try assertTrue(object === Shared()) let object2 = Companion.companion try assertEquals(actual: object2.x, expected: 9) try assertTrue(object2 === Companion.Companion()) let object3 = Companion() try assertEquals(actual: object3.t, expected: 10) let object4 = Companion() try assertEquals(actual: object4.t, expected: 10) try assertTrue(object3 !== object4) let object5 = KT43780Enum.Companion() try assertEquals(actual: object5.x, expected: 11) try assertTrue(object5 === KT43780Enum.Companion()) let enumEntry : KT43780Enum = KT43780Enum.companion try assertEquals(actual: enumEntry.name, expected: "COMPANION") try assertEquals(actual: KT43780Enum.otherEntry.name, expected: "OTHER_ENTRY") } // Reported as https://youtrack.jetbrains.com/issue/KT-47462 private func testUnexposedCompanion() throws { // Just trying to ensure that the classes are accessible: try assertEquals(actual: 13, expected: ClassWithInternalCompanion().y) try assertEquals(actual: 15, expected: ClassWithPrivateCompanion().y) // and this doesn't make the companions accessible as well. } class Kt43780Tests : SimpleTestProvider { override init() { super.init() test("testObject", testObject) test("testCompanionObject", testCompanionObject) test("testNameClash", testNameClash) test("testUnexposedCompanion", testUnexposedCompanion) } }