From 839cd1b10edb01feb771832a69cf351a6c1c91ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ryszard=20Wi=C5=9Bniewski?= Date: Sun, 10 Aug 2014 02:13:14 +0200 Subject: [PATCH] Fixed IllegalInstantiationCheck, so it won't recognize a constructor reference (Java8) as instantiation. Also added a test for it. --- .../checks/coding/IllegalInstantiationCheck.java | 3 +++ .../checks/coding/IllegalInstantiationCheckTest.java | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalInstantiationCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalInstantiationCheck.java index f32a00507..a6584a19f 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalInstantiationCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalInstantiationCheck.java @@ -190,6 +190,9 @@ public class IllegalInstantiationCheck */ private void processLiteralNew(DetailAST aAST) { + if (aAST.getParent().getType() == TokenTypes.METHOD_REF) { + return; + } mInstantiations.add(aAST); } diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalInstantiationCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalInstantiationCheckTest.java index b62a53568..b3bd34097 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalInstantiationCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/IllegalInstantiationCheckTest.java @@ -48,4 +48,15 @@ public class IllegalInstantiationCheckTest }; verify(checkConfig, getPath("InputSemantic.java"), expected); } + + @Test + public void testJava8() throws Exception + { + final DefaultConfiguration checkConfig = + createCheckConfig(IllegalInstantiationCheck.class); + final String[] expected = {}; + verify(checkConfig, + getPath("grammars/java8/InputMethodReferencesTest2.java"), + expected); + } }