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); + } }