2

Dialyzer は、基本モジュール内の関数の呼び出しを好みません。このエラーをスキップするためのダイアライザー フラグはありますか、それとも間違っていますか。

同様のコードを次に示します。

-module(base).
-export(foo/1).

foo(X) -> X*2.


-module(derived).
-extends(base).
-export(xyz/0).

xyz() -> 
    ?MODULE:foo(5).

このコードは、期待どおりに機能します。私の唯一の懸念は、ダイアライザーの警告です。

---.erl:41: 見つからないかエクスポートされていない関数への呼び出し ---:---/3

私は何か間違ったことをしていますか、それともダイアライザーが不必要な警告を出していますか?

4

1 に答える 1

4

Dialyzer は拡張モジュールをサポートしておらず、そのような拡張の計画もありません。私の知る限りでは、モジュールの継承は Erlang の公式機能でさえありません。

ごめん...

于 2012-04-01T18:52:04.287 に答える