arraynew[type](params) vs object[method](params)

Hi all,

Aether has 3 typed-array creation syntaxes:
1) ArrayNew(dataType=____)
2) [dataType][]
3) ArrayNew[dataType](params)

Long-time community ask is for method invocation syntax object[method](params). See its conflict w/ #3? Lucee isn’t implementing #3 b/c it conflicts w/ their object[method](params) support.

Proposal: A) Remove #3 or B ) replace it w/ ArrayNew(dimension[, dataType])

Possible conflicts:
1) ArrayNew(dimension[, dataType]) conflicts w/ ArrayNew(dimension[, isSynchronized]) if dataType is a CFC named true.cfc or no.cfc, for example
2) object[method](params) conflicts w/ ArrayNew[dataType](params) if object is a CFC named arraynew.cfc

Both conflicts should be considered equally.

If ArrayNew[dataType](params) cannot be changed to ArrayNew(dimension[, dataType]) due to conflict #1, then ArrayNew[dataType](params) should not be introduced due to conflict #2.

Thus, preferred proposal is A. I filed this as https://tracker.adobe.com/#/view/CF-4202139 which Adobe closed without comment.

Thoughts? Explanation, Adobe?

Thanks!,
-Aaron

4 Responses

  1. I agree that #3 is unnecessary new syntax. I’m not sure why you propose ArrayNew(dimension[, dataType]). What’s wrong with adding a third parameter? It doesn’t make sense to me that isSynchronized and dataType would be mutually exclusive.

Leave a reply

Related