diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/name/classAndTypealias.kt b/compiler/testData/diagnostics/testsWithJsStdLib/name/classAndTypealias.kt new file mode 100644 index 00000000000..1cd013c422e --- /dev/null +++ b/compiler/testData/diagnostics/testsWithJsStdLib/name/classAndTypealias.kt @@ -0,0 +1,5 @@ +package foo + +@JsName("B") class A(val x: Int) + +typealias B = A \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/name/classAndTypealias.txt b/compiler/testData/diagnostics/testsWithJsStdLib/name/classAndTypealias.txt new file mode 100644 index 00000000000..3453c4e5209 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithJsStdLib/name/classAndTypealias.txt @@ -0,0 +1,13 @@ +package + +package foo { + + @kotlin.js.JsName(name = "B") public final class A { + public constructor A(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + public typealias B = foo.A +} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibGenerated.java index abcc2e88868..7c1cfb84277 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibGenerated.java @@ -301,6 +301,12 @@ public class DiagnosticsTestWithJsStdLibGenerated extends AbstractDiagnosticsTes doTest(fileName); } + @TestMetadata("classAndTypealias.kt") + public void testClassAndTypealias() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJsStdLib/name/classAndTypealias.kt"); + doTest(fileName); + } + @TestMetadata("classLevelMethodAndProperty.kt") public void testClassLevelMethodAndProperty() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJsStdLib/name/classLevelMethodAndProperty.kt"); diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.kt index b1c7262c66c..d4e88233769 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.kt @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.resolve.constants.EnumValue import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.checker.KotlinTypeChecker import org.jetbrains.kotlin.types.typeUtil.isAnyOrNullableAny +import org.jetbrains.kotlin.types.typeUtil.makeNullable import org.jetbrains.kotlin.utils.DFS import org.jetbrains.kotlin.utils.SmartList import org.jetbrains.kotlin.utils.addToStdlib.check @@ -324,7 +325,7 @@ private fun ClassDescriptor.getAllSuperClassesTypesIncludeItself(): List return suggest(descriptor.getReferencedDescriptor()) + is FakeCallableDescriptorForObject -> return suggest(descriptor.getReferencedObject()) // For primary constructors and constructors of native classes we generate references to containing classes is ConstructorDescriptor -> { diff --git a/js/js.translator/testData/wrong/examples/classObjectInterface.kt b/js/js.translator/testData/wrong/examples/classObjectInterface.kt deleted file mode 100644 index e0bf5e9269e..00000000000 --- a/js/js.translator/testData/wrong/examples/classObjectInterface.kt +++ /dev/null @@ -1,10 +0,0 @@ -class C() { - fun getInstance(): Runnable = C - - companion object: Runnable { - override fun run(): Unit { - } - } -} - -fun foo() = C().getInstance() diff --git a/js/js.translator/testData/wrong/examples/exceptionConstructor.kt b/js/js.translator/testData/wrong/examples/exceptionConstructor.kt deleted file mode 100644 index 69b4871de72..00000000000 --- a/js/js.translator/testData/wrong/examples/exceptionConstructor.kt +++ /dev/null @@ -1,7 +0,0 @@ -class GameError(msg: String) : Exception(msg) { -} - -fun box(): String { - val e = GameError("foo") - return if (e.getMessage() == "foo") "OK" else "fail" -} diff --git a/js/js.translator/testData/wrong/examples/forwardTypeParameter.kt b/js/js.translator/testData/wrong/examples/forwardTypeParameter.kt deleted file mode 100644 index 554373f43fa..00000000000 --- a/js/js.translator/testData/wrong/examples/forwardTypeParameter.kt +++ /dev/null @@ -1,14 +0,0 @@ -class Foo() { -} -class Bar() { -} - -fun isInstance(obj: Any?) = obj is T - -fun isInstance2(obj: Any?) = isInstance(obj) - -fun box(): String { - if (!isInstance2(Foo())) return "fail 1" - if (isInstance2(Foo())) return "fail 2" - return "OK" -} diff --git a/js/js.translator/testData/wrong/standardClasses/arrayThrowsExceptionOnOOBaccess.kt b/js/js.translator/testData/wrong/standardClasses/arrayThrowsExceptionOnOOBaccess.kt deleted file mode 100644 index 9456c20ae2a..00000000000 --- a/js/js.translator/testData/wrong/standardClasses/arrayThrowsExceptionOnOOBaccess.kt +++ /dev/null @@ -1,9 +0,0 @@ -package foo - -class A() { -} - -val a1 = Array(3) -val a2 = Array(2) - -fun box() = if (a1[4] == null) "OK" else "fail" \ No newline at end of file diff --git a/js/js.translator/testData/wrong/standardClasses/throwableImpl.kt b/js/js.translator/testData/wrong/standardClasses/throwableImpl.kt deleted file mode 100644 index 0549f893f27..00000000000 --- a/js/js.translator/testData/wrong/standardClasses/throwableImpl.kt +++ /dev/null @@ -1,23 +0,0 @@ -package foo - -class MyThrowable(message: String? = null) : Exception(message) { - - override val message: String? - get() = "My message: " + super.message - - override val cause: Throwable? - get() = super.cause ?: this - -} - -fun box(): String { - try { - throw MyThrowable("test") - } catch (t: MyThrowable) { - if (t.cause != t) return "fail t.cause" - if (t.message != "My message: test") return "fail t.message" - return "OK" - } - - return "fail: MyThrowable wasn't catched." -}