[ 
https://issues.apache.org/jira/browse/THRIFT-1532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13223591#comment-13223591
 ] 

Björn Bylander commented on THRIFT-1532:
----------------------------------------

I've added agent.tar.gz. Unpack and then compile using "rebar compile". 
"dialyzer ebin" outputs the following:

agent_service.erl:34: Function 'GetSomeStruct'/0 has no local return
agent_service.erl:35: Record construction #someStruct{id::42} violates the 
declared type of field anI32::integer()
Unknown functions:
thrift_server:start_link/3
thrift_server:stop/1
done in 0m0.61s
done (warnings were emitted)


Removing the undefined default value from the "anI32" field in agent_types.hrl 
removes the Dialyzer error.

                
> The type specifications in the generated Erlang code should include 
> "undefined" where it's used as a default value
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1532
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1532
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Erlang - Compiler
>    Affects Versions: 0.8
>         Environment: Erlang/OTP R15B.
>            Reporter: Björn Bylander
>            Assignee: Anthony Molinaro
>            Priority: Minor
>              Labels: compiler, dialyzer, erlang, specification, type
>         Attachments: THRIFT-1532_type_allows_undefined.patch, agent.tar.gz
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> The Erlang code generated by the compiler for, for example, an integer field 
> of a struct sets a default value of 'undefined' but the type to just 
> 'integer()' which doesn't include the default value. This makes Dialyzer 
> complain if the field has not been initialized as it gets set to 'undefined' 
> instead of an integer value.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to