William Price created JEXL-447:
----------------------------------

             Summary: Regression in script-defined functions
                 Key: JEXL-447
                 URL: https://issues.apache.org/jira/browse/JEXL-447
             Project: Commons JEXL
          Issue Type: Bug
    Affects Versions: 3.6.0
            Reporter: William Price


I have this existing behavior test in my code.  It passes using 3.5.0:
{code:java}
let results = [...]
function expect(const left, const right, const equal) {
  let correct = (left == right) === equal && !(left != right) === equal;
  results.add(correct ?: `${left} ?= ${right}`);
  return results;
}
function expectStrict(const left, const right, const equal) {
  let correct = (left === right) === equal && !(left !== right) === equal;
  results.add(correct ?: `${left} ?== ${right}`);
  return results;
}

expect(1.0,  1,    true);
expect(1.1,  1,    false);
expect(1.1,  1.1d, true);
expect(1.1,  1.1f, false);
expect('a', 'a',   true);
expect('a', 'b',   false);
expect('1',  1,    true);

expectStrict(1.0,  1.0,  true);
expectStrict(1.0,  1.0d, true);
expectStrict(1.0,  1.0f, false);
expectStrict(1.0,  1,    false);
expectStrict(1,   '1',   false); {code}
When I switched to a locally built version off the master branch (containing my 
proposed fix for JEXL-446) it throws JexlException.Method:
{noformat}
unsolvable function/method 'expectStrict(Byte, Byte, Boolean) {noformat}
I turned the above into a JUnit test and ran `git bisect` between 3.5.0 
(working) and the current head of master and bisect says the regression was 
introduced in:
{noformat}
61b76f0b576893c2c53ed6a386089f4e89d9e542 is the first bad commit
commit 61b76f0b576893c2c53ed6a386089f4e89d9e542
Author: Henrib <[email protected]>
Date:   Tue Jul 8 17:36:06 2025 +0200

    JEXL-441 : updated tokenization for interpolation / back-quoted strings;
    - preparations for JEXL-442 {noformat}
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to