(I thought there was already a request for this or at least discussion that the implementation is difficult as it is hard to define the type of the concerned variable. I think it is possible to come pretty far with just AST)
Summary of the new feature
Array addition is inefficient because arrays have a fixed size. Each addition to the array creates a new array big enough to hold all elements of both the left and right operands. The elements of both operands are copied into the new array. For small collections, this overhead may not matter. Performance can suffer for large collections.
This will create more awareness of the possible performance impact for scripts as e.g. in #1933
See also:
(I thought there was already a request for this or at least discussion that the implementation is difficult as it is hard to define the type of the concerned variable. I think it is possible to come pretty far with just
AST
)Summary of the new feature
Array addition is inefficient because arrays have a fixed size. Each addition to the array creates a new array big enough to hold all elements of both the left and right operands. The elements of both operands are copied into the new array. For small collections, this overhead may not matter. Performance can suffer for large collections. This will create more awareness of the possible performance impact for scripts as e.g. in #1933 See also:
+=
) to create a collectionProposed technical implementation details (optional)
See (PowerShell based) prototype
AvoidPlusEqualsToBuildCollections
at: https://github.com/iRon7/PSRulesWhat is the latest version of PSScriptAnalyzer at the point of writing
1.21.0