問題タブ [libtooling]

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 に答える
159 参照

clang - Clang ツール、最終かオーバーライドかを確認

またはキーワードCXXMethodDeclで指定されているかどうかを確認する「clang方法」はありますか?overridefinal

std::string::find(" override")を表す文字列で確認できますCXXMethodDeclが、この方法は少し見栄えが悪いです。

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

c++ - CXXMemberCallExpr から型と名前を抽出するには?

呼び出し元オブジェクト全体の型と名前、および A::WriteData メソッド定義から作成されたメンバー呼び出し式のパラメーター型を抽出したいと考えています。

WriteData メソッドの clang の AST の関連部分は、ここにあります。

この場合、マッチャーから取得したい情報は次のようになります。

次のマッチャーを試しました:

これにより、抽出したい正しいステートメントが得られます。

以下を抽出しました (無効な c++ が続きます)。

  1. パラメーターの QualType を文字列として取得することによるパラメーターの型:

    /li>
  2. 引数名:

    /li>
  3. オブジェクト呼び出し元のタイプ:

    /li>
  4. オブジェクトの呼び出し元メソッド:

    /li>

オブジェクトの呼び出し元自体を取得するにはどうすればよいですか? Write メソッドに渡される引数名を取得するより良い方法はありますか?

AST を見ると、どこから始めればよいかわかりません。

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

clang - clang libtooling 実行時のセグメンテーション エラー (コア ダンプ)

関数名をユーザー固有の名前に置き換えることができる単純なリファクタリング ツールを実装しました。

テスト コード (ヘッダー ファイルなし) に対してツールを実行すると、問題なく動作します。

ただし、テストコードにヘッダーファイルを含めると、たとえば

…それで、もう一度実行します。セグメンテーション違反があります (コア ダンプ):

「#include <...>」を追加するだけなので、混乱しています。障害情報を確認するのを手伝ってもらえますか? 前もって感謝します!