Repository navigation
WIP Warn when using += on array objects - #933
Closed
Christoph Bergmeister (bergmeister) wants to merge 8 commits into
Closed
Christoph Bergmeister (bergmeister) wants to merge 8 commits into
Christoph Bergmeister (bergmeister) wants to merge 8 commits into
Conversation
…s because SSA is not fully implemented (i.e. $a=@();$a+=$foo does not get caught or determining that the type is of type string.
…nalyzer into WarnPlusEquals resolved by taking both # Conflicts: # Rules/Strings.resx
…nalyzer into WarnPlusEquals Resolved by taking both. # Conflicts: # Rules/Strings.resx
…nalyzer into WarnPlusEquals # Conflicts: # Rules/Strings.resx
…nalyzer into WarnPlusEquals # Conflicts: # Rules/Strings.resx
Rob Holt (rjmholt)
marked this pull request as draft
April 21, 2021 21:14
|
Is there any chance of progressing this so it's included? |
Collaborator
Author
I don't think so because of the issues encountered that are fundamental due to limitation of variable analysis framework in PSSA, which was a fork of PowerShell code in the first place anyway. It only works for simple cases where the += isn't in a function, etc. |
Collaborator
Author
|
Closing as there is no path to get this working as-is and therefore no point in keeping open |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Summary
Fixes #806 and #904
It is well know that PowerShell's
+=operator always creates a new array under the hood even if the array type is not of fixed size.Because SSA (single statement analysis) is not fully implemented at the moment, the detection for the object type can not catch all cases. For example it does not work inside function definitions or cannot determine if the object is of type string at the moment or cases like
$a=@(); $a+=$foo.The rule documentation includes all possible info even if strings cannot be caught at the moment.
PR Checklist
Note: Tick the boxes below that apply to this pull request by putting an
xbetween the square brackets. Please mark anything not applicable to this PRNA.WIP:to the beginning of the title and remove the prefix when the PR is ready