Add isData() to ClassDescriptor

This commit is contained in:
Alexey Tsvetkov
2015-10-14 14:44:23 +03:00
parent 1414fe1699
commit 264bd5235b
11 changed files with 48 additions and 4 deletions
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorBase;
import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
import org.jetbrains.kotlin.lexer.JetTokens;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.resolve.*;
@@ -83,6 +84,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
private final Visibility visibility;
private final NotNullLazyValue<ClassKind> kind;
private final NotNullLazyValue<Boolean> isInner;
private final NotNullLazyValue<Boolean> isData;
private final Annotations annotations;
private final Annotations danglingAnnotations;
@@ -153,6 +155,13 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
}
});
this.isData = storageManager.createLazyValue(new Function0<Boolean>() {
@Override
public Boolean invoke() {
return modifierList != null && modifierList.hasModifier(JetTokens.DATA_KEYWORD);
}
});
this.kind = storageManager.createLazyValue(new Function0<ClassKind>() {
@Override
public ClassKind invoke() {
@@ -405,6 +414,11 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
return isInner.invoke();
}
@Override
public boolean isData() {
return isData.invoke();
}
@Override
public boolean isCompanionObject() {
return isCompanionObject;