diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 556323eed38..1cba29a3dde 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -356,6 +356,15 @@ public class JavaDescriptorResolver { + @Nullable + private ClassDescriptor resolveJavaLangObject() { + ClassDescriptor clazz = resolveClass(JdkNames.JL_OBJECT.getFqName(), DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN); + if (clazz == null) { + // TODO: warning + } + return clazz; + } + @Nullable public ClassDescriptor resolveClass(@NotNull FqName qualifiedName, @NotNull DescriptorSearchRule searchRule) { List tasks = Lists.newArrayList(); @@ -466,7 +475,7 @@ public class JavaDescriptorResolver { "class " + psiClass.getQualifiedName()); // TODO: ugly hack: tests crash if initializeTypeParameters called with class containing proper supertypes - supertypes.addAll(getSupertypes(new PsiClassWrapper(psiClass), classData.classDescriptor, classData.getTypeParameters())); + supertypes.addAll(getSupertypes(new PsiClassWrapper(psiClass), classData, classData.getTypeParameters())); PsiMethod[] psiConstructors = psiClass.getConstructors(); @@ -599,7 +608,7 @@ public class JavaDescriptorResolver { classDescriptorCache.put(fqName, classData); - classData.classDescriptor.setSupertypes(getSupertypes(new PsiClassWrapper(classObjectPsiClass), classData.classDescriptor, new ArrayList(0))); + classData.classDescriptor.setSupertypes(getSupertypes(new PsiClassWrapper(classObjectPsiClass), classData, new ArrayList(0))); classData.classDescriptor.setName(JetPsiUtil.NO_NAME_PROVIDED); // TODO classData.classDescriptor.setModality(Modality.FINAL); classData.classDescriptor.setVisibility(containing.getVisibility()); @@ -862,7 +871,9 @@ public class JavaDescriptorResolver { } } - private Collection getSupertypes(PsiClassWrapper psiClass, ClassDescriptor classDescriptor, List typeParameters) { + private Collection getSupertypes(PsiClassWrapper psiClass, ResolverBinaryClassData classData, List typeParameters) { + ClassDescriptor classDescriptor = classData.classDescriptor; + final List result = new ArrayList(); String context = "class " + psiClass.getQualifiedName(); @@ -908,7 +919,21 @@ public class JavaDescriptorResolver { } if (result.isEmpty()) { - result.add(JetStandardClasses.getAnyType()); + if (classData.kotlin + || psiClass.getQualifiedName().equals(JdkNames.JL_OBJECT.getFqName().getFqName()) + // TODO: annotations + || classDescriptor.getKind() == ClassKind.ANNOTATION_CLASS) { + result.add(JetStandardClasses.getAnyType()); + } + else { + ClassDescriptor object = resolveJavaLangObject(); + if (object != null) { + result.add(object.getDefaultType()); + } + else { + result.add(JetStandardClasses.getAnyType()); + } + } } return result; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JdkNames.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JdkNames.java new file mode 100644 index 00000000000..7e28b65fa27 --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JdkNames.java @@ -0,0 +1,26 @@ +/* + * Copyright 2010-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.lang.resolve.java; + +/** + * @author Stepan Koltsov + */ +public class JdkNames { + + public static final JvmClassName JL_OBJECT = new JvmClassName("java.lang.Object"); + +} diff --git a/compiler/testData/readJavaBinaryClass/ClassWithTypeP.kt b/compiler/testData/readJavaBinaryClass/ClassWithTypeP.kt index 8dcfa0c26af..4f369bcdfed 100644 --- a/compiler/testData/readJavaBinaryClass/ClassWithTypeP.kt +++ b/compiler/testData/readJavaBinaryClass/ClassWithTypeP.kt @@ -1,4 +1,4 @@ package test -class ClassWithTypeParameter() { +class ClassWithTypeParameter() : java.lang.Object() { } diff --git a/compiler/testData/readJavaBinaryClass/ClassWithTypeP.txt b/compiler/testData/readJavaBinaryClass/ClassWithTypeP.txt index 53703ad2b25..01261cbf19a 100644 --- a/compiler/testData/readJavaBinaryClass/ClassWithTypeP.txt +++ b/compiler/testData/readJavaBinaryClass/ClassWithTypeP.txt @@ -1,5 +1,5 @@ namespace test -final class test.ClassWithTypeParameter : jet.Any { +final class test.ClassWithTypeParameter : java.lang.Object { final /*constructor*/ fun (): test.ClassWithTypeParameter

} diff --git a/compiler/testData/readJavaBinaryClass/ClassWithTypePP.kt b/compiler/testData/readJavaBinaryClass/ClassWithTypePP.kt index c310804bec9..c3899003821 100644 --- a/compiler/testData/readJavaBinaryClass/ClassWithTypePP.kt +++ b/compiler/testData/readJavaBinaryClass/ClassWithTypePP.kt @@ -1,4 +1,4 @@ package test -class ClassWithTypeParameter() { +class ClassWithTypeParameter() : java.lang.Object() { } diff --git a/compiler/testData/readJavaBinaryClass/ClassWithTypePP.txt b/compiler/testData/readJavaBinaryClass/ClassWithTypePP.txt index 006e0c79287..0fde4b88b3c 100644 --- a/compiler/testData/readJavaBinaryClass/ClassWithTypePP.txt +++ b/compiler/testData/readJavaBinaryClass/ClassWithTypePP.txt @@ -1,5 +1,5 @@ namespace test -final class test.ClassWithTypeParameter : jet.Any { +final class test.ClassWithTypeParameter : java.lang.Object { final /*constructor*/ fun (): test.ClassWithTypeParameter } diff --git a/compiler/testData/readJavaBinaryClass/ClassWithTypePRefSelf.kt b/compiler/testData/readJavaBinaryClass/ClassWithTypePRefSelf.kt index 7235e9985fd..d1a1e889d3d 100644 --- a/compiler/testData/readJavaBinaryClass/ClassWithTypePRefSelf.kt +++ b/compiler/testData/readJavaBinaryClass/ClassWithTypePRefSelf.kt @@ -1,4 +1,4 @@ package test -class ClassWithTypePRefSelf?>() { +class ClassWithTypePRefSelf?>() : java.lang.Object() { } diff --git a/compiler/testData/readJavaBinaryClass/ClassWithTypePRefSelf.txt b/compiler/testData/readJavaBinaryClass/ClassWithTypePRefSelf.txt index cdb05477131..0b585a21baf 100644 --- a/compiler/testData/readJavaBinaryClass/ClassWithTypePRefSelf.txt +++ b/compiler/testData/readJavaBinaryClass/ClassWithTypePRefSelf.txt @@ -1,5 +1,5 @@ namespace test -final class test.ClassWithTypePRefSelf?> : jet.Any { +final class test.ClassWithTypePRefSelf?> : java.lang.Object { final /*constructor*/ fun ?>(): test.ClassWithTypePRefSelf

} diff --git a/compiler/testData/readJavaBinaryClass/FieldAsVar.kt b/compiler/testData/readJavaBinaryClass/FieldAsVar.kt index 358ad58ff61..90e52807f76 100644 --- a/compiler/testData/readJavaBinaryClass/FieldAsVar.kt +++ b/compiler/testData/readJavaBinaryClass/FieldAsVar.kt @@ -1,5 +1,5 @@ package test -class FieldAsVar() { +class FieldAsVar() : java.lang.Object() { var f: Int = 1 } diff --git a/compiler/testData/readJavaBinaryClass/FieldAsVar.txt b/compiler/testData/readJavaBinaryClass/FieldAsVar.txt index 6bfbf3d753d..035a7880522 100644 --- a/compiler/testData/readJavaBinaryClass/FieldAsVar.txt +++ b/compiler/testData/readJavaBinaryClass/FieldAsVar.txt @@ -1,6 +1,6 @@ namespace test -final class test.FieldAsVar : jet.Any { +final class test.FieldAsVar : java.lang.Object { final /*constructor*/ fun (): test.FieldAsVar final var f: jet.Int } diff --git a/compiler/testData/readJavaBinaryClass/FieldOfArrayType.kt b/compiler/testData/readJavaBinaryClass/FieldOfArrayType.kt index 59b34d2c993..85a6eb20329 100644 --- a/compiler/testData/readJavaBinaryClass/FieldOfArrayType.kt +++ b/compiler/testData/readJavaBinaryClass/FieldOfArrayType.kt @@ -1,5 +1,5 @@ package test -open class FieldOfArrayType() { +open class FieldOfArrayType() : java.lang.Object() { var files: Array? = null } diff --git a/compiler/testData/readJavaBinaryClass/FieldOfArrayType.txt b/compiler/testData/readJavaBinaryClass/FieldOfArrayType.txt index d14dbde1c83..9dc72b5e98a 100644 --- a/compiler/testData/readJavaBinaryClass/FieldOfArrayType.txt +++ b/compiler/testData/readJavaBinaryClass/FieldOfArrayType.txt @@ -1,6 +1,6 @@ namespace test -open class test.FieldOfArrayType : jet.Any { +open class test.FieldOfArrayType : java.lang.Object { final /*constructor*/ fun (): test.FieldOfArrayType final var files: jet.Array? } diff --git a/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.kt b/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.kt index 01c67630deb..23d150df832 100644 --- a/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.kt +++ b/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.kt @@ -1,5 +1,5 @@ package test -class FinalFieldAsVal() { +class FinalFieldAsVal() : java.lang.Object() { val f: Int = 1 } diff --git a/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.txt b/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.txt index 6439934be35..1cc69e01fa0 100644 --- a/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.txt +++ b/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.txt @@ -1,6 +1,6 @@ namespace test -final class test.FinalFieldAsVal : jet.Any { +final class test.FinalFieldAsVal : java.lang.Object { final /*constructor*/ fun (): test.FinalFieldAsVal final val f: jet.Int } diff --git a/compiler/testData/readJavaBinaryClass/InnerClass.kt b/compiler/testData/readJavaBinaryClass/InnerClass.kt index 494763e3159..e068069479d 100644 --- a/compiler/testData/readJavaBinaryClass/InnerClass.kt +++ b/compiler/testData/readJavaBinaryClass/InnerClass.kt @@ -1,5 +1,5 @@ package test -open class Outer() { - open class Inner() +open class Outer() : java.lang.Object() { + open class Inner() : java.lang.Object() } diff --git a/compiler/testData/readJavaBinaryClass/InnerClass.txt b/compiler/testData/readJavaBinaryClass/InnerClass.txt index 9acf1552262..5069969bb33 100644 --- a/compiler/testData/readJavaBinaryClass/InnerClass.txt +++ b/compiler/testData/readJavaBinaryClass/InnerClass.txt @@ -1,8 +1,8 @@ namespace test -open class test.Outer : jet.Any { +open class test.Outer : java.lang.Object { final /*constructor*/ fun (): test.Outer - open class test.Outer.Inner : jet.Any { + open class test.Outer.Inner : java.lang.Object { final /*constructor*/ fun (): test.Outer.Inner } } diff --git a/compiler/testData/readJavaBinaryClass/InnerClassReferencesOuterTP.kt b/compiler/testData/readJavaBinaryClass/InnerClassReferencesOuterTP.kt index 1cbfe66f598..48086967e19 100644 --- a/compiler/testData/readJavaBinaryClass/InnerClassReferencesOuterTP.kt +++ b/compiler/testData/readJavaBinaryClass/InnerClassReferencesOuterTP.kt @@ -1,5 +1,5 @@ package test -open class Outer() { - open class Inner() +open class Outer() : java.lang.Object() { + open class Inner() : java.lang.Object() } diff --git a/compiler/testData/readJavaBinaryClass/InnerClassReferencesOuterTP.txt b/compiler/testData/readJavaBinaryClass/InnerClassReferencesOuterTP.txt index 7de0bb8958b..3ab4218b5c0 100644 --- a/compiler/testData/readJavaBinaryClass/InnerClassReferencesOuterTP.txt +++ b/compiler/testData/readJavaBinaryClass/InnerClassReferencesOuterTP.txt @@ -1,8 +1,8 @@ namespace test -open class test.Outer : jet.Any { +open class test.Outer : java.lang.Object { final /*constructor*/ fun (): test.Outer

- open class test.Outer.Inner : jet.Any { + open class test.Outer.Inner : java.lang.Object { final /*constructor*/ fun (): test.Outer.Inner } } diff --git a/compiler/testData/readJavaBinaryClass/InnerClassesInGeneric.kt b/compiler/testData/readJavaBinaryClass/InnerClassesInGeneric.kt index f7aecfe1b5a..9e9f9b3ce1f 100644 --- a/compiler/testData/readJavaBinaryClass/InnerClassesInGeneric.kt +++ b/compiler/testData/readJavaBinaryClass/InnerClassesInGeneric.kt @@ -1,9 +1,9 @@ package test -trait Trait +trait Trait : java.lang.Object -open class Outer() { - open class Inner() { +open class Outer() : java.lang.Object() { + open class Inner() : java.lang.Object() { } open class Inner2() : Inner(), Trait

{ diff --git a/compiler/testData/readJavaBinaryClass/InnerClassesInGeneric.txt b/compiler/testData/readJavaBinaryClass/InnerClassesInGeneric.txt index e662ea177e8..569d57f2285 100644 --- a/compiler/testData/readJavaBinaryClass/InnerClassesInGeneric.txt +++ b/compiler/testData/readJavaBinaryClass/InnerClassesInGeneric.txt @@ -1,13 +1,13 @@ namespace test -open class test.Outer : jet.Any { +open class test.Outer : java.lang.Object { final /*constructor*/ fun (): test.Outer - open class test.Outer.Inner : jet.Any { + open class test.Outer.Inner : java.lang.Object { final /*constructor*/ fun (): test.Outer.Inner } open class test.Outer.Inner2 : test.Outer.Inner, test.Trait

{ final /*constructor*/ fun (): test.Outer.Inner2 } } -abstract trait test.Trait : jet.Any { +abstract trait test.Trait : java.lang.Object { } diff --git a/compiler/testData/readJavaBinaryClass/MethodReferencesOuterClassTP.kt b/compiler/testData/readJavaBinaryClass/MethodReferencesOuterClassTP.kt index 4f5fe948210..9bd04bb6227 100644 --- a/compiler/testData/readJavaBinaryClass/MethodReferencesOuterClassTP.kt +++ b/compiler/testData/readJavaBinaryClass/MethodReferencesOuterClassTP.kt @@ -1,7 +1,7 @@ package test -class Outer() { - class Inner() { +class Outer() : java.lang.Object() { + class Inner() : java.lang.Object() { fun f() {} } } diff --git a/compiler/testData/readJavaBinaryClass/MethodReferencesOuterClassTP.txt b/compiler/testData/readJavaBinaryClass/MethodReferencesOuterClassTP.txt index f05d0b04286..25b12b9314c 100644 --- a/compiler/testData/readJavaBinaryClass/MethodReferencesOuterClassTP.txt +++ b/compiler/testData/readJavaBinaryClass/MethodReferencesOuterClassTP.txt @@ -1,8 +1,8 @@ namespace test -final class test.Outer : jet.Any { +final class test.Outer : java.lang.Object { final /*constructor*/ fun (): test.Outer

- final class test.Outer.Inner : jet.Any { + final class test.Outer.Inner : java.lang.Object { final /*constructor*/ fun (): test.Outer.Inner final fun f(): jet.Tuple0 } diff --git a/compiler/testData/readJavaBinaryClass/MethodWithTypeP.kt b/compiler/testData/readJavaBinaryClass/MethodWithTypeP.kt index 2c74ae0376f..39cd1042cb5 100644 --- a/compiler/testData/readJavaBinaryClass/MethodWithTypeP.kt +++ b/compiler/testData/readJavaBinaryClass/MethodWithTypeP.kt @@ -1,5 +1,5 @@ package test -class MethodWithTypeP() { +class MethodWithTypeP() : java.lang.Object() { fun f() = #() } diff --git a/compiler/testData/readJavaBinaryClass/MethodWithTypeP.txt b/compiler/testData/readJavaBinaryClass/MethodWithTypeP.txt index 977bce6fbdc..48f22b40c19 100644 --- a/compiler/testData/readJavaBinaryClass/MethodWithTypeP.txt +++ b/compiler/testData/readJavaBinaryClass/MethodWithTypeP.txt @@ -1,6 +1,6 @@ namespace test -final class test.MethodWithTypeP : jet.Any { +final class test.MethodWithTypeP : java.lang.Object { final /*constructor*/ fun (): test.MethodWithTypeP final fun f(): jet.Tuple0 } diff --git a/compiler/testData/readJavaBinaryClass/MethodWithTypePP.kt b/compiler/testData/readJavaBinaryClass/MethodWithTypePP.kt index c0220ae2434..a9f745e0b26 100644 --- a/compiler/testData/readJavaBinaryClass/MethodWithTypePP.kt +++ b/compiler/testData/readJavaBinaryClass/MethodWithTypePP.kt @@ -1,5 +1,5 @@ package test -class MethodWithTypePP() { +class MethodWithTypePP() : java.lang.Object() { fun f() = #() } diff --git a/compiler/testData/readJavaBinaryClass/MethodWithTypePP.txt b/compiler/testData/readJavaBinaryClass/MethodWithTypePP.txt index 4b6ca937710..f751d4acd7e 100644 --- a/compiler/testData/readJavaBinaryClass/MethodWithTypePP.txt +++ b/compiler/testData/readJavaBinaryClass/MethodWithTypePP.txt @@ -1,6 +1,6 @@ namespace test -final class test.MethodWithTypePP : jet.Any { +final class test.MethodWithTypePP : java.lang.Object { final /*constructor*/ fun (): test.MethodWithTypePP final fun f(): jet.Tuple0 } diff --git a/compiler/testData/readJavaBinaryClass/MethodWithTypePRefClassP.kt b/compiler/testData/readJavaBinaryClass/MethodWithTypePRefClassP.kt index c54adee8f48..625245c0311 100644 --- a/compiler/testData/readJavaBinaryClass/MethodWithTypePRefClassP.kt +++ b/compiler/testData/readJavaBinaryClass/MethodWithTypePRefClassP.kt @@ -1,5 +1,5 @@ package test -open class MethodWithTypePRefClassP() { +open class MethodWithTypePRefClassP() : java.lang.Object() { fun f() = #() } diff --git a/compiler/testData/readJavaBinaryClass/MethodWithTypePRefClassP.txt b/compiler/testData/readJavaBinaryClass/MethodWithTypePRefClassP.txt index 6cbf0d00a27..1a2941d1c4f 100644 --- a/compiler/testData/readJavaBinaryClass/MethodWithTypePRefClassP.txt +++ b/compiler/testData/readJavaBinaryClass/MethodWithTypePRefClassP.txt @@ -1,6 +1,6 @@ namespace test -open class test.MethodWithTypePRefClassP : jet.Any { +open class test.MethodWithTypePRefClassP : java.lang.Object { final /*constructor*/ fun (): test.MethodWithTypePRefClassP

final fun f(): jet.Tuple0 } diff --git a/compiler/testData/readJavaBinaryClass/MethosWithPRefTP.kt b/compiler/testData/readJavaBinaryClass/MethosWithPRefTP.kt index 04c67e7b423..187918005a8 100644 --- a/compiler/testData/readJavaBinaryClass/MethosWithPRefTP.kt +++ b/compiler/testData/readJavaBinaryClass/MethosWithPRefTP.kt @@ -1,5 +1,5 @@ package test -final class MethosWithPRefTP() { +final class MethosWithPRefTP() : java.lang.Object() { fun f(p0: P?) = #() } diff --git a/compiler/testData/readJavaBinaryClass/MethosWithPRefTP.txt b/compiler/testData/readJavaBinaryClass/MethosWithPRefTP.txt index b349f077535..8538e5765a4 100644 --- a/compiler/testData/readJavaBinaryClass/MethosWithPRefTP.txt +++ b/compiler/testData/readJavaBinaryClass/MethosWithPRefTP.txt @@ -1,6 +1,6 @@ namespace test -final class test.MethosWithPRefTP : jet.Any { +final class test.MethosWithPRefTP : java.lang.Object { final /*constructor*/ fun (): test.MethosWithPRefTP final fun f(/*0*/ p0: P?): jet.Tuple0 } diff --git a/compiler/testData/readJavaBinaryClass/MyException.kt b/compiler/testData/readJavaBinaryClass/MyException.kt index feb67c45c86..6b618bc2b7a 100644 --- a/compiler/testData/readJavaBinaryClass/MyException.kt +++ b/compiler/testData/readJavaBinaryClass/MyException.kt @@ -1,3 +1,3 @@ package test -open class MyException(p0: String?, p1: Throwable?) +open class MyException(p0: String?, p1: Throwable?) : java.lang.Object() diff --git a/compiler/testData/readJavaBinaryClass/MyException.txt b/compiler/testData/readJavaBinaryClass/MyException.txt index 703a2cc262e..47001bd7ec2 100644 --- a/compiler/testData/readJavaBinaryClass/MyException.txt +++ b/compiler/testData/readJavaBinaryClass/MyException.txt @@ -1,5 +1,5 @@ namespace test -open class test.MyException : jet.Any { +open class test.MyException : java.lang.Object { final /*constructor*/ fun (/*0*/ p0: jet.String?, /*1*/ p1: jet.Throwable?): test.MyException } diff --git a/compiler/testData/readJavaBinaryClass/Simple.kt b/compiler/testData/readJavaBinaryClass/Simple.kt index 8e2814732aa..39b05b99014 100644 --- a/compiler/testData/readJavaBinaryClass/Simple.kt +++ b/compiler/testData/readJavaBinaryClass/Simple.kt @@ -1,3 +1,3 @@ package test -class Simple() +class Simple() : java.lang.Object() diff --git a/compiler/testData/readJavaBinaryClass/Simple.txt b/compiler/testData/readJavaBinaryClass/Simple.txt index 1a08ed4477a..c61743bdbf0 100644 --- a/compiler/testData/readJavaBinaryClass/Simple.txt +++ b/compiler/testData/readJavaBinaryClass/Simple.txt @@ -1,5 +1,5 @@ namespace test -final class test.Simple : jet.Any { +final class test.Simple : java.lang.Object { final /*constructor*/ fun (): test.Simple } diff --git a/compiler/testData/readJavaBinaryClass/TwoFields.kt b/compiler/testData/readJavaBinaryClass/TwoFields.kt index 5699c6caaf3..c2aea9666e7 100644 --- a/compiler/testData/readJavaBinaryClass/TwoFields.kt +++ b/compiler/testData/readJavaBinaryClass/TwoFields.kt @@ -1,6 +1,6 @@ package test -class TwoFields() { +class TwoFields() : java.lang.Object() { var a: Int = 1 var b: Short = 2; } diff --git a/compiler/testData/readJavaBinaryClass/TwoFields.txt b/compiler/testData/readJavaBinaryClass/TwoFields.txt index dc2e46f53dc..b94d56baa31 100644 --- a/compiler/testData/readJavaBinaryClass/TwoFields.txt +++ b/compiler/testData/readJavaBinaryClass/TwoFields.txt @@ -1,6 +1,6 @@ namespace test -final class test.TwoFields : jet.Any { +final class test.TwoFields : java.lang.Object { final /*constructor*/ fun (): test.TwoFields final var a: jet.Int final var b: jet.Short diff --git a/compiler/testData/readJavaBinaryClass/annotation/AnnotatedMethod.kt b/compiler/testData/readJavaBinaryClass/annotation/AnnotatedMethod.kt index fe2bd5bda84..4985614a154 100644 --- a/compiler/testData/readJavaBinaryClass/annotation/AnnotatedMethod.kt +++ b/compiler/testData/readJavaBinaryClass/annotation/AnnotatedMethod.kt @@ -2,6 +2,6 @@ package test annotation class Aaa -open class HasAnnotatedMethod() { +open class HasAnnotatedMethod() : java.lang.Object() { open Aaa fun f(): Unit { } } diff --git a/compiler/testData/readJavaBinaryClass/annotation/AnnotatedMethod.txt b/compiler/testData/readJavaBinaryClass/annotation/AnnotatedMethod.txt index e672b9278c4..403a84517be 100644 --- a/compiler/testData/readJavaBinaryClass/annotation/AnnotatedMethod.txt +++ b/compiler/testData/readJavaBinaryClass/annotation/AnnotatedMethod.txt @@ -1,6 +1,6 @@ namespace test -open class test.HasAnnotatedMethod : jet.Any { +open class test.HasAnnotatedMethod : java.lang.Object { final /*constructor*/ fun (): test.HasAnnotatedMethod open test.Aaa() fun f(): jet.Tuple0 } diff --git a/compiler/testData/readJavaBinaryClass/javaBean/DifferentGetterAndSetter.kt b/compiler/testData/readJavaBinaryClass/javaBean/DifferentGetterAndSetter.kt index 308edbd4d83..b75ce4316da 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/DifferentGetterAndSetter.kt +++ b/compiler/testData/readJavaBinaryClass/javaBean/DifferentGetterAndSetter.kt @@ -1,6 +1,6 @@ package test -open class DifferentGetterAndSetter() { +open class DifferentGetterAndSetter() : java.lang.Object() { open fun setSomething(p0: String?): Unit { } open fun getSomething() = 17 } diff --git a/compiler/testData/readJavaBinaryClass/javaBean/DifferentGetterAndSetter.txt b/compiler/testData/readJavaBinaryClass/javaBean/DifferentGetterAndSetter.txt index d9c9120fc25..b98d7b845cd 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/DifferentGetterAndSetter.txt +++ b/compiler/testData/readJavaBinaryClass/javaBean/DifferentGetterAndSetter.txt @@ -1,6 +1,6 @@ namespace test -open class test.DifferentGetterAndSetter : jet.Any { +open class test.DifferentGetterAndSetter : java.lang.Object { final /*constructor*/ fun (): test.DifferentGetterAndSetter open fun getSomething(): jet.Int open fun setSomething(/*0*/ p0: jet.String?): jet.Tuple0 diff --git a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanAbstractGetter.kt b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanAbstractGetter.kt index 78b9beffcf3..8ef31db9173 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanAbstractGetter.kt +++ b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanAbstractGetter.kt @@ -1,6 +1,6 @@ package test -trait JavaBeanAbstractGetter { +trait JavaBeanAbstractGetter : java.lang.Object { //final val red: Int abstract fun getRed(): Int } diff --git a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanAbstractGetter.txt b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanAbstractGetter.txt index 779c03db0b9..733e4057d2f 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanAbstractGetter.txt +++ b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanAbstractGetter.txt @@ -1,5 +1,5 @@ namespace test -abstract trait test.JavaBeanAbstractGetter : jet.Any { +abstract trait test.JavaBeanAbstractGetter : java.lang.Object { abstract fun getRed(): jet.Int } diff --git a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVal.kt b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVal.kt index e3a5fc773d4..ff6d52aa03d 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVal.kt +++ b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVal.kt @@ -1,6 +1,6 @@ package test -open class JavaBeanVal() { +open class JavaBeanVal() : java.lang.Object() { open fun getColor(): String? = "" //val color: String? = "" } diff --git a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVal.txt b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVal.txt index 798ac1b6009..4adfde59e8f 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVal.txt +++ b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVal.txt @@ -1,6 +1,6 @@ namespace test -open class test.JavaBeanVal : jet.Any { +open class test.JavaBeanVal : java.lang.Object { final /*constructor*/ fun (): test.JavaBeanVal open fun getColor(): jet.String? } diff --git a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVar.kt b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVar.kt index 4d533d16120..3385a1bff42 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVar.kt +++ b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVar.kt @@ -1,6 +1,6 @@ package test -open class JavaBeanVal() { +open class JavaBeanVal() : java.lang.Object() { open fun getColor(): String? = "" open fun setColor(p0: String?): Unit { } //var color: String? = "" diff --git a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVar.txt b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVar.txt index fc23a45ae1e..18e00ff38d8 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVar.txt +++ b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVar.txt @@ -1,6 +1,6 @@ namespace test -open class test.JavaBeanVal : jet.Any { +open class test.JavaBeanVal : java.lang.Object { final /*constructor*/ fun (): test.JavaBeanVal open fun getColor(): jet.String? open fun setColor(/*0*/ p0: jet.String?): jet.Tuple0 diff --git a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVarOfGenericType.kt b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVarOfGenericType.kt index b71b7a89e00..3e8a9cc13d3 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVarOfGenericType.kt +++ b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVarOfGenericType.kt @@ -2,7 +2,7 @@ package test import java.util.ArrayList -open class JavaBeanVarOfGenericType { +open class JavaBeanVarOfGenericType() : java.lang.Object() { open fun getCharacters(): ArrayList

? = null open fun setCharacters(p0: ArrayList

?) { } //var characters: ArrayList

? = null diff --git a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVarOfGenericType.txt b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVarOfGenericType.txt index e11bab1f3b7..1e3dbc0333d 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVarOfGenericType.txt +++ b/compiler/testData/readJavaBinaryClass/javaBean/JavaBeanVarOfGenericType.txt @@ -1,6 +1,6 @@ namespace test -open class test.JavaBeanVarOfGenericType : jet.Any { +open class test.JavaBeanVarOfGenericType : java.lang.Object { final /*constructor*/ fun (): test.JavaBeanVarOfGenericType

open fun getCharacters(): java.util.ArrayList

? open fun setCharacters(/*0*/ p0: java.util.ArrayList

?): jet.Tuple0 diff --git a/compiler/testData/readJavaBinaryClass/javaBean/TwoSetters.kt b/compiler/testData/readJavaBinaryClass/javaBean/TwoSetters.kt index d217ea08cca..b0de528b8f6 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/TwoSetters.kt +++ b/compiler/testData/readJavaBinaryClass/javaBean/TwoSetters.kt @@ -1,6 +1,6 @@ package test -open class TwoSetters() { +open class TwoSetters() : java.lang.Object() { open fun setSize(p0: String?) { } open fun setSize(p0: Int) { } } diff --git a/compiler/testData/readJavaBinaryClass/javaBean/TwoSetters.txt b/compiler/testData/readJavaBinaryClass/javaBean/TwoSetters.txt index 74fc3e7bb3f..2727d7d7b1b 100644 --- a/compiler/testData/readJavaBinaryClass/javaBean/TwoSetters.txt +++ b/compiler/testData/readJavaBinaryClass/javaBean/TwoSetters.txt @@ -1,6 +1,6 @@ namespace test -open class test.TwoSetters : jet.Any { +open class test.TwoSetters : java.lang.Object { final /*constructor*/ fun (): test.TwoSetters open fun setSize(/*0*/ p0: jet.Int): jet.Tuple0 open fun setSize(/*0*/ p0: jet.String?): jet.Tuple0 diff --git a/compiler/testData/readJavaBinaryClass/notNull/NotNullField.kt b/compiler/testData/readJavaBinaryClass/notNull/NotNullField.kt index 6dfa0e5bb24..8bf333b4c84 100644 --- a/compiler/testData/readJavaBinaryClass/notNull/NotNullField.kt +++ b/compiler/testData/readJavaBinaryClass/notNull/NotNullField.kt @@ -1,5 +1,5 @@ package test; -open class NotNullField() { +open class NotNullField() : java.lang.Object() { var hi: String = ""; } diff --git a/compiler/testData/readJavaBinaryClass/notNull/NotNullField.txt b/compiler/testData/readJavaBinaryClass/notNull/NotNullField.txt index 8ca92c32112..1625151d14a 100644 --- a/compiler/testData/readJavaBinaryClass/notNull/NotNullField.txt +++ b/compiler/testData/readJavaBinaryClass/notNull/NotNullField.txt @@ -1,6 +1,6 @@ namespace test -open class test.NotNullField : jet.Any { +open class test.NotNullField : java.lang.Object { final /*constructor*/ fun (): test.NotNullField final var hi: jet.String } diff --git a/compiler/testData/readJavaBinaryClass/notNull/NotNullMethod.kt b/compiler/testData/readJavaBinaryClass/notNull/NotNullMethod.kt index 2c990004363..230db9040d3 100644 --- a/compiler/testData/readJavaBinaryClass/notNull/NotNullMethod.kt +++ b/compiler/testData/readJavaBinaryClass/notNull/NotNullMethod.kt @@ -1,5 +1,5 @@ package test -open class NotNullMethod() { +open class NotNullMethod() : java.lang.Object() { open fun hi(): String = "" } diff --git a/compiler/testData/readJavaBinaryClass/notNull/NotNullMethod.txt b/compiler/testData/readJavaBinaryClass/notNull/NotNullMethod.txt index 133095788df..e7ae10a9cb1 100644 --- a/compiler/testData/readJavaBinaryClass/notNull/NotNullMethod.txt +++ b/compiler/testData/readJavaBinaryClass/notNull/NotNullMethod.txt @@ -1,6 +1,6 @@ namespace test -open class test.NotNullMethod : jet.Any { +open class test.NotNullMethod : java.lang.Object { final /*constructor*/ fun (): test.NotNullMethod open fun hi(): jet.String } diff --git a/compiler/testData/readJavaBinaryClass/notNull/NotNullParameter.kt b/compiler/testData/readJavaBinaryClass/notNull/NotNullParameter.kt index ec1fc244b00..68f3c2556e5 100644 --- a/compiler/testData/readJavaBinaryClass/notNull/NotNullParameter.kt +++ b/compiler/testData/readJavaBinaryClass/notNull/NotNullParameter.kt @@ -1,5 +1,5 @@ package test -open class NotNullParameter() { +open class NotNullParameter() : java.lang.Object() { open fun hi(p0: String): Unit { } } diff --git a/compiler/testData/readJavaBinaryClass/notNull/NotNullParameter.txt b/compiler/testData/readJavaBinaryClass/notNull/NotNullParameter.txt index c9ebf840789..b810025bb16 100644 --- a/compiler/testData/readJavaBinaryClass/notNull/NotNullParameter.txt +++ b/compiler/testData/readJavaBinaryClass/notNull/NotNullParameter.txt @@ -1,6 +1,6 @@ namespace test -open class test.NotNullParameter : jet.Any { +open class test.NotNullParameter : java.lang.Object { final /*constructor*/ fun (): test.NotNullParameter open fun hi(/*0*/ p0: jet.String): jet.Tuple0 } diff --git a/libraries/stdlib/src/kotlin/Ordering.kt b/libraries/stdlib/src/kotlin/Ordering.kt index b5ed2be58aa..be537e8a061 100644 --- a/libraries/stdlib/src/kotlin/Ordering.kt +++ b/libraries/stdlib/src/kotlin/Ordering.kt @@ -54,7 +54,7 @@ public inline fun comparator(vararg functions: Function1): Comparato private class FunctionComparator(val functions: Array>): Comparator { - public fun toString(): String { + public override fun toString(): String { return "FunctionComparator${functions.toList()}" } @@ -75,7 +75,7 @@ public inline fun comparator(fn: (T,T) -> Int): Comparator { } private class Function2Comparator(val compareFn: (T,T) -> Int): Comparator { - public fun toString(): String { + public override fun toString(): String { return "Function2Comparator${compareFn}" } @@ -89,4 +89,4 @@ private class Function2Comparator(val compareFn: (T,T) -> Int): Comparator