diff --git a/compiler/testData/codegen/box/classes/kt2288.kt b/compiler/testData/codegen/box/classes/kt2288.kt index 5aa04a53b0a..cbd3385265b 100644 --- a/compiler/testData/codegen/box/classes/kt2288.kt +++ b/compiler/testData/codegen/box/classes/kt2288.kt @@ -1,6 +1,6 @@ public open class Test(): java.util.RandomAccess, Cloneable, java.io.Serializable { - public override fun clone(): Test = Test() // Override 'clone()' with more precise type 'Test' + public fun clone(): Test = Test() // Override 'clone()' with more precise type 'Test' public override fun toString() = "OK" } diff --git a/compiler/testData/codegen/box/samConstructors/sameWrapperClass.kt b/compiler/testData/codegen/box/samConstructors/sameWrapperClass.kt index aa83e109082..701e90d790f 100644 --- a/compiler/testData/codegen/box/samConstructors/sameWrapperClass.kt +++ b/compiler/testData/codegen/box/samConstructors/sameWrapperClass.kt @@ -1,7 +1,7 @@ fun box(): String { val f = { } - val class1 = Runnable(f).getClass() - val class2 = Runnable(f).getClass() + val class1 = (Runnable(f) as Object).getClass() + val class2 = (Runnable(f) as Object).getClass() return if (class1 == class2) "OK" else "$class1 $class2" -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/boxAgainstJava/sam/differentFqNames.kt b/compiler/testData/codegen/boxAgainstJava/sam/differentFqNames.kt index ffc5045d17d..4b842c14421 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/differentFqNames.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/differentFqNames.kt @@ -1,7 +1,7 @@ fun box(): String { val f = { } - val class1 = Runnable(f).getClass() - val class2 = Custom.Runnable(f).getClass() + val class1 = Runnable(f).javaClass + val class2 = Custom.Runnable(f).javaClass return if (class1 != class2) "OK" else "Same class: $class1" } \ No newline at end of file diff --git a/compiler/testData/codegen/boxAgainstJava/sam/samConstructorGenericSignature.kt b/compiler/testData/codegen/boxAgainstJava/sam/samConstructorGenericSignature.kt index 32913f5dbdf..ad77cf52cf5 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/samConstructorGenericSignature.kt +++ b/compiler/testData/codegen/boxAgainstJava/sam/samConstructorGenericSignature.kt @@ -2,7 +2,7 @@ import java.util.Arrays fun box(): String { val r: JavaClass.Computable = JavaClass.Computable { "OK" } - val supertypes = Arrays.toString(r.getClass().getGenericInterfaces()) + val supertypes = Arrays.toString(r.javaClass.getGenericInterfaces()) if (supertypes != "[JavaClass.JavaClass\$Computable]") return "Fail: $supertypes" return JavaClass.compute(r)!! } diff --git a/compiler/testData/codegen/boxMultiFile/samWrappersDifferentFiles/box.kt b/compiler/testData/codegen/boxMultiFile/samWrappersDifferentFiles/box.kt index 86dca7f11b8..b7342e79fba 100644 --- a/compiler/testData/codegen/boxMultiFile/samWrappersDifferentFiles/box.kt +++ b/compiler/testData/codegen/boxMultiFile/samWrappersDifferentFiles/box.kt @@ -1,6 +1,6 @@ fun box(): String { - val class1 = getWrapped1().getClass() - val class2 = getWrapped2().getClass() + val class1 = getWrapped1().javaClass + val class2 = getWrapped2().javaClass return if (class1 != class2) "OK" else "Same class: $class1" -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/boxWithStdlib/dataClasses/kt5002.kt b/compiler/testData/codegen/boxWithStdlib/dataClasses/kt5002.kt new file mode 100644 index 00000000000..c67a3c2e32c --- /dev/null +++ b/compiler/testData/codegen/boxWithStdlib/dataClasses/kt5002.kt @@ -0,0 +1,15 @@ +import java.io.Serializable + +public data class Pair ( + public val first: A, + public val second: B +) : Serializable + +fun box(): String { + val p = Pair(42, "OK") + val q = Pair(42, "OK") + if (p != q) return "Fail equals" + if (p.hashCode() != q.hashCode()) return "Fail hashCode" + if (p.toString() != q.toString()) return "Fail toString" + return p.second +} diff --git a/compiler/testData/diagnostics/tests/j+k/SupertypeArgumentsNullability-UserTypes.kt b/compiler/testData/diagnostics/tests/j+k/SupertypeArgumentsNullability-UserTypes.kt index 458cec1a151..302ed529f1f 100644 --- a/compiler/testData/diagnostics/tests/j+k/SupertypeArgumentsNullability-UserTypes.kt +++ b/compiler/testData/diagnostics/tests/j+k/SupertypeArgumentsNullability-UserTypes.kt @@ -15,7 +15,6 @@ public class Y extends X { // FILE: test.kt fun main() { - Y().foo().wait() + Y().foo().hashCode() Y().bar(null) } - diff --git a/compiler/testData/loadJava/compiledJavaIncludeObjectMethods/ClassWithObjectMethod.txt b/compiler/testData/loadJava/compiledJavaIncludeObjectMethods/ClassWithObjectMethod.txt index 0927dce7963..d83e51668c1 100644 --- a/compiler/testData/loadJava/compiledJavaIncludeObjectMethods/ClassWithObjectMethod.txt +++ b/compiler/testData/loadJava/compiledJavaIncludeObjectMethods/ClassWithObjectMethod.txt @@ -1,16 +1,8 @@ package test -public final class ClassWithObjectMethod : java.lang.Object { +public final class ClassWithObjectMethod { public constructor ClassWithObjectMethod() - protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun finalize(): kotlin.Unit - public final override /*1*/ /*fake_override*/ fun getClass(): java.lang.Class public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public final override /*1*/ /*fake_override*/ fun notify(): kotlin.Unit - public final override /*1*/ /*fake_override*/ fun notifyAll(): kotlin.Unit public open override /*1*/ fun toString(): kotlin.String - public final override /*1*/ /*fake_override*/ fun wait(): kotlin.Unit - public final override /*1*/ /*fake_override*/ fun wait(/*0*/ p0: kotlin.Long): kotlin.Unit - public final override /*1*/ /*fake_override*/ fun wait(/*0*/ p0: kotlin.Long, /*1*/ p1: kotlin.Int): kotlin.Unit } diff --git a/compiler/testData/loadJava/compiledJavaIncludeObjectMethods/InterfaceWithObjectMethods.txt b/compiler/testData/loadJava/compiledJavaIncludeObjectMethods/InterfaceWithObjectMethods.txt index 6b734bbb10b..3ad611488f4 100644 --- a/compiler/testData/loadJava/compiledJavaIncludeObjectMethods/InterfaceWithObjectMethods.txt +++ b/compiler/testData/loadJava/compiledJavaIncludeObjectMethods/InterfaceWithObjectMethods.txt @@ -1,15 +1,9 @@ package test -public trait InterfaceWithObjectMethods : java.lang.Object { - public abstract override /*1*/ fun clone(): kotlin.Any +public trait InterfaceWithObjectMethods { + public abstract fun clone(): kotlin.Any? public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public abstract override /*1*/ fun finalize(): kotlin.Unit - public final override /*1*/ /*fake_override*/ fun getClass(): java.lang.Class + public abstract fun finalize(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public final override /*1*/ /*fake_override*/ fun notify(): kotlin.Unit - public final override /*1*/ /*fake_override*/ fun notifyAll(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final override /*1*/ /*fake_override*/ fun wait(): kotlin.Unit - public final override /*1*/ /*fake_override*/ fun wait(/*0*/ p0: kotlin.Long): kotlin.Unit - public final override /*1*/ /*fake_override*/ fun wait(/*0*/ p0: kotlin.Long, /*1*/ p1: kotlin.Int): kotlin.Unit } diff --git a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritAmbguousSamAdaptersInKotlin.txt b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritAmbguousSamAdaptersInKotlin.txt index 9983d4574b4..e75cabb98ad 100644 --- a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritAmbguousSamAdaptersInKotlin.txt +++ b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritAmbguousSamAdaptersInKotlin.txt @@ -8,7 +8,7 @@ public final class Sub : test.Super { public/*package*/ open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: java.lang.Runnable?): kotlin.Unit } -public open class Super : java.lang.Object { +public open class Super { public constructor Super() public/*package*/ final /*synthesized*/ fun foo(/*0*/ r: (() -> kotlin.Unit)?): kotlin.Unit public/*package*/ final /*synthesized*/ fun foo(/*0*/ r: (() -> kotlin.Unit)?): kotlin.Unit diff --git a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritSamAdapterInKotlin.txt b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritSamAdapterInKotlin.txt index 9d547874231..607652ee0df 100644 --- a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritSamAdapterInKotlin.txt +++ b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritSamAdapterInKotlin.txt @@ -6,7 +6,7 @@ public final class Sub : test.Super { public/*package*/ open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: java.lang.Runnable?): kotlin.Unit } -public open class Super : java.lang.Object { +public open class Super { public constructor Super() public/*package*/ final /*synthesized*/ fun foo(/*0*/ r: (() -> kotlin.Unit)?): kotlin.Unit public/*package*/ open fun foo(/*0*/ r: java.lang.Runnable?): kotlin.Unit diff --git a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/OverrideSamAdapterInKotlin.txt b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/OverrideSamAdapterInKotlin.txt index 60655f90690..18d14397e62 100644 --- a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/OverrideSamAdapterInKotlin.txt +++ b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/OverrideSamAdapterInKotlin.txt @@ -6,7 +6,7 @@ public final class Sub : test.Super { public/*package*/ open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: java.lang.Runnable?): kotlin.Unit } -public open class Super : java.lang.Object { +public open class Super { public constructor Super() public/*package*/ final /*synthesized*/ fun foo(/*0*/ r: (() -> kotlin.Unit)?): kotlin.Unit public/*package*/ open fun foo(/*0*/ r: java.lang.Runnable?): kotlin.Unit diff --git a/compiler/testData/loadJava/javaAgainstKotlin/visibility/PackageLocal.txt b/compiler/testData/loadJava/javaAgainstKotlin/visibility/PackageLocal.txt index db104137e66..d9be56d0153 100644 --- a/compiler/testData/loadJava/javaAgainstKotlin/visibility/PackageLocal.txt +++ b/compiler/testData/loadJava/javaAgainstKotlin/visibility/PackageLocal.txt @@ -1,6 +1,6 @@ package test -public open class Base : java.lang.Object { +public open class Base { public constructor Base() public/*package*/ open fun foo(): kotlin.Unit } diff --git a/compiler/testData/loadJava/javaAgainstKotlin/visibility/ProtectedPackage.txt b/compiler/testData/loadJava/javaAgainstKotlin/visibility/ProtectedPackage.txt index c998a584332..28193bdb2f0 100644 --- a/compiler/testData/loadJava/javaAgainstKotlin/visibility/ProtectedPackage.txt +++ b/compiler/testData/loadJava/javaAgainstKotlin/visibility/ProtectedPackage.txt @@ -1,6 +1,6 @@ package test -public open class Base : java.lang.Object { +public open class Base { public constructor Base() protected/*protected and package*/ open fun foo(): kotlin.Unit } diff --git a/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/InheritJavaField.txt b/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/InheritJavaField.txt index 25d9f3762b8..5c46ad9f261 100644 --- a/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/InheritJavaField.txt +++ b/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/InheritJavaField.txt @@ -7,7 +7,7 @@ public final class InheritJavaField : test.Super { public open override /*1*/ /*fake_override*/ fun method(): kotlin.Int } -public open class Super : java.lang.Object { +public open class Super { public constructor Super() public final var field: kotlin.Int private final var privateField: kotlin.Int diff --git a/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/InheritParameterName.txt b/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/InheritParameterName.txt index ac153b890a2..08114a752ab 100644 --- a/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/InheritParameterName.txt +++ b/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/InheritParameterName.txt @@ -2,7 +2,7 @@ package test public /*synthesized*/ fun A(/*0*/ function: (kotlin.Int) -> kotlin.Unit): test.A -public trait A : java.lang.Object { +public trait A { public abstract fun foo(/*0*/ p0: kotlin.Int): kotlin.Unit } diff --git a/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/javaRefersToKotlin.txt b/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/javaRefersToKotlin.txt index 499f00e726c..71ab1f75ee3 100644 --- a/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/javaRefersToKotlin.txt +++ b/compiler/testData/loadJava/kotlinAgainstCompiledJavaWithKotlin/javaRefersToKotlin.txt @@ -2,7 +2,7 @@ package test public /*synthesized*/ fun J(/*0*/ function: (test.K?) -> kotlin.Unit): test.J -public trait J : java.lang.Object { +public trait J { public abstract fun foo(/*0*/ p0: test.K?): kotlin.Unit } diff --git a/compiler/testData/loadJava/sourceJava/ErrorTypes.txt b/compiler/testData/loadJava/sourceJava/ErrorTypes.txt index 74af910bb82..fc962a86007 100644 --- a/compiler/testData/loadJava/sourceJava/ErrorTypes.txt +++ b/compiler/testData/loadJava/sourceJava/ErrorTypes.txt @@ -1,14 +1,14 @@ package test -public trait ErrorTypes : java.lang.Object { - +public trait ErrorTypes { + public trait Sub : test.ErrorTypes.Super { public abstract fun errorTypeInParameter(/*0*/ list: kotlin.List?>?): kotlin.Unit public abstract override /*1*/ /*fake_override*/ fun errorTypeInParameter(/*0*/ list: kotlin.List?>?): kotlin.Unit public abstract override /*1*/ fun returnErrorType(): [ERROR : Unresolved java classifier: T]? } - - public trait Super : java.lang.Object { + + public trait Super { public abstract fun errorTypeInParameter(/*0*/ list: kotlin.List?>?): kotlin.Unit public abstract fun returnErrorType(): [ERROR : Unresolved java classifier: T]? } diff --git a/compiler/testData/loadJava/sourceJava/NullInAnnotation.txt b/compiler/testData/loadJava/sourceJava/NullInAnnotation.txt index c406e9f64ac..9d177b01e3c 100644 --- a/compiler/testData/loadJava/sourceJava/NullInAnnotation.txt +++ b/compiler/testData/loadJava/sourceJava/NullInAnnotation.txt @@ -2,9 +2,9 @@ package test public /*synthesized*/ fun NullInAnnotation(/*0*/ function: () -> kotlin.Unit): test.NullInAnnotation -public trait NullInAnnotation : java.lang.Object { +public trait NullInAnnotation { test.NullInAnnotation.Ann(a = null: kotlin.Nothing?, b = {null}: kotlin.Array) public abstract fun foo(): kotlin.Unit - + public final annotation class Ann : kotlin.Annotation { public constructor Ann(/*0*/ a: kotlin.String, /*1*/ vararg b: kotlin.String /*kotlin.Array*/) public abstract fun a(): kotlin.String diff --git a/compiler/testData/loadJava/sourceJava/ReturnInnerSubclassOfSupersInner.txt b/compiler/testData/loadJava/sourceJava/ReturnInnerSubclassOfSupersInner.txt index cce2839dab5..ddd0d9d04d7 100644 --- a/compiler/testData/loadJava/sourceJava/ReturnInnerSubclassOfSupersInner.txt +++ b/compiler/testData/loadJava/sourceJava/ReturnInnerSubclassOfSupersInner.txt @@ -1,20 +1,20 @@ package test -public trait ReturnInnerSubclassOfSupersInner : java.lang.Object { - +public trait ReturnInnerSubclassOfSupersInner { + public open class Sub : test.ReturnInnerSubclassOfSupersInner.Super { public constructor Sub() - + public/*package*/ open inner class Inner : test.ReturnInnerSubclassOfSupersInner.Super.Inner { public/*package*/ constructor Inner() public/*package*/ open override /*1*/ fun get(): test.ReturnInnerSubclassOfSupersInner.Sub? } } - - public open class Super : java.lang.Object { + + public open class Super { public constructor Super() - - public/*package*/ open inner class Inner : java.lang.Object { + + public/*package*/ open inner class Inner { public/*package*/ constructor Inner() public/*package*/ open fun get(): test.ReturnInnerSubclassOfSupersInner.Super? } diff --git a/compiler/testData/loadJava/sourceJava/ReturnNotSubtype.txt b/compiler/testData/loadJava/sourceJava/ReturnNotSubtype.txt index 08fd864bab7..bd9e800a33b 100644 --- a/compiler/testData/loadJava/sourceJava/ReturnNotSubtype.txt +++ b/compiler/testData/loadJava/sourceJava/ReturnNotSubtype.txt @@ -1,7 +1,7 @@ package test -public trait ReturnNotSubtype : java.lang.Object { - +public trait ReturnNotSubtype { + public trait Sub : test.ReturnNotSubtype.Super { public abstract override /*1*/ fun _void(): kotlin.Boolean public abstract override /*1*/ fun array(): kotlin.Array? @@ -10,8 +10,8 @@ public trait ReturnNotSubtype : java.lang.Object { public abstract override /*1*/ fun string2(): kotlin.MutableList? public abstract override /*1*/ fun t(): java.lang.Void? } - - public trait Super : java.lang.Object { + + public trait Super { public abstract fun _void(): kotlin.Unit public abstract fun array(): kotlin.Array? public abstract fun klass(): java.lang.Class? diff --git a/compiler/testData/loadJava/sourceJava/WrongNumberOfGenericParameters.txt b/compiler/testData/loadJava/sourceJava/WrongNumberOfGenericParameters.txt index 9c7a5f2df01..fb84f13498a 100644 --- a/compiler/testData/loadJava/sourceJava/WrongNumberOfGenericParameters.txt +++ b/compiler/testData/loadJava/sourceJava/WrongNumberOfGenericParameters.txt @@ -1,17 +1,17 @@ package test -public trait WrongNumberOfGenericParameters : java.lang.Object { +public trait WrongNumberOfGenericParameters { public abstract fun o0(): test.WrongNumberOfGenericParameters.One? public abstract fun o2(): test.WrongNumberOfGenericParameters.One<[ERROR : T]>? public abstract fun t1(): test.WrongNumberOfGenericParameters.Two? public abstract fun z(): test.WrongNumberOfGenericParameters.Zero? - - public trait One : java.lang.Object { + + public trait One { } - - public trait Two : java.lang.Object { + + public trait Two { } - - public trait Zero : java.lang.Object { + + public trait Zero { } } diff --git a/compiler/testData/repl/imports.repl b/compiler/testData/repl/imports.repl index a36b700c757..3bffedfb487 100644 --- a/compiler/testData/repl/imports.repl +++ b/compiler/testData/repl/imports.repl @@ -2,5 +2,5 @@ null >>> val s = ByteArrayOutputStream() null ->>> s.getClass()!!.getName() +>>> s.javaClass!!.getName() java.io.ByteArrayOutputStream diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java index 6f46c2888ab..5f2d399e55e 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java @@ -613,6 +613,11 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode doTestWithStdlib("compiler/testData/codegen/boxWithStdlib/dataClasses/genericParam.kt"); } + @TestMetadata("kt5002.kt") + public void testKt5002() throws Exception { + doTestWithStdlib("compiler/testData/codegen/boxWithStdlib/dataClasses/kt5002.kt"); + } + @TestMetadata("mixedParams.kt") public void testMixedParams() throws Exception { doTestWithStdlib("compiler/testData/codegen/boxWithStdlib/dataClasses/mixedParams.kt"); diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaClassDescriptor.kt b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaClassDescriptor.kt index 77591348263..5e990edb421 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaClassDescriptor.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaClassDescriptor.kt @@ -44,12 +44,9 @@ import org.jetbrains.jet.lang.descriptors.annotations.Annotations import org.jetbrains.jet.lang.descriptors.ClassKind import java.util.ArrayList import org.jetbrains.jet.lang.types.checker.JetTypeChecker -import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils import org.jetbrains.jet.lang.resolve.java.descriptor.JavaClassStaticsPackageFragmentDescriptor import org.jetbrains.jet.lang.types.AbstractClassTypeConstructor -import org.jetbrains.jet.lang.resolve.java.lazy.resolveTopLevelClassInModule import org.jetbrains.jet.lang.descriptors.impl.EnumClassObjectDescriptor -import org.jetbrains.jet.lang.descriptors.SourceElement class LazyJavaClassDescriptor( private val outerC: LazyJavaResolverContextWithTypes, @@ -174,29 +171,16 @@ class LazyJavaClassDescriptor( override fun getParameters(): List = _parameters() private val _supertypes = c.storageManager.createLazyValue> { - val supertypes = jClass.getSupertypes() - if (supertypes.isEmpty()) { - val objectFqName = DescriptorResolverUtils.OBJECT_FQ_NAME - if (jClass.getFqName() == objectFqName) { - listOf(KotlinBuiltIns.getInstance().getAnyType()) - } - else { - val objectType = c.resolveTopLevelClassInModule(objectFqName)?.getDefaultType() - // If java.lang.Object is not found, we simply use Any to recover - listOf(objectType ?: KotlinBuiltIns.getInstance().getAnyType()) - } - } - else - supertypes.stream() - .map { - supertype -> - c.typeResolver.transformJavaType(supertype, TypeUsage.SUPERTYPE.toAttributes()) - } - .filter { supertype -> !supertype.isError() } - .toList() - .ifEmpty { - listOf(KotlinBuiltIns.getInstance().getAnyType()) - } + jClass.getSupertypes().stream() + .map { + supertype -> + c.typeResolver.transformJavaType(supertype, TypeUsage.SUPERTYPE.toAttributes()) + } + .filter { supertype -> !supertype.isError() } + .toList() + .ifEmpty { + listOf(KotlinBuiltIns.getInstance().getAnyType()) + } } override fun getSupertypes(): Collection = _supertypes() diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/DescriptorResolverUtils.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/DescriptorResolverUtils.java index 81f011837b1..cd229240b44 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/DescriptorResolverUtils.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/DescriptorResolverUtils.java @@ -37,8 +37,6 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import java.util.*; public final class DescriptorResolverUtils { - public static final FqName OBJECT_FQ_NAME = new FqName("java.lang.Object"); - private DescriptorResolverUtils() { } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java index 5370881f047..161d9f0b777 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java @@ -331,6 +331,8 @@ public class SingleAbstractMethodUtils { } private static class OnlyAbstractMethodFinder { + private static final FqName OBJECT_FQ_NAME = new FqName("java.lang.Object"); + private JavaMethod foundMethod; private JavaTypeSubstitutor foundClassSubstitutor; @@ -342,7 +344,7 @@ public class SingleAbstractMethodUtils { } assert classifier instanceof JavaClass : "Classifier should be a class here: " + classifier; JavaClass javaClass = (JavaClass) classifier; - if (DescriptorResolverUtils.OBJECT_FQ_NAME.equals(javaClass.getFqName())) { + if (OBJECT_FQ_NAME.equals(javaClass.getFqName())) { return true; } for (JavaMethod method : javaClass.getMethods()) { diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/ExtensionFunctionImpl.kt b/core/runtime.jvm/src/kotlin/jvm/internal/ExtensionFunctionImpl.kt index e918b300be4..4ed0d8a01dc 100644 --- a/core/runtime.jvm/src/kotlin/jvm/internal/ExtensionFunctionImpl.kt +++ b/core/runtime.jvm/src/kotlin/jvm/internal/ExtensionFunctionImpl.kt @@ -19,5 +19,5 @@ package kotlin.jvm.internal import java.io.Serializable public abstract class ExtensionFunctionImpl : Serializable { - override fun toString() = "${getClass().getGenericInterfaces()[0]}" + override fun toString() = "${(this as Object).getClass().getGenericInterfaces()[0]}" } diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/FunctionImpl.kt b/core/runtime.jvm/src/kotlin/jvm/internal/FunctionImpl.kt index e38a2c17818..672f92aaa3b 100644 --- a/core/runtime.jvm/src/kotlin/jvm/internal/FunctionImpl.kt +++ b/core/runtime.jvm/src/kotlin/jvm/internal/FunctionImpl.kt @@ -19,5 +19,5 @@ package kotlin.jvm.internal import java.io.Serializable public abstract class FunctionImpl : Serializable { - override fun toString() = "${getClass().getGenericInterfaces()[0]}" + override fun toString() = "${(this as Object).getClass().getGenericInterfaces()[0]}" } diff --git a/core/runtime.jvm/src/kotlin/reflect/jvm/internal/KMemberFunctionImpl.kt b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/KMemberFunctionImpl.kt index 8051e919039..25306642487 100644 --- a/core/runtime.jvm/src/kotlin/reflect/jvm/internal/KMemberFunctionImpl.kt +++ b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/KMemberFunctionImpl.kt @@ -19,5 +19,5 @@ package kotlin.reflect.jvm.internal import java.io.Serializable public abstract class KMemberFunctionImpl : Serializable { - override fun toString() = "${getClass().getGenericInterfaces()[0]}" + override fun toString() = "${(this as Object).getClass().getGenericInterfaces()[0]}" } diff --git a/idea/testData/structureView/fileStructure/CheckMemberLocationForJava.after b/idea/testData/structureView/fileStructure/CheckMemberLocationForJava.after index 3b7515dfdf3..b2bde8d9485 100644 --- a/idea/testData/structureView/fileStructure/CheckMemberLocationForJava.after +++ b/idea/testData/structureView/fileStructure/CheckMemberLocationForJava.after @@ -1,8 +1,6 @@ -CheckMemberLocationForJava.kt -Some - clone(): Any location=→Object - equals(Any?): Boolean location=→Object - finalize(): Unit location=→Object + equals(Any?): Boolean location=→Any foo123(): Unit location=→A3 foo12_(): Unit location=→A2 foo1_3(): Unit location=→A3 @@ -11,11 +9,5 @@ foo_2_(): Unit location=→A2 foo__3(): Unit location=→A3 foo___(): Unit location=→First - getClass(): Class location=→Object - hashCode(): Int location=→Object - notify(): Unit location=→Object - notifyAll(): Unit location=→Object - toString(): String location=→Object - wait(): Unit location=→Object - wait(Long): Unit location=→Object - wait(Long, Int): Unit location=→Object + hashCode(): Int location=→Any + toString(): String location=→Any diff --git a/idea/testData/structureView/fileStructure/InheritedJavaMembers.after b/idea/testData/structureView/fileStructure/InheritedJavaMembers.after index 64ef82d66c0..00d64237199 100644 --- a/idea/testData/structureView/fileStructure/InheritedJavaMembers.after +++ b/idea/testData/structureView/fileStructure/InheritedJavaMembers.after @@ -1,15 +1,7 @@ -InheritedJavaMembers.kt -InheritedJavaMembers call(): String? location=→Callable - clone(): Any location=→Object - equals(Any?): Boolean location=→Object - finalize(): Unit location=→Object - getClass(): Class location=→Object - hashCode(): Int location=→Object - notify(): Unit location=→Object - notifyAll(): Unit location=→Object + equals(Any?): Boolean location=→Any + hashCode(): Int location=→Any test(): Unit - toString(): String location=→Object - wait(): Unit location=→Object - wait(Long): Unit location=→Object - wait(Long, Int): Unit location=→Object + toString(): String location=→Any diff --git a/idea/testData/structureView/fileStructure/InheritedSAMConversion.after b/idea/testData/structureView/fileStructure/InheritedSAMConversion.after index 97f0777cc4c..476e8a12679 100644 --- a/idea/testData/structureView/fileStructure/InheritedSAMConversion.after +++ b/idea/testData/structureView/fileStructure/InheritedSAMConversion.after @@ -1,14 +1,6 @@ -InheritedSAMConversion.kt -KotlinTest - clone(): Any location=→Object - equals(Any?): Boolean location=→Object - finalize(): Unit location=→Object + equals(Any?): Boolean location=→Any foo((() -> Unit)?): Unit - getClass(): Class location=→Object - hashCode(): Int location=→Object - notify(): Unit location=→Object - notifyAll(): Unit location=→Object - toString(): String location=→Object - wait(): Unit location=→Object - wait(Long): Unit location=→Object - wait(Long, Int): Unit location=→Object + hashCode(): Int location=→Any + toString(): String location=→Any diff --git a/libraries/stdlib/test/TuplesTest.kt b/libraries/stdlib/test/TuplesTest.kt index d857edd3857..e164039ea18 100644 --- a/libraries/stdlib/test/TuplesTest.kt +++ b/libraries/stdlib/test/TuplesTest.kt @@ -26,7 +26,7 @@ class PairTest { assertTrue(p == Pair(1, "a")) assertTrue(p != Pair(2, "a")) assertTrue(p != Pair(1, "b")) - assertTrue(!(p : Object).equals(null)) + assertTrue(!p.equals(null)) assertTrue((p : Any) != "") } @@ -70,7 +70,7 @@ class TripleTest { assertTrue(t != Triple(2, "a", 0.0)) assertTrue(t != Triple(1, "b", 0.0)) assertTrue(t != Triple(1, "a", 0.1)) - assertTrue(!(t : Object).equals(null)) + assertTrue(!t.equals(null)) assertTrue((t : Any) != "") }