From f72f548a935884901ae7b060e8cb5e5123df0f38 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Wed, 4 Mar 2015 16:24:13 +0300 Subject: [PATCH] Add ClassDescriptor#isDefaultObject() with dummy implementations for now --- .../kotlin/descriptors/impl/MutableClassDescriptor.java | 5 +++++ .../kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java | 5 +++++ .../load/java/lazy/descriptors/LazyJavaClassDescriptor.kt | 2 ++ .../org/jetbrains/kotlin/descriptors/ClassDescriptor.java | 2 ++ .../kotlin/descriptors/impl/ClassDescriptorImpl.java | 5 +++++ .../descriptors/impl/EnumEntrySyntheticClassDescriptor.java | 5 +++++ .../descriptors/impl/LazySubstitutingClassDescriptor.java | 5 +++++ .../descriptors/DeserializedClassDescriptor.kt | 2 ++ 8 files changed, 31 insertions(+) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/MutableClassDescriptor.java b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/MutableClassDescriptor.java index 83b12faf38b..1c5496370f2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/MutableClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/MutableClassDescriptor.java @@ -143,6 +143,11 @@ public class MutableClassDescriptor extends ClassDescriptorBase implements Class return isInner; } + @Override + public boolean isDefaultObject() { + return getKind() == ClassKind.CLASS_OBJECT; + } + @NotNull @Override public TypeConstructor getTypeConstructor() { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java index fe6449d514c..8613d0fc252 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java @@ -439,6 +439,11 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes return isInner; } + @Override + public boolean isDefaultObject() { + return getKind() == ClassKind.CLASS_OBJECT; + } + @NotNull @Override public Annotations getAnnotations() { diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt index 8b7f3fa55b0..5309e2d1469 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt @@ -100,6 +100,8 @@ class LazyJavaClassDescriptor( override fun getFunctionTypeForSamInterface(): JetType? = functionTypeForSamInterface() + override fun isDefaultObject() = false + override fun toString() = "lazy java class $fqName" private inner class LazyJavaClassTypeConstructor : AbstractClassTypeConstructor() { diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/ClassDescriptor.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/ClassDescriptor.java index 5c6e2a7019d..2034468e0fb 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/ClassDescriptor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/ClassDescriptor.java @@ -82,6 +82,8 @@ public interface ClassDescriptor extends ClassifierDescriptor, MemberDescriptor, */ boolean isInner(); + boolean isDefaultObject(); + @NotNull ReceiverParameterDescriptor getThisAsReceiverParameter(); diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ClassDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ClassDescriptorImpl.java index 9bc9bfad73d..86717de71e0 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ClassDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ClassDescriptorImpl.java @@ -111,6 +111,11 @@ public class ClassDescriptorImpl extends ClassDescriptorBase { return ClassKind.CLASS; } + @Override + public boolean isDefaultObject() { + return false; + } + @Override public ConstructorDescriptor getUnsubstitutedPrimaryConstructor() { return primaryConstructor; diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/EnumEntrySyntheticClassDescriptor.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/EnumEntrySyntheticClassDescriptor.java index 1572a207946..cb64d40b0a8 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/EnumEntrySyntheticClassDescriptor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/EnumEntrySyntheticClassDescriptor.java @@ -142,6 +142,11 @@ public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase { return false; } + @Override + public boolean isDefaultObject() { + return false; + } + @Nullable @Override public ConstructorDescriptor getUnsubstitutedPrimaryConstructor() { diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/LazySubstitutingClassDescriptor.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/LazySubstitutingClassDescriptor.java index e3bb4f4c01b..a4f32e50b90 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/LazySubstitutingClassDescriptor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/LazySubstitutingClassDescriptor.java @@ -196,6 +196,11 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor { return original.isInner(); } + @Override + public boolean isDefaultObject() { + return original.isDefaultObject(); + } + @Override public R accept(DeclarationDescriptorVisitor visitor, D data) { return visitor.visitClassDescriptor(this, data); diff --git a/core/serialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt b/core/serialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt index 423b51649a5..d8f67f333d6 100644 --- a/core/serialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt +++ b/core/serialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt @@ -88,6 +88,8 @@ public class DeserializedClassDescriptor( override fun getStaticScope() = staticScope + override fun isDefaultObject(): Boolean = getKind() == ClassKind.CLASS_OBJECT + private fun computePrimaryConstructor(): ConstructorDescriptor? { if (!classProto.hasPrimaryConstructor()) return null