要約
Prism::ParseResult#warnings で得られる、構文解析中に発生した警告を表すクラスです。インターフェースは Prism::ParseError と同様です。
なお、警告として検出される種類は Ruby 3.4 以降(prism 1.x)で大きく増えています。Ruby 3.3 の prism では「曖昧な演算子の解釈」のような一部の警告だけが対象で、未使用のローカル変数や重複したハッシュキーの警告などは検出されません。
例require "prism"
warning = Prism.parse("foo *[1]\n").warnings.first
p warning.class # => Prism::ParseWarning
p warning.message # => "ambiguous `*` has been interpreted as an argument prefix"
[SEE_ALSO] Prism::ParseResult#warnings, Prism::ParseError
目次
- インスタンスメソッド
インスタンスメソッド
deconstruct_keys(keys) -> HashRuby 3.3 から[permalink][rdoc][edit]-
パターンマッチのハッシュパターン(
case warning; in {message:})で使われます。message・locationをキーに持つハッシュを返します。Ruby 3.4 以降は
type・levelもキーに含まれます。- [PARAM]
keys: - 取り出したいキーの配列を指定します。すべて取り出す場合は nil を指定します。
require "prism" warning = Prism.parse("foo *[1]\n").warnings.first case warning in {message:} p message end # => "ambiguous `*` has been interpreted as an argument prefix" - [PARAM]
level -> SymbolRuby 3.4 から[permalink][rdoc][edit]-
警告の深刻度による分類を表すシンボル(
:defaultまたは:verbose)を返します。 location -> Prism::LocationRuby 3.3 から[permalink][rdoc][edit]-
警告の対象となったソースコード上の位置を表す Prism::Location を返します。
message -> StringRuby 3.3 から[permalink][rdoc][edit]-
警告メッセージを返します。
type -> SymbolRuby 3.4 から[permalink][rdoc][edit]-
警告の種類を表すシンボル(例:
:ambiguous_prefix_star)を返します。これは警告メッセージの変換レイヤーとの連携のために使われる内部用のシンボルであり、正式な公開 API ではありません。将来のバージョンで予告なく変わる可能性があります。