From ec20c822a102896281bc9864f76d2677b1f2b2d3 Mon Sep 17 00:00:00 2001
From: liscju
@@ -167,6 +168,7 @@ public class LeftCurlyCheck TokenTypes.LITERAL_FOR, TokenTypes.STATIC_INIT, TokenTypes.OBJBLOCK, + TokenTypes.LAMBDA, }; } @@ -208,6 +210,7 @@ public class LeftCurlyCheck case TokenTypes.LITERAL_DO: case TokenTypes.LITERAL_IF: case TokenTypes.STATIC_INIT: + case TokenTypes.LAMBDA: startToken = ast; brace = ast.findFirstToken(TokenTypes.SLIST); break; diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheckTest.java index 35a6dafad..547baf4b9 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheckTest.java @@ -51,6 +51,12 @@ public class LeftCurlyCheckTest extends BaseCheckTestSupport { + "blocks" + File.separator + filename); } + @Override + protected String getNonCompilablePath(String filename) throws IOException { + return super.getNonCompilablePath("checks" + File.separator + + "blocks" + File.separator + filename); + } + /* Additional test for jacoco, since valueOf() * is generated by javac and jacoco reports that * valueOf() is uncovered. @@ -280,6 +286,28 @@ public class LeftCurlyCheckTest extends BaseCheckTestSupport { verify(checkConfig, getPath("InputLeftCurlyEnums.java"), expectedWhileFalse); } + @Test + public void testDefaultLambda() throws Exception { + final String[] expected = { + "5:1: " + getCheckMessage(MSG_KEY_LINE_PREVIOUS, "{", 1), + "12:32: " + getCheckMessage(MSG_KEY_LINE_BREAK_AFTER, "{", 32), + "15:5: " + getCheckMessage(MSG_KEY_LINE_PREVIOUS, "{", 5), + }; + verify(checkConfig, getNonCompilablePath("InputLeftCurlyNewLineOptionWithLambda.java"), + expected); + } + + @Test + public void testNewLineOptionWithLambda() throws Exception { + checkConfig.addAttribute("option", LeftCurlyOption.NL.toString()); + final String[] expected = { + "6:32: " + getCheckMessage(MSG_KEY_LINE_NEW, "{", 32), + "12:32: " + getCheckMessage(MSG_KEY_LINE_NEW, "{", 32), + }; + verify(checkConfig, getNonCompilablePath("InputLeftCurlyNewLineOptionWithLambda.java"), + expected); + } + @Test public void testGetAcceptableTokens() { final LeftCurlyCheck check = new LeftCurlyCheck(); @@ -303,7 +331,8 @@ public class LeftCurlyCheckTest extends BaseCheckTestSupport { TokenTypes.LITERAL_ELSE, TokenTypes.LITERAL_FOR, TokenTypes.STATIC_INIT, - TokenTypes.OBJBLOCK, }; + TokenTypes.OBJBLOCK, + TokenTypes.LAMBDA, }; assertArrayEquals(expected, actual); } diff --git a/src/test/resources-noncompilable/com/puppycrawl/tools/checkstyle/checks/blocks/InputLeftCurlyNewLineOptionWithLambda.java b/src/test/resources-noncompilable/com/puppycrawl/tools/checkstyle/checks/blocks/InputLeftCurlyNewLineOptionWithLambda.java new file mode 100644 index 000000000..8ce0e26fb --- /dev/null +++ b/src/test/resources-noncompilable/com/puppycrawl/tools/checkstyle/checks/blocks/InputLeftCurlyNewLineOptionWithLambda.java @@ -0,0 +1,18 @@ +//Compilable with Java8 +package com.puppycrawl.tools.checkstyle.checks.blocks; + +public class InputLeftCurlyNewLineOptionWithLambda +{ + static Runnable r1 = () -> { + System.out.println("Hello world one!"); + }; + + static Runnable r2 = () -> System.out.println("Hello world two!"); + + static Runnable r3 = () -> {System.out.println("Hello world two!");}; + + static Runnable r4 = () -> + { + System.out.println("Hello world one!"); + }; +} diff --git a/src/xdocs/config_blocks.xml b/src/xdocs/config_blocks.xml index a36913e07..0baf3edfc 100644 --- a/src/xdocs/config_blocks.xml +++ b/src/xdocs/config_blocks.xml @@ -471,7 +471,8 @@ try { LITERAL_ELSE, LITERAL_FOR, STATIC_INIT, - OBJBLOCK. + OBJBLOCK, + LAMBDA.