首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >透析器:分析失败,错误。(透析虫?还是错误地使用地图类型?)

透析器:分析失败,错误。(透析虫?还是错误地使用地图类型?)
EN

Stack Overflow用户
提问于 2015-07-14 15:54:35
回答 1查看 341关注 0票数 2

在学习灵丹妙药的过程中,我开发了一个非常简单的应用程序,在使用透析器检查类型时遇到了一个小障碍。在我的代码上运行透析器会导致Analysis failed错误.到目前为止,透析器只给了我警告,而不是错误,当我违反类型规格,所以我不知道错误是什么。

为了缩小问题的范围,我做了一个超简单的函数,执行违规的返回值。

代码语言:javascript
运行
复制
  @spec blabla(integer) :: %{atom => any}
  def blabla(1) do
    %{:error => 'wrong input (US-state)'}
  end
  def blabla(2) do
    %{ location: 'New York City, Central Park, NY', temp_c: '23.3',
       visibility_mi: '10.00', weather: 'A Few Clouds', wind_dir: 'North',
       wind_kt: '0' }
  end

在此上运行透析器时,会出现以下错误

代码语言:javascript
运行
复制
  Proceeding with analysis...
=ERROR REPORT==== 14-Jul-2015::17:26:55 ===
Error in process <0.31.0> with exit value: {function_clause,[{erl_types,t_form_to_string,[{type,12,map_field_assoc,{type,12,atom,[]},{type,12,any,[]}}],[{file,"erl_types.erl"},{line,4546}]},{erl_types,t_form_to_string_list,2,[{file,"erl_types.erl"},{line,4637}]},{erl_types,t_form_to_string... 


dialyzer: Analysis failed with error:
{function_clause,[{erl_types,t_form_to_string,
                             [{type,12,map_field_assoc,
                                    {type,12,atom,[]},
                                    {type,12,any,[]}}],
                             [{file,"erl_types.erl"},{line,4546}]},
                  {erl_types,t_form_to_string_list,2,
                             [{file,"erl_types.erl"},{line,4637}]},
                  {erl_types,t_form_to_string,1,
                             [{file,"erl_types.erl"},{line,4634}]},
                  {erl_types,t_form_to_string,1,
                             [{file,"erl_types.erl"},{line,4590}]},
                  {dialyzer_contracts,contract_to_string_1,1,
                                      [{file,"dialyzer_contracts.erl"},
                                       {line,107}]},
                  {dialyzer_contracts,extra_contract_warning,6,
                                      [{file,"dialyzer_contracts.erl"},
                                       {line,712}]},
                  {dialyzer_contracts,picky_contract_check,7,
                                      [{file,"dialyzer_contracts.erl"},
                                       {line,686}]},
                  {dialyzer_contracts,get_invalid_contract_warnings_funs,5,
                                      [{file,"dialyzer_contracts.erl"},
                                       {line,654}]}]}

,我是不是用错误的方式定义了地图类型?或者这是透析器中的错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-14 18:16:18

您的代码或类型code没有任何问题。看起来像一个透析器错误,您可以尝试更新到最新版本的Erlang。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31411566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档