Skip to content

PSReviewUnusedParameter false positive for ValueFromPipeline and current process item $_ #1840

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
iRon7 opened this issue Sep 14, 2022 · 1 comment · Fixed by #2072
Closed

Comments

@iRon7
Copy link

iRon7 commented Sep 14, 2022

The ValueFromPipeline doesn't require the literal name but just the current item ($_) in the Process block:

[CmdletBinding()]
param (
    [Parameter(Mandatory=$true, ValueFromPipeline=$true)]$InputObject
)
process {
    $_
}

Expected behavior

No error

Actual behavior

RuleName                            Severity     ScriptName Line  Message
--------                            --------     ---------- ----  -------
PSReviewUnusedParameter             Warning      PSReviewUn 3     The parameter 'InputObject' has been declared but not used.
                                                 usedParame
                                                 ter.ps1

If an unexpected error was thrown then please report the full error details using e.g. $error[0] | Select-Object *

Environment data

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      7.2.1
PSEdition                      Core
GitCommitId                    7.2.1
OS                             Microsoft Windows 10.0.18363
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.20.0
@ghost ghost added the Needs: Triage 🔍 label Sep 14, 2022
@bergmeister
Copy link
Collaborator

As a best practice, I'd still say it would be clearer to use the parameter name for less technical people reading the code. But feel free to open a PR to tweak this rule to exclude this special scenario.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants