Since 1.7, the Kotlin compiler produces slightly different bytecode for late initiailized variables which was not picked up by the junk mutation filters in previous releases.
See Licence Management for details.
Functions returning the following types
Will be mutated to return their “zero values” in place of the null mutation generated by standard pitest.
For public functions which cannot return null, the Kotlin compiler will add a
org.jetbrains.annotations.NotNull annotation. When this annotation is present, pitest will filter out mutations which would violate this constraint. The annotation is not added for private methods however.
This change uses other bytecode markers to infer if a return type is nullable and filter mutants accordingly.