diff --git a/pitest-entry/pom.xml b/pitest-entry/pom.xml
index a7f2e2293..18ad37129 100644
--- a/pitest-entry/pom.xml
+++ b/pitest-entry/pom.xml
@@ -176,7 +176,23 @@
${hamcrest.version}
test
-
+
+
+
+ org.jetbrains.kotlinx
+ kotlinx-coroutines-core
+ 1.8.1
+ pom
+ runtime
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ 2.0.20
+
+
+
diff --git a/pitest-entry/src/main/resources/functional_interfaces.txt b/pitest-entry/src/main/resources/functional_interfaces.txt
index 4240ce000..25eee8bf9 100644
--- a/pitest-entry/src/main/resources/functional_interfaces.txt
+++ b/pitest-entry/src/main/resources/functional_interfaces.txt
@@ -130,4 +130,29 @@ com/google/common/util/concurrent/ClosingFuture$Combiner4$AsyncClosingFunction4
com/google/common/util/concurrent/ClosingFuture$Combiner4$ClosingFunction4
com/google/common/util/concurrent/ClosingFuture$Combiner5$AsyncClosingFunction5
com/google/common/util/concurrent/ClosingFuture$Combiner5$ClosingFunction5
-com/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer
\ No newline at end of file
+com/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer
+kotlin/Function
+kotlin/jvm/functions/Function0
+kotlin/jvm/functions/Function1
+kotlin/jvm/functions/Function10
+kotlin/jvm/functions/Function11
+kotlin/jvm/functions/Function12
+kotlin/jvm/functions/Function13
+kotlin/jvm/functions/Function14
+kotlin/jvm/functions/Function15
+kotlin/jvm/functions/Function16
+kotlin/jvm/functions/Function17
+kotlin/jvm/functions/Function18
+kotlin/jvm/functions/Function19
+kotlin/jvm/functions/Function2
+kotlin/jvm/functions/Function20
+kotlin/jvm/functions/Function21
+kotlin/jvm/functions/Function22
+kotlin/jvm/functions/Function3
+kotlin/jvm/functions/Function4
+kotlin/jvm/functions/Function5
+kotlin/jvm/functions/Function6
+kotlin/jvm/functions/Function7
+kotlin/jvm/functions/Function8
+kotlin/jvm/functions/Function9
+kotlin/jvm/functions/FunctionN
diff --git a/pitest-entry/src/test/java/org/pitest/mutationtest/build/intercept/staticinitializers/FunctionalInterfaceScannerTest.java b/pitest-entry/src/test/java/org/pitest/mutationtest/build/intercept/staticinitializers/FunctionalInterfaceScannerTest.java
index aef14f206..b2af27cf4 100644
--- a/pitest-entry/src/test/java/org/pitest/mutationtest/build/intercept/staticinitializers/FunctionalInterfaceScannerTest.java
+++ b/pitest-entry/src/test/java/org/pitest/mutationtest/build/intercept/staticinitializers/FunctionalInterfaceScannerTest.java
@@ -3,6 +3,7 @@
import org.junit.Test;
import org.pitest.bytecode.analysis.ClassTree;
import org.pitest.classinfo.ClassByteArraySource;
+import org.pitest.classpath.ClassPath;
import org.pitest.classpath.ClassloaderByteArraySource;
import org.pitest.classpath.CodeSource;
import org.pitest.mutationtest.FixedCodeSource;
@@ -10,7 +11,9 @@
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.util.List;
import java.util.function.Function;
+import java.util.stream.Collectors;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
@@ -31,7 +34,7 @@ public void recognisesFunctionalInterfaces() {
}
- /*
+
@Test
public void wholeClassPath() throws Exception {
ClassPath cp = new ClassPath();
@@ -39,14 +42,17 @@ public void wholeClassPath() throws Exception {
.map(n -> source.getBytes(n))
.map(b -> ClassTree.fromBytes(b.get()))
.filter(ClassTree::isInterface)
- .flatMap(t -> underTest.apply(codeSourceFor(t)).stream())
+ // .flatMap(t -> underTest.apply(codeSourceFor(t)).stream())
+ .filter(c -> c.name().getNameWithoutPackage().asInternalName().startsWith("Consume"))
+ .map(c -> c.name().asInternalName())
+
.distinct()
.collect(Collectors.toList());
System.out.println(classes.stream()
.collect(Collectors.joining("\n")));
}
-*/
+
/*
// not a test and only works with java 9+