diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClass.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClass.java index 0b1b54b0509..dc232e66306 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClass.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClass.java @@ -1,7 +1,6 @@ package org.jetbrains.jet.lang.psi; import com.intellij.lang.ASTNode; -import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.JetNodeTypes; @@ -105,17 +104,6 @@ public class JetClass extends JetTypeParameterListOwner implements JetClassOrObj return body.getProperties(); } - public String getFQName() { - JetNamedDeclaration parent = PsiTreeUtil.getParentOfType(this, JetNamespace.class, JetClass.class); - if (parent instanceof JetNamespace) { - return ((JetNamespace) parent).getFQName() + "." + getName(); - } - if (parent instanceof JetClass) { - return ((JetClass) parent).getFQName() + "." + getName(); - } - return getName(); - } - public boolean isTrait() { return findChildByType(JetTokens.TRAIT_KEYWORD) != null; } diff --git a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationProducer.java b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationProducer.java index 439124e4b46..b99895b0542 100644 --- a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationProducer.java +++ b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationProducer.java @@ -8,7 +8,11 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; -import org.jetbrains.jet.lang.psi.*; +import com.intellij.psi.util.PsiTreeUtil; +import org.jetbrains.jet.lang.psi.JetClass; +import org.jetbrains.jet.lang.psi.JetFile; +import org.jetbrains.jet.lang.psi.JetNamedDeclaration; +import org.jetbrains.jet.lang.psi.JetNamespace; import org.jetbrains.jet.plugin.JetMainDetector; /** @@ -21,6 +25,17 @@ public class JetRunConfigurationProducer extends RuntimeConfigurationProducer im super(JetRunConfigurationType.getInstance()); } + private static String getFQName(JetClass jetClass) { + JetNamedDeclaration parent = PsiTreeUtil.getParentOfType(jetClass, JetNamespace.class, JetClass.class); + if (parent instanceof JetNamespace) { + return ((JetNamespace) parent).getFQName() + "." + jetClass.getName(); + } + if (parent instanceof JetClass) { + return getFQName(((JetClass) parent)) + "." + jetClass.getName(); + } + return jetClass.getName(); + } + @Override public PsiElement getSourceElement() { return mySourceElement; @@ -31,7 +46,7 @@ public class JetRunConfigurationProducer extends RuntimeConfigurationProducer im JetClass containingClass = (JetClass) location.getParentElement(JetClass.class); if (containingClass != null && JetMainDetector.hasMain(containingClass.getDeclarations())) { mySourceElement = containingClass; - return createConfigurationByQName(location.getModule(), configurationContext, containingClass.getFQName()); + return createConfigurationByQName(location.getModule(), configurationContext, getFQName(containingClass)); } PsiFile psiFile = location.getPsiElement().getContainingFile(); if (psiFile instanceof JetFile) {