[groovy] fix unnecessary semicolon within traditional loops

This commit is contained in:
Daniil Ovchinnikov
2016-08-30 18:12:03 +03:00
parent 10821e067b
commit ecadbc0a46
2 changed files with 6 additions and 0 deletions
@@ -25,6 +25,7 @@ import com.intellij.psi.tree.TokenSet;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.groovy.codeInspection.GroovySuppressableInspectionTool;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.clauses.GrTraditionalForClause;
import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil;
import static com.intellij.psi.tree.TokenSet.andNot;
@@ -79,6 +80,7 @@ public class GrUnnecessarySemicolonInspection extends GroovySuppressableInspecti
}
private static boolean isSemicolonUnnecessary(@NotNull PsiElement semicolon) {
if (semicolon.getParent() instanceof GrTraditionalForClause) return false;
PsiElement next = PsiUtil.skipLeafSet(semicolon, true, FORWARD_SET);
if (next == null) return true;
if (next.getNode().getElementType() == mNLS) {
@@ -75,6 +75,10 @@ print(a); {->}
doTest 'for (int i = 0; i < 10;) {}'
}
void 'test traditional for without condition'() {
doTest 'for (int i = 0; ; i++) {}'
}
void 'test class members'() {
doTest '''\
class A {