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
@@ -154,7 +154,7 @@ public class MutableClassDescriptor extends ClassDescriptorBase implements Class
this.typeConstructor = TypeConstructorImpl.createForClass(
this,
Annotations.Companion.getEMPTY(),
!getModality().isOverridable(),
ModalityKt.isFinal(this),
getName().asString(),
typeParameters,
supertypes
@@ -40,7 +40,7 @@ private fun KotlinType.canHaveSubtypesIgnoringNullability(): Boolean {
when (descriptor) {
is TypeParameterDescriptor -> return true
is ClassDescriptor -> if (descriptor.modality.isOverridable) return true
is ClassDescriptor -> if (!descriptor.isFinal) return true
}
for ((parameter, argument) in constructor.parameters.zip(arguments)) {
@@ -447,7 +447,7 @@ public class DataFlowValueFactory {
DeclarationDescriptor containingDeclaration = propertyDescriptor.getContainingDeclaration();
if (containingDeclaration instanceof ClassDescriptor) {
ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration;
if (classDescriptor.getModality().isOverridable() && ModalityKt.isOverridable(propertyDescriptor)) return false;
if (!ModalityKt.isFinal(classDescriptor) && ModalityKt.isOverridable(propertyDescriptor)) return false;
}
else {
if (ModalityKt.isOverridable(propertyDescriptor)) {
@@ -676,7 +676,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
@Override
public boolean isFinal() {
return !getModality().isOverridable();
return getModality() == Modality.FINAL;
}
@Override