Add isLocal() to JetClassOrObject, use it where appropriate
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+2
-3
@@ -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.
|
||||
//
|
||||
|
||||
+2
-2
@@ -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,
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user