From b73d7e19b77b982263f83c703f31caee5ea54e1f Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Thu, 5 Mar 2015 15:58:01 +0300 Subject: [PATCH] Remove various getDefaultObject() methods --- .../codegen/ImplementationBodyCodegen.java | 3 ++- .../src/org/jetbrains/kotlin/psi/JetClass.java | 16 +++++++++------- .../org/jetbrains/kotlin/psi/JetClassBody.java | 5 ----- .../kotlin/resolve/lazy/data/JetClassInfo.java | 5 ----- .../resolve/lazy/data/JetClassLikeInfo.java | 3 --- .../kotlin/resolve/lazy/data/JetObjectInfo.java | 5 ----- .../kotlin/resolve/lazy/data/JetScriptInfo.kt | 1 - .../lazy/descriptors/LazyClassDescriptor.java | 3 ++- .../idea/run/JetRunConfigurationProducer.java | 5 ++++- 9 files changed, 17 insertions(+), 29 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java index 421ae02b0ed..766903a823b 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java @@ -69,6 +69,7 @@ import org.jetbrains.org.objectweb.asm.commons.Method; import java.util.*; +import static kotlin.KotlinPackage.firstOrNull; import static org.jetbrains.kotlin.codegen.AsmUtil.*; import static org.jetbrains.kotlin.codegen.JvmCodegenUtil.*; import static org.jetbrains.kotlin.codegen.binding.CodegenBinding.enumEntryNeedSubclass; @@ -993,7 +994,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { return; } - JetObjectDeclaration defaultObject = ((JetClass) myClass).getDefaultObject(); + JetObjectDeclaration defaultObject = firstOrNull(((JetClass) myClass).getDefaultObjects()); assert defaultObject != null : "Default object not found: " + myClass.getText(); StackValue.Field field = StackValue.singleton(defaultObjectDescriptor, typeMapper); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.java index 3f6d3a6b99d..31a21ed35ef 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.java @@ -141,13 +141,6 @@ public class JetClass extends JetTypeParameterListOwnerStub imp return getStubOrPsiChild(JetStubElementTypes.CLASS_BODY); } - @Nullable - public JetObjectDeclaration getDefaultObject() { - JetClassBody body = getBody(); - if (body == null) return null; - return body.getDefaultObject(); - } - public List getProperties() { JetClassBody body = getBody(); if (body == null) return Collections.emptyList(); @@ -236,4 +229,13 @@ public class JetClass extends JetTypeParameterListOwnerStub imp } return JetPsiUtil.isLocal(this); } + + @NotNull + public List getDefaultObjects() { + JetClassBody body = getBody(); + if (body == null) { + return Collections.emptyList(); + } + return body.getAllDefaultObjects(); + } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClassBody.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClassBody.java index 0cb5eba20f1..104e6eae553 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClassBody.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClassBody.java @@ -66,11 +66,6 @@ public class JetClassBody extends JetElementImplStub getAllDefaultObjects() { List result = Lists.newArrayList(); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetClassInfo.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetClassInfo.java index e4728414135..ff3a7317a56 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetClassInfo.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetClassInfo.java @@ -45,11 +45,6 @@ public class JetClassInfo extends JetClassOrObjectInfo { } } - @Override - public JetObjectDeclaration getDefaultObject() { - return element.getDefaultObject(); - } - @Nullable @Override public JetTypeParameterList getTypeParameterList() { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetClassLikeInfo.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetClassLikeInfo.java index e88c8378e29..c4318cf4ca3 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetClassLikeInfo.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetClassLikeInfo.java @@ -33,9 +33,6 @@ public interface JetClassLikeInfo extends JetDeclarationContainer { @Nullable JetModifierList getModifierList(); - @Nullable - JetObjectDeclaration getDefaultObject(); - @NotNull @ReadOnly List getDefaultObjects(); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetObjectInfo.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetObjectInfo.java index c596620ebdf..b7538a26d75 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetObjectInfo.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetObjectInfo.java @@ -35,11 +35,6 @@ public class JetObjectInfo extends JetClassOrObjectInfo { this.kind = element.isObjectLiteral() ? ClassKind.CLASS : ClassKind.OBJECT; } - @Override - public JetObjectDeclaration getDefaultObject() { - return null; - } - @Nullable @Override public JetTypeParameterList getTypeParameterList() { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetScriptInfo.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetScriptInfo.kt index 8bcd21a4c4f..b52e89ded8a 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetScriptInfo.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/data/JetScriptInfo.kt @@ -27,7 +27,6 @@ public class JetScriptInfo( public val fqName: FqName = ScriptNameUtil.classNameForScript(script) override fun getContainingPackageFqName() = fqName.parent() override fun getModifierList() = null - override fun getDefaultObject() = null override fun getDefaultObjects() = listOf() override fun getScopeAnchor() = script override fun getCorrespondingClassOrObject() = null diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java index ee4c6723729..9ace74073d9 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java @@ -56,6 +56,7 @@ import org.jetbrains.kotlin.types.TypeUtils; import java.util.*; +import static kotlin.KotlinPackage.firstOrNull; import static org.jetbrains.kotlin.diagnostics.Errors.*; import static org.jetbrains.kotlin.resolve.BindingContext.TYPE; import static org.jetbrains.kotlin.resolve.ModifiersChecker.*; @@ -411,7 +412,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes @Nullable private JetObjectDeclaration getDefaultObjectIfAllowed() { - JetObjectDeclaration defaultObject = declarationProvider.getOwnerInfo().getDefaultObject(); + JetObjectDeclaration defaultObject = firstOrNull(declarationProvider.getOwnerInfo().getDefaultObjects()); return (defaultObject != null && isDefaultObjectAllowed()) ? defaultObject : null; } diff --git a/idea/src/org/jetbrains/kotlin/idea/run/JetRunConfigurationProducer.java b/idea/src/org/jetbrains/kotlin/idea/run/JetRunConfigurationProducer.java index 83edfd476cb..a6a5b1a6ae8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/run/JetRunConfigurationProducer.java +++ b/idea/src/org/jetbrains/kotlin/idea/run/JetRunConfigurationProducer.java @@ -28,6 +28,7 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.NotNullFunction; +import kotlin.KotlinPackage; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.descriptors.FunctionDescriptor; @@ -42,6 +43,8 @@ import org.jetbrains.kotlin.psi.*; import java.util.List; +import static kotlin.KotlinPackage.singleOrNull; + public class JetRunConfigurationProducer extends RuntimeConfigurationProducer implements Cloneable { @Nullable private PsiElement mySourceElement; @@ -117,7 +120,7 @@ public class JetRunConfigurationProducer extends RuntimeConfigurationProducer im currentElement = PsiTreeUtil.getParentOfType((PsiElement) currentElement, JetClassOrObject.class, JetFile.class)) { JetDeclarationContainer entryPointContainer = currentElement; if (entryPointContainer instanceof JetClass) { - entryPointContainer = ((JetClass) currentElement).getDefaultObject(); + entryPointContainer = singleOrNull(((JetClass) currentElement).getDefaultObjects()); } if (entryPointContainer != null && mainFunctionDetector.hasMain(entryPointContainer.getDeclarations())) return entryPointContainer; }