diff options
author | Ruslan Iagudin <ruslan_iagudin@epam.com> | 2017-09-13 11:23:17 +0300 |
---|---|---|
committer | Roman Ivanov <romani@users.noreply.github.com> | 2017-09-13 18:14:18 -0700 |
commit | 1a3a5e0f34e208db993b0871a9204cf594029454 (patch) | |
tree | cf03e0a2b520d83118344e5cb9525a4a35966aa9 | |
parent | 34f987bc87b80c904f591d54713758f43cd09661 (diff) | |
download | checkstyle-1a3a5e0f34e208db993b0871a9204cf594029454.tar.gz |
Issue #4157: added support for varargs
5 files changed, 39 insertions, 1 deletions
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/WhitespaceAroundCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/WhitespaceAroundCheck.java index fa434c09d..6eb7329fa 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/WhitespaceAroundCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/WhitespaceAroundCheck.java @@ -307,6 +307,7 @@ public class WhitespaceAroundCheck extends AbstractCheck { TokenTypes.WILDCARD_TYPE, TokenTypes.GENERIC_START, TokenTypes.GENERIC_END, + TokenTypes.ELLIPSIS, }; } diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/whitespace/WhitespaceAroundCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/whitespace/WhitespaceAroundCheckTest.java index 6610952a8..9be28bdb9 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/whitespace/WhitespaceAroundCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/whitespace/WhitespaceAroundCheckTest.java @@ -323,6 +323,7 @@ public class WhitespaceAroundCheckTest TokenTypes.WILDCARD_TYPE, TokenTypes.GENERIC_START, TokenTypes.GENERIC_END, + TokenTypes.ELLIPSIS, }; assertArrayEquals("Default acceptable tokens are invalid", expected, actual); } @@ -414,4 +415,20 @@ public class WhitespaceAroundCheckTest verify(checkConfig, getPath("InputWhitespaceAroundCatch.java"), expected); } + + @Test + public void testWhitespaceAroundVarargs() throws Exception { + checkConfig.addAttribute("tokens", "ELLIPSIS"); + final String[] expected = { + "9:36: " + getCheckMessage(MSG_WS_NOT_PRECEDED, "..."), + "10:40: " + getCheckMessage(MSG_WS_NOT_FOLLOWED, "..."), + "11:36: " + getCheckMessage(MSG_WS_NOT_PRECEDED, "..."), + "11:39: " + getCheckMessage(MSG_WS_NOT_FOLLOWED, "..."), + "13:28: " + getCheckMessage(MSG_WS_NOT_PRECEDED, "..."), + "13:31: " + getCheckMessage(MSG_WS_NOT_FOLLOWED, "..."), + "14:39: " + getCheckMessage(MSG_WS_NOT_PRECEDED, "..."), + "14:42: " + getCheckMessage(MSG_WS_NOT_FOLLOWED, "..."), + }; + verify(checkConfig, getPath("InputWhitespaceAroundVarargs.java"), expected); + } } diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/internal/AllChecksTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/internal/AllChecksTest.java index db553540a..b769f9c43 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/internal/AllChecksTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/internal/AllChecksTest.java @@ -158,6 +158,7 @@ public class AllChecksTest extends AbstractModuleTestSupport { CHECKSTYLE_TOKENS_IN_CONFIG_TO_IGNORE.put("WhitespaceAround", Stream.of( // we prefer no spaces on one side or both for these tokens "ARRAY_INIT", + "ELLIPSIS", // these are covered by GenericWhitespaceCheck "WILDCARD_TYPE", "GENERIC_END", "GENERIC_START").collect(Collectors.toSet())); CHECKSTYLE_TOKENS_IN_CONFIG_TO_IGNORE.put("RightCurly", Stream.of( @@ -209,6 +210,8 @@ public class AllChecksTest extends AbstractModuleTestSupport { GOOGLE_TOKENS_IN_CONFIG_TO_IGNORE.put("WhitespaceAround", Stream.of( // allowed via '4.8.3 Arrays' "ARRAY_INIT", + // '...' is almost same as '[]' by meaning + "ELLIPSIS", // google prefers no spaces on one side or both for these tokens "GENERIC_START", "GENERIC_END", "WILDCARD_TYPE") .collect(Collectors.toSet())); diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/whitespace/whitespacearound/InputWhitespaceAroundVarargs.java b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/whitespace/whitespacearound/InputWhitespaceAroundVarargs.java new file mode 100644 index 000000000..1334dfd7a --- /dev/null +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/whitespace/whitespacearound/InputWhitespaceAroundVarargs.java @@ -0,0 +1,16 @@ +//////////////////////////////////////////////////////////////////////////////// +// Test case file for checkstyle. +// Created: 2017 +//////////////////////////////////////////////////////////////////////////////// +package com.puppycrawl.tools.checkstyle.checks.whitespace.whitespacearound; + +class InputWhitespaceAroundVarargs +{ + public static void main0(String... args) { } + public static void main1(String ...args) { } + public static void main2(String...args) { } + public static void main3(String ... args) { } + public void varargs(int...arr) { } + public void doubleValue(int a, int...b) { } + +} diff --git a/src/xdocs/config_whitespace.xml b/src/xdocs/config_whitespace.xml index f8a749cde..c40160f42 100644 --- a/src/xdocs/config_whitespace.xml +++ b/src/xdocs/config_whitespace.xml @@ -2289,7 +2289,8 @@ try { <a href="apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#TYPE_EXTENSION_AND">TYPE_EXTENSION_AND</a>, <a href="apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#WILDCARD_TYPE">WILDCARD_TYPE</a>, <a href="apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#GENERIC_START">GENERIC_START</a>, - <a href="apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#GENERIC_END">GENERIC_END</a>. + <a href="apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#GENERIC_END">GENERIC_END</a>, + <a href="apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#ELLIPSIS">ELLIPSIS</a>. </td> <td> <a href="apidocs/com/puppycrawl/tools/checkstyle/api/TokenTypes.html#ASSIGN">ASSIGN</a>, |