PowerShell / PowerShell/PSScriptAnalyzer

Rule Request: UnknownLabel

Offen
#2,145 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

Not sure whether this is a PowerShell a bug or feature but fixing it in PowerShell would probably be a break change.

In any case, I think unknown labels should be notified and even deserve an error severity if the label doesn't exist or is outside the concerned loop.

Invoke-ScriptAnalyzer -ScriptDefinition {
    :foo foreach ($a in 1,2,3) {
        $a
        if ($a -ge $b) { break bar }
    }
}.ToString()

Expected
Something like:

RuleName           Severity     ScriptName Line  Message
--------           --------     ---------- ----  -------
PSUnknownLabel     Error                   4     The label 'bar' is not known in this context

See also: Pester breaks on functions with unknown label

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, das Beispiel für Invoke-ScriptAnalyzer zu reproduzieren, und untersuche, wie vorhandene Regeln Kontrollflussprobleme melden. Ermittle, wo unbekannte Labels und Labels außerhalb der betroffenen Schleife analysiert werden, und überprüfe anschließend, dass die fertige Regel PSUnknownLabel mit dem Schweregrad Error und der erwarteten Meldung für das Beispiel meldet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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