After 7.15, class structure lookup was changed. This impacted functional interfaces that define apply in their super classes such as `BinaryOperator`. Reproduction: ``` [1, 2].stream().reduce((i1, i2) -> i1).orElse(0) ``` Will trigger an `illegal_argument_exception` due to `Cannot pass lambda to [java.util.function.BinaryOperator], not a functional interface`. From: https://discuss.elastic.co/t/regression-painless-script-fails-for-binaryoperator-lamdba/291714
After 7.15, class structure lookup was changed. This impacted functional
interfaces that define apply in their super classes such as
BinaryOperator.Reproduction:
Will trigger an
illegal_argument_exceptiondue toCannot pass lambda to [java.util.function.BinaryOperator], not a functional interface.From: https://discuss.elastic.co/t/regression-painless-script-fails-for-binaryoperator-lamdba/291714