PowerShell / PSScriptAnalyzer

Download ScriptAnalyzer from PowerShellGallery
https://www.powershellgallery.com/packages/PSScriptAnalyzer/
MIT License
1.85k stars 373 forks source link

Rule request: Avoid using the Assignment by Addition Operator (`+=`) to build a collection #1934

Closed iRon7 closed 1 year ago

iRon7 commented 1 year ago

(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:

Proposed technical implementation details (optional)

See (PowerShell based) prototype AvoidPlusEqualsToBuildCollections at: https://github.com/iRon7/PSRules

What is the latest version of PSScriptAnalyzer at the point of writing

1.21.0

bergmeister commented 1 year ago

dupe of https://github.com/PowerShell/PSScriptAnalyzer/issues/806 and https://github.com/PowerShell/PSScriptAnalyzer/issues/904

microsoft-github-policy-service[bot] commented 1 year ago

This issue has been marked as duplicate and has not had any activity for 1 day. It will be closed for housekeeping purposes.