mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-111780 Extract method from static closure should create static method
This commit is contained in:
+3
-3
@@ -21,7 +21,7 @@ import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiModifier;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMember;
|
||||
import org.jetbrains.plugins.groovy.refactoring.extract.ExtractInfoHelperBase;
|
||||
import org.jetbrains.plugins.groovy.refactoring.extract.InitialInfo;
|
||||
|
||||
@@ -88,8 +88,8 @@ public class ExtractMethodInfoHelper extends ExtractInfoHelperBase {
|
||||
private static boolean canBeStatic(PsiElement statement) {
|
||||
PsiElement parent = statement.getParent();
|
||||
while (parent != null && !(parent instanceof PsiFile)) {
|
||||
if (parent instanceof GrMethod) {
|
||||
return ((GrMethod) parent).hasModifierProperty(PsiModifier.STATIC);
|
||||
if (parent instanceof GrMember) {
|
||||
return ((GrMember) parent).hasModifierProperty(PsiModifier.STATIC);
|
||||
}
|
||||
parent = parent.getParent();
|
||||
}
|
||||
|
||||
+41
@@ -198,4 +198,45 @@ private int testMethod() {
|
||||
}
|
||||
''')
|
||||
}
|
||||
|
||||
void testExtractMethodFromStaticFieldClosureInitializer() {
|
||||
doTest('''\
|
||||
class Foo {
|
||||
static constraints = {
|
||||
bar validator: { val, obj ->
|
||||
<begin>println "validating ${obj}.$val"<end>
|
||||
}
|
||||
}
|
||||
}
|
||||
''', '''\
|
||||
class Foo {
|
||||
static constraints = {
|
||||
bar validator: { val, obj ->
|
||||
testMethod(obj, val)
|
||||
}
|
||||
}
|
||||
|
||||
private static testMethod(obj, val) {
|
||||
println "validating ${obj}.$val"
|
||||
}
|
||||
}
|
||||
''')
|
||||
}
|
||||
|
||||
void testExtractMethodFromStaticFieldInitializer() {
|
||||
doTest('''\
|
||||
class Foo {
|
||||
static constraints = <begin>2<end>
|
||||
}
|
||||
''', '''\
|
||||
class Foo {
|
||||
static constraints = testMethod()
|
||||
|
||||
private static int testMethod() {
|
||||
return 2
|
||||
}
|
||||
}
|
||||
''')
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user