PowerShell / PowerShell/PSScriptAnalyzer

new feature: unusable parameters warning

Offen
#1,375 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Issue - New Rule
Vorherrschende Sprache
C#
Sterne
2.2k
Forks
414
Ø Merge
13 Std. 1 Min.
Gemergte PRs (30 T.)
2

Beschreibung

Problem to be solved

PowerShell (theoretically) supports parameters whose name can consist only from numbers. For example, this is a valid declaration:

function p1([switch]$1) {if ($1) {'Yes'} else {'No'}}

However, it is very hard to call properly this script. This one will not work:

PS /home/iiric> p1
No
PS /home/iiric> p1 -1
No

This is because parser will think -1 is a negative number rather than a parameter name in this instance.

Proper (=hard) way would be to use splatting.

$params = @{ '1' = $true }
PS> p1 @params
Yes

Generally, this is not the only example of such unusable parameters. See response by @vexx32 in PowerShell repo issue.

Summary of the new feature

Create a PSSA rule that warns when such parameters are created, so users are aware ahead of time that they're making parameters that they won't be able to refer to.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die vorhandenen PSScriptAnalyzer-Regeln und die Art und Weise zu überprüfen, wie sie Diagnosen melden, und untersuche anschließend das verknüpfte PowerShell-Issue auf die als unbrauchbar betrachteten Fälle. Die Aufgabe ist erfüllt, wenn der Analyzer warnt, sobald auf einen Parameter nicht auf normale Weise verwiesen werden kann, einschließlich eines numerischen Parameters wie $1.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, powershell
Bereich
tooling
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.