Truffle DSLの警告
バージョン23.0以降、Truffle DSLでは非常に多くの警告が生成されるようになりました。これらの警告は、DSLの使用が向上するようにユーザーを導くことを目的としています。次の各項では、警告を処理して最終的に抑制する方法について説明します。
-Atruffle.dsl.SuppressAllWarnings=trueオプションを使用すると、Truffle DSLのすべての警告を抑制できます。警告がCIでエラーとして扱われる厳格なチェック使用する言語の場合は、このオプションをJavaコンパイル・コマンドラインに追加することをお薦めします。これは、Truffle DSLが新しい警告メッセージを追加するときにCIの失敗を回避するのに役立ちます。Truffle DSLでの新しい警告メッセージの追加は、互換性のある変更とみなされます。
Truffle DSLの警告は、@SuppressWarnings注釈を使用するか、パッケージ全体に対して@SuppressPackageWarningsを使用して、Javaの警告と同様に抑制できます。次の警告キーがサポートされています:
allJavaコンパイラまたはTruffle DSLによって発行されたすべての警告truffleTruffle DSLによって発行されたすべての警告truffle-sharingDSLがキャッシュされた値間の共有を推奨している場合の警告truffle-inliningDSLがノード・オブジェクトのインライン化の使用を推奨している場合の警告。truffle-neverdefaultキャッシュされたイニシャライザがデフォルト値を持たないものとしてマークする必要がある場合の警告。truffle-limit特殊化制限が推奨されているが、指定されていない場合の警告。truffle-static-methodDSLがstatic修飾子の使用を推奨している場合の警告。truffle-unusedDSL属性または注釈に効果がなく、削除することが推奨される場合の警告。truffle-abstract-exportは、Truffleライブラリの抽象メッセージがエクスポートされない場合に警告します。@Fallback特殊化に到達する特殊化で仮定機能を使用する場合はtruffle-assumption。- 生成されたコードに
@Idempotentまたは@NonIdempotentメソッドが役立つ可能性があるメソッドをガードで使用する場合はtruffle-guard。
-Atruffle.dsl.SuppressWarnings=truffle-inlining,truffle-neverdefault Javaコンパイラ・プロセッサ・オプションを使用して、特定の警告をグローバルに抑制することもできます。Javaシステム・プロパティを使用して注釈プロセッサを構成することもできます(たとえば、-J-Dtruffle.dsl.SuppressWarnings=truffle-inlining,truffle-neverdefaultをjavacに渡す)。
特定の警告を抑制することは、すべての警告を抑制することよりも優先されます。ソース・コードで警告の最新リストを検索します