mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Groovy scripts don't implement Runnable
This commit is contained in:
+1
-1
@@ -165,7 +165,7 @@ public class GroovyScriptClass extends LightElement implements GrMemberOwner, Sy
|
||||
|
||||
@NotNull
|
||||
public PsiClassType[] getImplementsListTypes() {
|
||||
return new PsiClassType[]{ TypesUtil.createTypeByFQClassName(CommonClassNames.JAVA_LANG_RUNNABLE, this)};
|
||||
return PsiClassType.EMPTY_ARRAY;
|
||||
}
|
||||
|
||||
public PsiClass getSuperClass() {
|
||||
|
||||
@@ -42,23 +42,18 @@ public class GroovyRunnerUtil {
|
||||
}
|
||||
|
||||
public static boolean isRunnable(final PsiClass psiClass) {
|
||||
if (!(psiClass instanceof GrTypeDefinition) && !(psiClass instanceof GroovyScriptClass)) return false;
|
||||
if (psiClass instanceof PsiAnonymousClass) return false;
|
||||
if (psiClass.isInterface()) return false;
|
||||
final PsiClass runnable = JavaPsiFacade.getInstance(psiClass.getProject()).findClass(CommonClassNames.JAVA_LANG_RUNNABLE, psiClass.getResolveScope());
|
||||
if (runnable == null) return false;
|
||||
return psiClass.isInheritor(runnable, true);
|
||||
|
||||
return psiClass instanceof GrTypeDefinition &&
|
||||
!(psiClass instanceof PsiAnonymousClass) &&
|
||||
!psiClass.isInterface() &&
|
||||
psiClass.isInheritor(runnable, true);
|
||||
}
|
||||
|
||||
public static boolean canBeRunByGroovy(final PsiClass psiClass) {
|
||||
if (isRunnable(psiClass)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (PsiMethodUtil.hasMainMethod(psiClass) && (psiClass instanceof GrTypeDefinition || psiClass instanceof GroovyScriptClass)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return psiClass instanceof GroovyScriptClass ||
|
||||
isRunnable(psiClass) ||
|
||||
psiClass instanceof GrTypeDefinition && PsiMethodUtil.hasMainMethod(psiClass);
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -33,6 +33,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.plugins.groovy.extensions.GroovyScriptTypeDetector;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.GroovyFile;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GroovyScriptClass;
|
||||
|
||||
/**
|
||||
* @author ilyas
|
||||
*/
|
||||
@@ -56,7 +58,7 @@ public class GroovyScriptRunConfigurationProducer extends RuntimeConfigurationPr
|
||||
|
||||
GroovyFile groovyFile = (GroovyFile)file;
|
||||
final PsiClass aClass = GroovyRunnerUtil.getRunningClass(location.getPsiElement());
|
||||
if (GroovyRunnerUtil.isRunnable(aClass)) {
|
||||
if (aClass instanceof GroovyScriptClass || GroovyRunnerUtil.isRunnable(aClass)) {
|
||||
final RunnerAndConfigurationSettings settings = createConfiguration(aClass);
|
||||
if (settings != null) {
|
||||
mySourceElement = element;
|
||||
|
||||
Reference in New Issue
Block a user