Status/Resolution/Reason: To Test//Fixed
Reporter/Name(from Bugbase): John Whish / John Whish (John Whish)
Created: 09/08/2016
Components: Core Runtime
Versions: 2016
Failure Type: Non Functioning
Found In Build/Fixed In Build: CF2016_Update1 /
Priority/Frequency: Major / Some users will encounter
Locale/System: ALL / Mac OS 9.04
Vote Count: 4
Problem Description:
The parser / compiler falsely indentifies methods as operators.
Steps to Reproduce:
{code:java}
<cfscript>
function filter() {
return {
"gte": function (n) {
return n;
}
};
}
// compiler errors on this line...
// filter().gte(1);
</cfscript>
{code}
In the above example the `filter().gte(1);` errors on compilation. This is a problem as some java libraries expose methods that have the same method names as the CF operators - for example ElasticSearch uses `gt` `gte` `lt` and `lte` methods for the range filter.
Actual Result:
Errors on compilation
Expected Result:
The parser should be able to disguish when it is a method being called (operator immediatley preceded by a '.')
Any Workarounds:
Not in the case of interacting with Java objects. If just in CFML then rename the methods.
----------------------------- Additional Watson Details -----------------------------
Watson Bug ID: 4187705
External Customer Info:
External Company:
External Customer Name: John Whish
External Customer Email:
External Test Config: My Hardware and Environment details:
Attachments:
Comments: