CallableMemberDescriptor.isOverridable / ClassDescriptor.isFinal refactoring

Extra JvmField and integer constants tests
This commit is contained in:
Mikhail Glukhikh
2015-12-11 19:17:15 +03:00
parent 91621704a2
commit f5989aa4f2
12 changed files with 64 additions and 32 deletions
@@ -16,6 +16,8 @@
package org.jetbrains.kotlin.descriptors
import org.jetbrains.kotlin.resolve.DescriptorUtils
// For sealed classes, isOverridable is false but isOverridableByMembers is true
enum class Modality {
// THE ORDER OF ENTRIES MATTERS HERE
@@ -37,7 +39,13 @@ enum class Modality {
}
val CallableMemberDescriptor.isOverridable: Boolean
get() = modality != Modality.FINAL
get() = modality != Modality.FINAL && (containingDeclaration as? ClassDescriptor)?.isFinal != true
val CallableMemberDescriptor.isOverridableOrOverrides: Boolean
get() = isOverridable || DescriptorUtils.isOverride(this)
val ClassDescriptor.isFinal: Boolean
get() = modality == Modality.FINAL && kind != ClassKind.ENUM_CLASS
val ClassDescriptor.isFinalOrEnum: Boolean
get() = modality == Modality.FINAL