Refactoring: ClassDescriptor.isFinal, no more Modality.isOverridable

This commit is contained in:
Mikhail Glukhikh
2015-12-08 18:09:44 +03:00
parent fb406bfc24
commit 9a4eb2a368
9 changed files with 16 additions and 13 deletions
@@ -206,7 +206,7 @@ class LazyJavaClassDescriptor(
override fun getAnnotations() = Annotations.EMPTY
override fun isFinal() = !getModality().isOverridable
override fun isFinal(): Boolean = isFinal
override fun isDenotable() = true
@@ -17,13 +17,13 @@
package org.jetbrains.kotlin.descriptors
// For sealed classes, isOverridable is false but isOverridableByMembers is true
enum class Modality private constructor(val isOverridable: Boolean) {
enum class Modality {
// THE ORDER OF ENTRIES MATTERS HERE
FINAL(false),
FINAL,
// NB: class can be sealed but not function or property
SEALED(true),
OPEN(true),
ABSTRACT(true);
SEALED,
OPEN,
ABSTRACT;
companion object {
@@ -39,3 +39,5 @@ enum class Modality private constructor(val isOverridable: Boolean) {
val CallableMemberDescriptor.isOverridable: Boolean
get() = modality != Modality.FINAL
val ClassDescriptor.isFinal: Boolean
get() = modality == Modality.FINAL
@@ -181,7 +181,7 @@ public class DeserializedClassDescriptor(
override fun getSupertypes() = supertypes()
override fun isFinal() = !getModality().isOverridable
override fun isFinal(): Boolean = isFinal
override fun isDenotable() = true