In some rare cases it might happen that a code using Java 8 lambda functions after instrumentation by Clover fails to compile. Why it happens and how to fix it?
Java compiler uses type inference in order to determine types of arguments and a return value of a lambda function (i.e. from a surrounding code context). Clover wraps lambda functions inside a helper method in order to track code coverage for them.
In some rare cases, when a lambda function is being passed as an argument of a method, and this method argument uses a generic type, the javac compiler might fail to perform type inference.
Examplary code, compiler error messages and a workaround is documented in Clover's Knowledge Base:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.