Class descriptors with kind OBJECT are always final

This commit is contained in:
Andrey Breslav
2012-07-19 17:19:53 +04:00
parent bd5eb0c2b5
commit c91af010e1
6 changed files with 173 additions and 2 deletions
@@ -97,9 +97,15 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
this.typeConstructor = new LazyClassTypeConstructor();
this.kind = classLikeInfo.getClassKind();
Modality defaultModality = kind == ClassKind.TRAIT ? Modality.ABSTRACT : Modality.FINAL;
if (kind == ClassKind.OBJECT) {
this.modality = Modality.FINAL;
}
else {
Modality defaultModality = kind == ClassKind.TRAIT ? Modality.ABSTRACT : Modality.FINAL;
JetModifierList modifierList = classLikeInfo.getModifierList();
this.modality = DescriptorResolver.resolveModalityFromModifiers(modifierList, defaultModality);
}
JetModifierList modifierList = classLikeInfo.getModifierList();
this.modality = DescriptorResolver.resolveModalityFromModifiers(modifierList, defaultModality);
this.visibility = DescriptorResolver.resolveVisibilityFromModifiers(modifierList, Visibilities.INTERNAL);
}