[erlang-questions] Typed records and erl_parse

Tobias Lindahl Tobias.Lindahl@REDACTED
Tue Dec 5 11:53:33 CET 2006



Christian S wrote:
> The changes as talked about in this thread I take it?
> 
> http://www.erlang.org/pipermail/erlang-questions/2006-November/023930.html

Yes, this is correct.

> Is this something erl_parse will accept to parse but throw away? 

It will parse it and return a representation of the typed fields that 
include the declared type. For record fields not containing a type 
declaration, the type will be the any() type. This is what might casue 
trouble for people, if they pattern match on the actual field 
representation.

> Will these type annotations spread out in a future to be used in other
> places in the erlang language? Perhaps as shorthand for type-guards
> when pattern matching?

This is somewhat unrelated to what we are doing, but that doesn't 
prevent that we can make use of the type information in other ways in 
the future.

For now, our focus is to use this information to give better warnings 
from Dialyzer. You might look at it as a contract. The user states that 
this is how I intend to use this record, and if Dialyzer can find that 
this is not the case you can get a warning, and if Dialyzer cannot say 
exactly how the record is constructed, it can assume that the 
declarations can be trusted until it can prove otherwise.

Tobias



More information about the erlang-questions mailing list