PowerShell / PowerShell/PSScriptAnalyzer

Rule Request: UnknownLabel

オープン
#2,145 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Up-for-Grabs
主要言語
C#
スター
2.2k
フォーク
414
平均マージ
13時間 1分
マージ済み PR(30日)
2

説明

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

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず Invoke-ScriptAnalyzer の例を再現し、既存のルールが制御フローの問題をどのように報告しているかを調べます。未知のラベルと対象のループ外にあるラベルがどこで解析されるかを確認し、完成したルールがサンプルに対して PSUnknownLabel を重大度 Error と期待されるメッセージで報告することを検証します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
csharp, powershell
領域
tooling
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。