mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Fix: IDEA-72915 (Don't warn about repeating labels in Spock tests)
This commit is contained in:
+5
@@ -23,6 +23,7 @@ import org.jetbrains.plugins.groovy.codeInspection.BaseInspectionVisitor;
|
||||
import org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrLabeledStatement;
|
||||
import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil;
|
||||
import org.jetbrains.plugins.groovy.spock.SpockUtils;
|
||||
|
||||
/**
|
||||
* @author Maxim.Medvedev
|
||||
@@ -61,8 +62,12 @@ public class GroovyLabeledStatementInspection extends BaseInspection {
|
||||
@Override
|
||||
public void visitLabeledStatement(GrLabeledStatement labeledStatement) {
|
||||
super.visitLabeledStatement(labeledStatement);
|
||||
|
||||
final String name = labeledStatement.getLabelName();
|
||||
if (ResolveUtil.resolveLabeledStatement(name, labeledStatement, true) != null) {
|
||||
|
||||
if (SpockUtils.isInSpockTest(labeledStatement)) return;
|
||||
|
||||
registerError(labeledStatement.getLabel(), name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.jetbrains.plugins.groovy.spock;
|
||||
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
@@ -16,6 +17,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrAssign
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.arithmetic.GrShiftExpressionImpl;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.bitwise.GrBitwiseExpressionImpl;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil;
|
||||
@@ -220,6 +222,16 @@ public class SpockUtils {
|
||||
return e;
|
||||
}
|
||||
|
||||
public static boolean isInSpockTest(@Nullable PsiElement element) {
|
||||
GrMethod method = PsiTreeUtil.getParentOfType(element, GrMethod.class);
|
||||
if (method == null) return false;
|
||||
|
||||
PsiClass containingClass = method.getContainingClass();
|
||||
if (containingClass == null) return false;
|
||||
|
||||
return GroovyPsiManager.isInheritorCached(containingClass, SPEC_CLASS_NAME);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static String getNameByReference(@Nullable PsiElement expression) {
|
||||
if (!(expression instanceof GrReferenceExpression)) return null;
|
||||
|
||||
Reference in New Issue
Block a user