2012-04-01 30 views
1

透析器不喜歡調用基本模塊中的功能。有沒有透析標誌來跳過這個錯誤,或者我做錯了什麼。erlang透析器和擴展模塊

下面是類似的代碼:

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

foo(X) -> X*2. 


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

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

這段代碼工作,我期望它的工作。我唯一關心的是透析器警告。

--- ERL:41:調用缺失或未導出功能---:---/3

難道我做錯了什麼,或者它透析給人一種不必要的警告?

回答

3

Dialyzer不支持擴展模塊,也沒有計劃這樣的擴展。據我所知,模塊繼承甚至不是Erlang的官方功能。

對不起...

+0

我不知道這不是一個官方功能。也許我不應該首先使用它,它在幾種情況下派上用場 – cashmere 2012-04-01 20:08:48