PowerShell / PowerShell/PSScriptAnalyzer
`SuppressMessageAttribute` not working for ScriptBlock params
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 2.2k
- Forks
- 414
- Ø Merge
- 13 Std. 1 Min.
- Gemergte PRs (30 T.)
- 2
Beschreibung
Before submitting a bug report:
- Make sure you are able to repro it on the latest released version
- Perform a quick search for existing issues to check if this bug has already been reported
Steps to reproduce
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock {
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'wordToComplete', Justification = 'Reason for suppressing')]
param(
$wordToComplete,
$commandAst,
$cursorPosition)
dotnet complete --position $cursorPosition "$commandAst" | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
Expected behavior
Rule `PSReviewUnusedParameter` doesn't trigger for parameter `$wordToComplete`.
Actual behavior
Rule `PSReviewUnusedParameter` triggers for parameter `$wordToComplete`.
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.3.0
PSEdition Core
GitCommitId 7.3.0
OS Microsoft Windows 10.0.22000
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() }
Using built-in version of VSCode Powershell extension (v2022.10.0)
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere das PowerShell-Beispiel mit der Regel PSReviewUnusedParameter und bestätige, dass das Suppressionsattribut für $wordToComplete ignoriert wird. Verfolge den Einstiegspunkt des Analyzers für ScriptBlock-Parameter und prüfe dessen vorhandene Tests, sofern vorhanden. Die Aufgabe ist erledigt, wenn die Regel diesen Parameter nicht mehr meldet und das aktuelle Verhalten für nicht unterdrückte Parameter beibehält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp, powershell
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100