ast をスキャンしているときに、XFeatureCall 型の要素を解決できるかどうかを確認したいと考えています。
具体例:
val x = 2
val y = x + z
そんなこと知ってる
val y = <XFeatureCall> + <XFeatureCall>
ただし、XFeatureCall "z" のみが true になるはずです (検索しているまだ見つかっていない述語を適用する場合)。
これまでのところ、私はパターンを見つけることができませんでした。ただし、解決できないすべての変数が次の条件を満たす場合を除きます。
fc は XFeatureCall を意味します
fc.feature instanceof JvmVoid && !fc.explicitOperationCall
しかし、これでは十分ではありません。「System.out.println」も見えるからです。
注: ルート AST 要素から取得した TreeIterator を使用します
必要に応じて、XbaseCompiler がどのようにそれを行うかを調べますが、私はそうしないことを好みます :)