diff --git a/pom.xml b/pom.xml index 5971c1273..8888b6995 100644 --- a/pom.xml +++ b/pom.xml @@ -1112,7 +1112,6 @@ .*.checks.coding.ExplicitInitializationCheck9197 .*.checks.coding.FinalLocalVariableCheck83100 .*.checks.coding.IllegalInstantiationCheck8197 - .*.checks.coding.IllegalTypeCheck9394 .*.checks.coding.ModifiedControlVariableCheck9197 .*.checks.coding.OverloadMethodsDeclarationOrderCheck93100 .*.checks.coding.ParameterAssignmentCheck8096 diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheck.java index 49f3c0632..b3ba08b86 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheck.java @@ -251,7 +251,7 @@ public final class IllegalTypeCheck extends AbstractFormatCheck { */ private void visitImport(DetailAST importAst) { if (!isStarImport(importAst)) { - final String canonicalName = getCanonicalName(importAst); + final String canonicalName = getImportedTypeCanonicalName(importAst); extendIllegalClassNamesWithShortName(canonicalName); } } @@ -327,14 +327,12 @@ public final class IllegalTypeCheck extends AbstractFormatCheck { * @param importAst {@link TokenTypes#IMPORT Import} * @return Imported canonical type's name. */ - private static String getCanonicalName(DetailAST importAst) { + private static String getImportedTypeCanonicalName(DetailAST importAst) { final StringBuilder canonicalNameBuilder = new StringBuilder(); DetailAST toVisit = importAst; while (toVisit != null) { toVisit = getNextSubTreeNode(toVisit, importAst); - if (toVisit != null - && (toVisit.getType() == TokenTypes.IDENT - || toVisit.getType() == TokenTypes.STAR)) { + if (toVisit != null && toVisit.getType() == TokenTypes.IDENT) { canonicalNameBuilder.append(toVisit.getText()); final DetailAST nextSubTreeNode = getNextSubTreeNode(toVisit, importAst); if (nextSubTreeNode.getType() != TokenTypes.SEMI) { @@ -389,15 +387,6 @@ public final class IllegalTypeCheck extends AbstractFormatCheck { Collections.addAll(illegalClassNames, classNames); } - /** - * Get the list of illegal variable types. - * @return array of illegal variable types - */ - public String[] getIllegalClassNames() { - return illegalClassNames.toArray( - new String[illegalClassNames.size()]); - } - /** * Set the list of ignore method names. * @param methodNames array of ignored method names @@ -407,15 +396,6 @@ public final class IllegalTypeCheck extends AbstractFormatCheck { Collections.addAll(ignoredMethodNames, methodNames); } - /** - * Get the list of ignored method names. - * @return array of ignored method names - */ - public String[] getIgnoredMethodNames() { - return ignoredMethodNames.toArray( - new String[ignoredMethodNames.size()]); - } - /** * Set the list of legal abstract class names. * @param classNames array of legal abstract class names @@ -425,15 +405,6 @@ public final class IllegalTypeCheck extends AbstractFormatCheck { Collections.addAll(legalAbstractClassNames, classNames); } - /** - * Get the list of legal abstract class names. - * @return array of legal abstract class names - */ - public String[] getLegalAbstractClassNames() { - return legalAbstractClassNames.toArray( - new String[legalAbstractClassNames.size()]); - } - /** * Set the list of member modifiers (of methods and fields) which should be checked. * @param modifiers String contains modifiers. diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheckTest.java index 920fe630b..56e5e6145 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalTypeCheckTest.java @@ -29,6 +29,8 @@ import org.junit.Test; import com.puppycrawl.tools.checkstyle.BaseCheckTestSupport; import com.puppycrawl.tools.checkstyle.DefaultConfiguration; +import com.puppycrawl.tools.checkstyle.api.DetailAST; +import com.puppycrawl.tools.checkstyle.api.TokenTypes; public class IllegalTypeCheckTest extends BaseCheckTestSupport { private DefaultConfiguration checkConfig; @@ -168,4 +170,20 @@ public class IllegalTypeCheckTest extends BaseCheckTestSupport { Assert.assertNotNull(check.getDefaultTokens()); Assert.assertNotNull(check.getRequiredTokens()); } + + @Test + public void testImproperToken() throws Exception { + IllegalTypeCheck check = new IllegalTypeCheck(); + + DetailAST classDefAst = new DetailAST(); + classDefAst.setType(TokenTypes.CLASS_DEF); + + try { + check.visitToken(classDefAst); + Assert.fail(); + } + catch (IllegalStateException e) { + // it is OK + } + } } diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/coding/InputIllegalType.java b/src/test/resources/com/puppycrawl/tools/checkstyle/coding/InputIllegalType.java index 10c69b618..9254eff22 100644 --- a/src/test/resources/com/puppycrawl/tools/checkstyle/coding/InputIllegalType.java +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/coding/InputIllegalType.java @@ -18,4 +18,7 @@ public class InputIllegalType { static class SomeStaticClass { } + + InputIllegalType(Integer i) {} + private void table2(Integer i) {} }