Add isLocal() to JetClassOrObject, use it where appropriate

This commit is contained in:
Pavel V. Talanov
2014-04-02 18:06:52 +04:00
parent 77a6b4444b
commit 7046168868
10 changed files with 21 additions and 10 deletions
@@ -983,7 +983,7 @@ public class JetControlFlowProcessor {
generateInstructions(specifier, context);
}
List<JetDeclaration> declarations = classOrObject.getDeclarations();
if (JetPsiUtil.isLocal(classOrObject)) {
if (classOrObject.isLocal()) {
for (JetDeclaration declaration : declarations) {
generateInstructions(declaration, context);
}
@@ -215,4 +215,9 @@ public class JetClass extends JetTypeParameterListOwnerStub<PsiJetClassStub> imp
public boolean isTopLevel() {
return getContainingFile() == getParent();
}
@Override
public boolean isLocal() {
return JetPsiUtil.isLocal(this);
}
}
@@ -51,4 +51,6 @@ public interface JetClassOrObject extends PsiNameIdentifierOwner, JetDeclaration
JetClassBody getBody();
boolean isTopLevel();
boolean isLocal();
}
@@ -139,6 +139,11 @@ public class JetObjectDeclaration extends JetNamedDeclarationStub<PsiJetObjectSt
return (JetClassBody) findChildByType(JetNodeTypes.CLASS_BODY);
}
@Override
public boolean isLocal() {
return JetPsiUtil.isLocal(this);
}
@Override
@NotNull
public List<JetDeclaration> getDeclarations() {
@@ -310,7 +310,7 @@ public class JetPsiUtil {
public static void deleteClass(@NotNull JetClassOrObject clazz) {
CheckUtil.checkWritable(clazz);
JetFile file = clazz.getContainingJetFile();
if (isLocal(clazz) || file.getDeclarations().size() > 1) {
if (clazz.isLocal() || file.getDeclarations().size() > 1) {
PsiElement parent = clazz.getParent();
CodeEditUtil.removeChild(parent.getNode(), clazz.getNode());
}
@@ -67,7 +67,7 @@ public class JetClassElementType extends JetStubElementType<PsiJetClassStub, Jet
return new PsiJetClassStubImpl(
getStubType(isEnumEntry), parentStub, StringRef.fromString(fqName != null ? fqName.asString() : null),
StringRef.fromString(psi.getName()), Utils.instance$.wrapStrings(superNames), psi.isTrait(), psi.isEnum(), isEnumEntry,
psi.isAnnotation(), psi.isInner(), JetPsiUtil.isLocal(psi), psi.isTopLevel());
psi.isAnnotation(), psi.isInner(), psi.isLocal(), psi.isTopLevel());
}
@Override
@@ -53,7 +53,7 @@ public class JetObjectElementType extends JetStubElementType<PsiJetObjectStub, J
FqName fqName = ResolveSessionUtils.safeFqNameForLazyResolve(psi);
List<String> superNames = PsiUtilPackage.getSuperNames(psi);
return new PsiJetObjectStubImpl(parentStub, StringRef.fromString(name), fqName, Utils.instance$.wrapStrings(superNames),
psi.isTopLevel(), isClassObject(psi), JetPsiUtil.isLocal(psi), psi.isObjectLiteral());
psi.isTopLevel(), isClassObject(psi), psi.isLocal(), psi.isObjectLiteral());
}
@Override
@@ -49,7 +49,6 @@ import org.jetbrains.jet.codegen.state.Progress;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.psi.JetClassOrObject;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetPsiUtil;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.BindingContextUtils;
import org.jetbrains.jet.lang.resolve.name.FqName;
@@ -120,7 +119,7 @@ public class KotlinJavaFileStubProvider<T extends WithFileStub> implements Cache
public static KotlinJavaFileStubProvider<OutermostKotlinClassLightClassData> createForDeclaredClass(@NotNull final JetClassOrObject classOrObject) {
return new KotlinJavaFileStubProvider<OutermostKotlinClassLightClassData>(
classOrObject.getProject(),
JetPsiUtil.isLocal(classOrObject),
classOrObject.isLocal(),
new StubGenerationStrategy<OutermostKotlinClassLightClassData>() {
private JetFile getFile() {
return classOrObject.getContainingJetFile();
@@ -198,7 +197,7 @@ public class KotlinJavaFileStubProvider<T extends WithFileStub> implements Cache
return true;
}
if (JetPsiUtil.isLocal(generatedClassOrObject) && JetPsiUtil.isLocal(classOrObject)) {
if (generatedClassOrObject.isLocal() && classOrObject.isLocal()) {
// Local classes should be process by CodegenAnnotatingVisitor to
// decide what class they should be placed in.
//
@@ -82,7 +82,7 @@ public class KotlinLightClassForExplicitDeclaration extends KotlinWrappingLightC
}
private static String getJvmInternalName(JetClassOrObject classOrObject) {
if (JetPsiUtil.isLocal(classOrObject)) {
if (classOrObject.isLocal()) {
LightClassDataForKotlinClass data = getLightClassDataExactly(classOrObject);
return data != null ? data.getJvmInternalName() : "";
}
@@ -97,7 +97,7 @@ public class KotlinLightClassForExplicitDeclaration extends KotlinWrappingLightC
@Nullable
@Override
protected PsiElement compute() {
if (JetPsiUtil.isLocal(classOrObject)) {
if (classOrObject.isLocal()) {
//noinspection unchecked
PsiElement declaration = JetPsiUtil.getTopmostParentOfTypes(
classOrObject,
@@ -97,7 +97,7 @@ public class IDELightClassGenerationSupport extends LightClassGenerationSupport
public LightClassConstructionContext getContextForClassOrObject(@NotNull JetClassOrObject classOrObject) {
ResolveSessionForBodies session = ResolvePackage.getLazyResolveSession(classOrObject);
if (JetPsiUtil.isLocal(classOrObject)) {
if (classOrObject.isLocal()) {
BindingContext bindingContext = session.resolveToElement(classOrObject);
ClassDescriptor descriptor = bindingContext.get(BindingContext.CLASS, classOrObject);