Add isTopLevel() to PsiJetClassStub

This commit is contained in:
Pavel V. Talanov
2014-03-31 14:09:17 +04:00
parent 6a6a52e53c
commit 7e56311d6f
4 changed files with 15 additions and 5 deletions
@@ -26,4 +26,6 @@ public interface PsiJetClassOrObjectStub<T extends JetClassOrObject> extends Psi
@NotNull @NotNull
List<String> getSuperNames(); List<String> getSuperNames();
boolean isTopLevel();
} }
@@ -19,7 +19,6 @@ package org.jetbrains.jet.lang.psi.stubs;
import org.jetbrains.jet.lang.psi.JetObjectDeclaration; import org.jetbrains.jet.lang.psi.JetObjectDeclaration;
public interface PsiJetObjectStub extends PsiJetClassOrObjectStub<JetObjectDeclaration> { public interface PsiJetObjectStub extends PsiJetClassOrObjectStub<JetObjectDeclaration> {
boolean isTopLevel();
boolean isClassObject(); boolean isClassObject();
boolean isObjectLiteral(); boolean isObjectLiteral();
} }
@@ -67,8 +67,7 @@ public class JetClassElementType extends JetStubElementType<PsiJetClassStub, Jet
return new PsiJetClassStubImpl( return new PsiJetClassStubImpl(
getStubType(isEnumEntry), parentStub, StringRef.fromString(fqName != null ? fqName.asString() : null), getStubType(isEnumEntry), parentStub, StringRef.fromString(fqName != null ? fqName.asString() : null),
StringRef.fromString(psi.getName()), Utils.instance$.wrapStrings(superNames), psi.isTrait(), psi.isEnum(), isEnumEntry, StringRef.fromString(psi.getName()), Utils.instance$.wrapStrings(superNames), psi.isTrait(), psi.isEnum(), isEnumEntry,
psi.isAnnotation(), psi.isInner(), JetPsiUtil.isLocal(psi) psi.isAnnotation(), psi.isInner(), JetPsiUtil.isLocal(psi), psi.isTopLevel());
);
} }
@Override @Override
@@ -82,6 +81,7 @@ public class JetClassElementType extends JetStubElementType<PsiJetClassStub, Jet
dataStream.writeBoolean(stub.isAnnotation()); dataStream.writeBoolean(stub.isAnnotation());
dataStream.writeBoolean(stub.isInner()); dataStream.writeBoolean(stub.isInner());
dataStream.writeBoolean(stub.isLocal()); dataStream.writeBoolean(stub.isLocal());
dataStream.writeBoolean(stub.isTopLevel());
List<String> superNames = stub.getSuperNames(); List<String> superNames = stub.getSuperNames();
dataStream.writeVarInt(superNames.size()); dataStream.writeVarInt(superNames.size());
@@ -101,6 +101,7 @@ public class JetClassElementType extends JetStubElementType<PsiJetClassStub, Jet
boolean isAnnotation = dataStream.readBoolean(); boolean isAnnotation = dataStream.readBoolean();
boolean isInner = dataStream.readBoolean(); boolean isInner = dataStream.readBoolean();
boolean isLocal = dataStream.readBoolean(); boolean isLocal = dataStream.readBoolean();
boolean isTopLevel = dataStream.readBoolean();
int superCount = dataStream.readVarInt(); int superCount = dataStream.readVarInt();
StringRef[] superNames = StringRef.createArray(superCount); StringRef[] superNames = StringRef.createArray(superCount);
@@ -109,7 +110,7 @@ public class JetClassElementType extends JetStubElementType<PsiJetClassStub, Jet
} }
return new PsiJetClassStubImpl(getStubType(isEnumEntry), parentStub, qualifiedName, name, superNames, return new PsiJetClassStubImpl(getStubType(isEnumEntry), parentStub, qualifiedName, name, superNames,
isTrait, isEnumClass, isEnumEntry, isAnnotation, isInner, isLocal); isTrait, isEnumClass, isEnumEntry, isAnnotation, isInner, isLocal, isTopLevel);
} }
@Override @Override
@@ -41,6 +41,7 @@ public class PsiJetClassStubImpl extends StubBase<JetClass> implements PsiJetCla
private final boolean isAnnotation; private final boolean isAnnotation;
private final boolean isInner; private final boolean isInner;
private final boolean isLocal; private final boolean isLocal;
private final boolean isTopLevel;
public PsiJetClassStubImpl( public PsiJetClassStubImpl(
JetClassElementType type, JetClassElementType type,
@@ -53,7 +54,8 @@ public class PsiJetClassStubImpl extends StubBase<JetClass> implements PsiJetCla
boolean isEnumEntry, boolean isEnumEntry,
boolean isAnnotation, boolean isAnnotation,
boolean isInner, boolean isInner,
boolean isLocal boolean isLocal,
boolean isTopLevel
) { ) {
super(parent, type); super(parent, type);
this.qualifiedName = qualifiedName; this.qualifiedName = qualifiedName;
@@ -65,6 +67,7 @@ public class PsiJetClassStubImpl extends StubBase<JetClass> implements PsiJetCla
this.isAnnotation = isAnnotation; this.isAnnotation = isAnnotation;
this.isInner = isInner; this.isInner = isInner;
this.isLocal = isLocal; this.isLocal = isLocal;
this.isTopLevel = isTopLevel;
} }
@Override @Override
@@ -121,6 +124,11 @@ public class PsiJetClassStubImpl extends StubBase<JetClass> implements PsiJetCla
return result; return result;
} }
@Override
public boolean isTopLevel() {
return isTopLevel;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();