diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/InterfaceImplBodyCodegen.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/InterfaceImplBodyCodegen.kt index c2d2a282c98..0e7637ee236 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/InterfaceImplBodyCodegen.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/InterfaceImplBodyCodegen.kt @@ -63,7 +63,7 @@ public class InterfaceImplBodyCodegen( if (DescriptorUtils.isLocal(descriptor)) return null val classDescriptorImpl = ClassDescriptorImpl( descriptor, Name.identifier(JvmAbi.DEFAULT_IMPLS_CLASS_NAME), - Modality.FINAL, Collections.emptyList(), SourceElement.NO_SOURCE) + Modality.FINAL, ClassKind.CLASS, Collections.emptyList(), SourceElement.NO_SOURCE) classDescriptorImpl.initialize(MemberScope.Empty, emptySet(), null) return classDescriptorImpl diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/SamWrapperCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/SamWrapperCodegen.java index c479c290cbf..9fb7872160b 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/SamWrapperCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/SamWrapperCodegen.java @@ -70,6 +70,7 @@ public class SamWrapperCodegen { samType.getJavaClassDescriptor().getContainingDeclaration(), fqName.shortName(), Modality.FINAL, + ClassKind.CLASS, Collections.singleton(samType.getType()), SourceElement.NO_SOURCE ); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java index 30cf2341fb5..5962b5dfdab 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java @@ -98,6 +98,7 @@ class CodegenAnnotatingVisitor extends KtVisitorVoid { correctContainerForLambda(callableDescriptor, element), Name.special(""), Modality.FINAL, + ClassKind.CLASS, supertypes, KotlinSourceElementKt.toSourceElement(element) ); diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/BuiltInClassesAreSerializableOnJvm.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/BuiltInClassesAreSerializableOnJvm.kt index 252801785ee..be1f0aaf354 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/BuiltInClassesAreSerializableOnJvm.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/BuiltInClassesAreSerializableOnJvm.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.load.kotlin import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.SourceElement @@ -53,7 +54,7 @@ class BuiltInClassesAreSerializableOnJvm( }) val mockSerializableClass = ClassDescriptorImpl( - mockJavaIoPackageFragment, Name.identifier("Serializable"), Modality.ABSTRACT, superTypes, SourceElement.NO_SOURCE + mockJavaIoPackageFragment, Name.identifier("Serializable"), Modality.ABSTRACT, ClassKind.INTERFACE, superTypes, SourceElement.NO_SOURCE ) mockSerializableClass.initialize(MemberScope.Empty, emptySet(), null) 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 78d294a9c55..aa8ad78f44f 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ClassDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ClassDescriptorImpl.java @@ -35,6 +35,7 @@ import java.util.Set; public class ClassDescriptorImpl extends ClassDescriptorBase { private final Modality modality; + private final ClassKind kind; private final TypeConstructor typeConstructor; private final MemberScope staticScope = new StaticScopeForKotlinClass(this); @@ -46,11 +47,13 @@ public class ClassDescriptorImpl extends ClassDescriptorBase { @NotNull DeclarationDescriptor containingDeclaration, @NotNull Name name, @NotNull Modality modality, + @NotNull ClassKind kind, @NotNull Collection supertypes, @NotNull SourceElement source ) { super(LockBasedStorageManager.NO_LOCKS, containingDeclaration, name, source); this.modality = modality; + this.kind = kind; this.typeConstructor = TypeConstructorImpl.createForClass(this, Annotations.Companion.getEMPTY(), false, getName().asString(), Collections.emptyList(), supertypes); @@ -109,7 +112,7 @@ public class ClassDescriptorImpl extends ClassDescriptorBase { @NotNull @Override public ClassKind getKind() { - return ClassKind.CLASS; + return kind; } @Override diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java b/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java index 30e822775a5..1cad0ac65a2 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java +++ b/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java @@ -255,7 +255,7 @@ public class ErrorUtils { private static class ErrorClassDescriptor extends ClassDescriptorImpl { public ErrorClassDescriptor(@Nullable String name) { super(getErrorModule(), Name.special(name == null ? "" : ""), - Modality.OPEN, Collections.emptyList(), SourceElement.NO_SOURCE); + Modality.OPEN, ClassKind.CLASS, Collections.emptyList(), SourceElement.NO_SOURCE); ConstructorDescriptorImpl errorConstructor = ConstructorDescriptorImpl.create(this, Annotations.Companion.getEMPTY(), true, SourceElement.NO_SOURCE); errorConstructor.initialize(Collections.emptyList(), diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/missingDependencies.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/missingDependencies.kt index 8e71d34b904..a927ac60f90 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/missingDependencies.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/missingDependencies.kt @@ -63,7 +63,7 @@ internal class PackageFragmentProviderForMissingDependencies(val moduleDescripto private class MissingDependencyErrorClassDescriptor( containing: DeclarationDescriptor, override val fullFqName: FqName -) : MissingDependencyErrorClass, ClassDescriptorImpl(containing, fullFqName.shortName(), Modality.OPEN, listOf(), SourceElement.NO_SOURCE) { +) : MissingDependencyErrorClass, ClassDescriptorImpl(containing, fullFqName.shortName(), Modality.OPEN, ClassKind.CLASS, listOf(), SourceElement.NO_SOURCE) { private val scope = ScopeWithMissingDependencies(fullFqName, this)