問題タブ [dart-analyzer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
98 参照

dart - Dart のアナライザー API を使用して、オプションのパラメーターのデフォルト値を取得するにはどうすればよいですか?

DartアナライザーAPI を使用しています。これにより、Dart コードをイントロスペクトできます。

コード例を次に示します。

flagパラメータのデフォルト値が であることに注目してくださいtrue

のインスタンスがあると仮定して、どうすればデフォルト値を取得できますParameterElementか?

0 投票する
2 に答える
234 参照

dart - プライベート識別子引数を持つシンボル

プライベート MethodMirror の単純名と同じシンボルを作成したいと考えています。ただし、Symbol のドキュメントには、新しい Symbol の引数は有効な公開識別子でなければならないと記載されています。Dart エディターを作成しようとするとconst Symbol('_privateIdentifier')、この定数式の評価で例外がスローされることが通知されますが、プログラムは正常に実行され、問題なく使用できます。

ミラーシステムはシンボルを使用しているようです。

dart エディターでのドキュメント/エラー フラグは、古い dart アナライザーによるレガシー バグですか? または、将来この公的要件を強制する計画はありますか? 宣言の単純な名前と同じシンボルに縮小される一意の識別シンボルを作成する別の方法はありますか?

0 投票する
1 に答える
485 参照

dart - dart: プロキシ アノテーションの使用

@proxy注釈状態のドキュメント:

クラスに で注釈が付けられている場合@proxy、または注釈が付けられているクラスを実装している場合、そのクラスは、静的型分析に関して任意のインターフェイスと任意のメンバーを実装していると見なされます。そのため、オブジェクトを任意の型の変数に割り当てることは静的型の警告ではなく、オブジェクトの任意のメンバーにアクセスすることは静的型の警告ではありません。

ただし、次のコードが与えられます。

ダーツ編集者が警告

コードはチェックなしモードで期待どおりに実行されますが、警告は煩わしく、私が知る限り、その警告を抑制することが@proxyタグが行うべき唯一のことです。

タグの使い方を誤解しています@proxyか、それとも dart エディター/アナライザーのバグですか?

0 投票する
2 に答える
79 参照

dart - dartanalyzer は、インターフェースから実装が欠落しているという警告を出さない

現在、Dart 言語の実験と学習を行っています。

次のようにIAnimalという 2 つの抽象メソッドを持つ抽象クラスを作成しています。

次に、2 つのメソッドを実装するDogクラスを作成します。

しかし、dart アナライザーは 2 つのメソッドが欠落していると不平を言います。これは意図された動作ですか、それともサポートされていませんか?

0 投票する
0 に答える
215 参照

unit-testing - 生成された Dart コードをテストする

プロローグ

source_genを使用してDartコードを生成します。ジェネレーターの出力をテストしたい (テストパッケージを使用)。source_genのテストを見て、json_serializable_test.dartをテンプレートとして使用しました。generateジェネレーターを呼び出して、結果を文字列として取得できます。クラスとメソッドが期待どおりに生成されるかどうかをテストしたいと思います。残念ながら、この種のテストはjson_serializable_test.dartにありません:

ヘルパー ( など_getCompilationUnitForString) を変更して、(常に を使用するのではなく) ソースを渡し、_testSourceそのアナライザー要素を取得します。これにより、ジェネレーターの入力と期待される出力をファイルまたは文字列として指定し、入力、出力、および期待される出力のアナライザー要素を取得できます。

アプローチ

名前とフィールド宣言によってクラスを一致させるために、この原始的なアプローチを思い付きました。

String 表現でフィールドを比較するため、このソリューションはエラーが発生しやすい可能性があります。これとは別に、ミスマッチの説明は非常に貧弱です。マッチャーを改善するにはどうすればよいですか?

Ps: 生成されたコードを期待値と比較するためのより良い方法はありますか?

0 投票する
1 に答える
2403 参照

dart - 保護されたメンバーの使用に関するヒントを抑制

メタパッケージは、直接のサブクラスの外部での保護されたメンバーの使用に関するアナライザーのヒントまたは警告を取得するために、(他のものに加えて) 注釈を提供します。@protected

情報: メンバー 'selectedChildrenChanged' は、'MenuItem' のサブクラスのインスタンス メンバー内でのみ使用できます ([bwu_ng_quick_nav] test/menu_item_test.dart:108)

単体テストのこれらのヒントには興味がありません。

どうすればそのようなヒントを抑えることができますか?

0 投票する
1 に答える
423 参照

dart - Dart オーバーライド単項マイナス演算子

言語仕様 (10.1.1 演算子) に従って、一部の演算子をオーバーライドしようとしています。

「マイナス」演算子と「単項マイナス」演算子をオーバーライドすると、アナライザー エラーが発生します。

「演算子 "-" はクラス インデントで定義されていません」

しかし、クラスで私はそれを定義しました:

私はそれを好きなように使用しmyInstance--;、実際には機能しますが、それでもアナライザーは不平を言い、エラーのためにコード「クリーン」を送信できません。

私は古いスレッドを調べました ( Why does overriding negate cause static warning in Dart ) が、ここでは関係ないと思います。

どんなアドバイスでも大歓迎です。