- 
                Notifications
    You must be signed in to change notification settings 
- Fork 403
Closed
Description
Steps to reproduce
Get-SomeKeyValuePairs |
    Where-Object { some validation script }
    Foreach-Object -Begin {
        $failedValidation = [System.Collections.ArrayList]@()
    } -Process {
        $failedValidation.Add($_.Name)
    } -End {
        if (@($failedValidation).Count -gt 0) {
            throw "The following required parameters were empty: $($failedValidation -join ', ')."
        }
    }(Note: There are much better ways to write this, one of which I am now using; this code was just my first shot at the problem.)
Expected behavior
No output from the analyzer.
Actual behavior
I receive a warning indicating "The variable 'failedValidation' is assigned but never used."
Environment data
> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      5.1.15063.1563
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.15063.1563
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.17.1smartpcr, rdhar and ziesemer