[erlang-questions] prettypr and spec

Roberto Ostinelli <>
Tue Sep 25 06:00:00 CEST 2012


I have this code:

%%%%%%%%%%%%%%%%%%%%%%%%
-module(mymodule).
-export([hello/0, goodbye/0, greetings/1]).

-spec hello() -> string().
hello() ->
greetings("hello").

-spec goodbye() -> string().
goodbye() ->
greetings("goodbye").

-spec greetings(Text::string()) -> string().
greetings(Text) ->
lists:flatten(io_lib:format("~s sublimerl", [Text])).

-ifdef(TEST).
-include_lib("eunit/include/eunit.hrl").

simple_test() ->
?assertEqual("hey sublimerl", greetings("hey")).

greetings_test_() ->
[?_assertEqual("hey sublimerl", greetings("hey"))].

-endif.
%%%%%%%%%%%%%%%%%%%%%%%%


when i convert it using this:


%%%%%%%%%%%%%%%%%%%%%%%%
Formatted = case epp_dodger:parse_file(FilePath) of
{ok, Forms} ->
case lists:keymember(error, 1, Forms) of
false ->
erl_prettypr:format(erl_recomment:recomment_forms(Forms,
erl_comment_scan:file(FilePath)));
true ->
""
end;
{error, _} ->
""
end
%%%%%%%%%%%%%%%%%%%%%%%%


I get:

%%%%%%%%%%%%%%%%%%%%%%%%
-module(mymodule).

-export([hello/0, goodbye/0, greetings/1]).

-spec({{hello, 0},
       [{type, 4, 'fun',
 [{type, 4, product, []}, {type, 4, string, []}]}]}).

hello() -> greetings("hello").

-spec({{goodbye, 0},
       [{type, 8, 'fun',
 [{type, 8, product, []}, {type, 8, string, []}]}]}).

goodbye() -> greetings("goodbye").

-spec({{greetings, 1},
       [{type, 12, 'fun',
 [{type, 12, product,
   [{ann_type, 12,
     [{var, 12, 'Text'}, {type, 12, string, []}]}]},
  {type, 12, string, []}]}]}).

greetings(Text) ->
    lists:flatten(io_lib:format("~s sublimerl", [Text])).

-ifdef(TEST).

-include_lib("eunit/include/eunit.hrl").

simple_test() ->
    ?assertEqual("hey sublimerl", (greetings("hey"))).

greetings_test_() ->
    [?_assertEqual("hey sublimerl", (greetings("hey")))].

-endif.
%%%%%%%%%%%%%%%%%%%%%%%%


What happens to spec? What is the best way to use an erlang auto-formatter?

Any input welcome.

r.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120924/6cc7fda1/attachment.html>


More information about the erlang-questions mailing list