Browse Source

Remaining issues reported by dialyzer

Fixes #111.

A few warnings I won't bother resolving are:

    erlydtl_filters.erl:534: Expression produces a value of type 'undefined' | {integer(),integer(),integer()}, but this value is unmatched
    erlydtl_runtime.erl:45: The call gb_trees:lookup(Key::any(),{integer(),_}) does not have an opaque term of type gb_tree() as 2nd argument
    erlydtl_runtime.erl:54: The call dict:find(Key::any(),Tuple::tuple()) does not have an opaque term of type dict() as 2nd argument
Andreas Stenius 11 years ago
parent
commit
2737f5b398

+ 0 - 2
src/erlydtl_compiler.erl

@@ -567,9 +567,7 @@ check_scan({error, Err, State}, Context) ->
     end.
 
 check_parse({ok, _}=Ok, [], _Context) -> Ok;
-check_parse({ok, _, _}=Ok, [], _Context) -> Ok;
 check_parse({ok, Parsed}, Acc, _Context) -> {ok, Acc ++ Parsed};
-check_parse({ok, Parsed, C}, Acc, _Context) -> {ok, Acc ++ Parsed, C};
 check_parse({error, _}=Err, _, _Context) -> Err;
 check_parse({error, Err, State}, Acc, Context) ->
     {State1, Parsed} = reset_parse_state(State, Context),

+ 2 - 4
src/erlydtl_filters.erl

@@ -531,10 +531,8 @@ random(_) ->
     "".
 
 random_num(Value) ->
-    {A1,A2,A3} = now(),
-    random:seed(A1, A2, A3),
-    Rand = random:uniform(Value),
-    Rand.
+    random:seed(now()),
+    random:uniform(Value).
 
 %% random tags to be used when using erlydtl in testing
 random_range(Range) ->

+ 2 - 4
src/filter_lib/erlydtl_dateformat.erl

@@ -356,8 +356,7 @@ dayname(3) -> "wednesday";
 dayname(4) -> "thursday";
 dayname(5) -> "friday";
 dayname(6) -> "saturday";
-dayname(7) -> "sunday";
-dayname(_) -> "???".
+dayname(7) -> "sunday".
 
 monthname(1) ->  "january";
 monthname(2) ->  "february";
@@ -370,8 +369,7 @@ monthname(8) ->  "august";
 monthname(9) ->  "september";
 monthname(10) -> "october";
 monthname(11) -> "november";
-monthname(12) -> "december";
-monthname(_) -> "???".
+monthname(12) -> "december".
 
 %% Utility functions
 integer_to_list_zerofill(N) when is_float(N) ->

+ 14 - 15
src/i18n/i18n_manager.erl

@@ -19,15 +19,15 @@
 
 generate_pos([Lang,Files])->
     io:format("~s -> ~s ~n",[Lang,Files]),
-    {ok, SplittedLocales} = string:tokens(Lang,","),
-    {ok, SplittedFiles} = string:tokens(Files, ","),
+    SplittedLocales = string:tokens(Lang,","),
+    SplittedFiles = string:tokens(Files, ","),
     ProcessedFiles = sources_parser:parse(SplittedFiles),
     io:format("Parsed tokens are ~p~n",[ProcessedFiles]),
     BaseDir = "lang/default/",
 
-    PopulateTable = fun(Language)->
+    PopulateTable = fun(Language) ->
                             io:format("-------------------------Generating po file for ~s-------------------------~n",[Language]),
-                            open_table(Language),
+                            ok = open_table(Language),
                             put(locale, Language),
                             insert_tokens(ProcessedFiles),
 
@@ -40,13 +40,12 @@ generate_pos([Lang,Files])->
                             Fuzzy = dets_fuzzy(),
                             po_generator:generate_file(Language, Data, Fuzzy),
                             io:format("Closing files ~n"),
-                            close_tables(Language),
+                            ok = close_tables(Language),
                             io:format("All files closed ~n")
                     end,
 
-    lists:map(PopulateTable, SplittedLocales),
-    init:stop()
-        .
+    lists:foreach(PopulateTable, SplittedLocales),
+    init:stop().
 
 
 %%
@@ -57,9 +56,9 @@ generate_pos([Lang,Files])->
 open_table(Locale)->
     Dir = "./lang/tmp/" ++ Locale,
     io:format("Creating dir ~s~n",[Dir]),
-    file:del_dir(Dir),
-    file:make_dir(Dir),
-    OpenTable = fun({TableName, TableFile}) ->
+    ok = file:del_dir(Dir),
+    ok = file:make_dir(Dir),
+    OpenTable = fun({TableName, TableFile}, ok) ->
                         File = Dir ++ TableFile,
                         case dets:open_file(TableName, [{file, File}]) of
                             {ok,Ref} ->  io:format("Opened DETS ~p ~p~n",[TableName,Ref]);
@@ -67,14 +66,14 @@ open_table(Locale)->
                         end
                 end,
 
-    lists:map(OpenTable, [{?EPOT_TABLE,"/epot.dets"},{?EPOT_TABLE_FUZZY,"/epot_fuzzy.dets"}]).
+    lists:foldl(OpenTable, ok, [{?EPOT_TABLE,"/epot.dets"},{?EPOT_TABLE_FUZZY,"/epot_fuzzy.dets"}]).
 
 %%TODO better way to do cleanup
 close_tables(Locale) ->
     %%dets:delete_all_objects(?EPOT_TABLE),
     ok = dets:close(?EPOT_TABLE),
     ok = dets:close(?EPOT_TABLE_FUZZY),
-    file:delete("./lang/tmp/" ++ Locale ++ "/epot.dets"),
+    ok = file:delete("./lang/tmp/" ++ Locale ++ "/epot.dets"),
     file:delete("./lang/tmp/" ++ Locale ++ "/epot_fuzzy.dets").
 
 %%Get all data from dets table
@@ -83,7 +82,7 @@ dets_fuzzy() -> dets:foldl(fun(E, Acc) -> [E|Acc] end, [], ?EPOT_TABLE_FUZZY).
 
 insert_tokens([]) -> noop;
 insert_tokens([{Id,{Fname,Line,_Col}}|Tail]) ->
-    insert_token(Id, Id, Fname, Line),
+    ok = insert_token(Id, Id, Fname, Line),
     insert_tokens(Tail).
 
 insert_token(Id, Translation,Fname,Line)->
@@ -100,7 +99,7 @@ insert_translations(L = [H|T]) ->
             insert_translations(T);
         _Other ->
             [{id,Id}, {str,Str}|Tail] = L,
-            insert_translation(Id,Str),
+            ok = insert_translation(Id,Str),
             insert_translations(Tail)
     end.
 

+ 7 - 7
src/i18n/po_generator.erl

@@ -36,22 +36,22 @@ write_entries(Items)->
     F = fun({Id,Translation,Finfo}) ->
                 Fi = gettext_compile:fmt_fileinfo(Finfo),
                 io:format(Fd, "~n#: ~s~n", [Fi]),
-                file:write(Fd, "msgid \"\"\n"),
+                ok = file:write(Fd, "msgid \"\"\n"),
                 gettext_compile:write_pretty(Id),
-                file:write(Fd, "msgstr \"\"\n"),
+                ok = file:write(Fd, "msgstr \"\"\n"),
                 gettext_compile:write_pretty(Translation)
         end,
     lists:foreach(F, Items).
 
 write_fuzzy_entries(Items) ->
     Fd = get(fd),
-    file:write(Fd, "\n"),
+    ok = file:write(Fd, "\n"),
     F = fun({Id,Translation,_}) ->
-                file:write(Fd, "#, fuzzy\n"),
-                file:write(Fd, "msgid \"\"\n"),
+                ok = file:write(Fd, "#, fuzzy\n"),
+                ok = file:write(Fd, "msgid \"\"\n"),
                 gettext_compile:write_pretty(Id),
-                file:write(Fd, "msgstr \"\"\n"),
+                ok = file:write(Fd, "msgstr \"\"\n"),
                 gettext_compile:write_pretty(Translation),
-                file:write(Fd, "\n")
+                ok = file:write(Fd, "\n")
         end,
     lists:foreach(F, Items).

+ 5 - 5
src/i18n/sources_parser.erl

@@ -7,6 +7,9 @@
 %% Include files
 %%
 
+-define(bail(Fmt, Args),
+        throw(lists:flatten(io_lib:format(Fmt, Args)))).
+
 %%
 %% Exported Functions
 %%
@@ -34,7 +37,7 @@ parse_file(Path) ->
         {ok, Content} ->
             process_content(Path, Content);
         Error ->
-            bail("Cannot read file ~s problem ~p~n", [Path, Error])
+            ?bail("Cannot read file ~s problem ~p~n", [Path, Error])
     end.
 
 process_content(Path,Content)->
@@ -43,7 +46,7 @@ process_content(Path,Content)->
             {ok, Result} = process_ast(Path, Data),
             Result;
         Error ->
-            bail("Template parsing failed for template ~s, cause ~p~n", [Path, Error])
+            ?bail("Template parsing failed for template ~s, cause ~p~n", [Path, Error])
     end.
 
 
@@ -65,6 +68,3 @@ process_token(Fname, {_Instr, _Cond, Children, Children2}, Acc) ->
 process_token(_,_AST,Acc) -> Acc.
 
 unescape(String) ->string:sub_string(String, 2, string:len(String) -1).
-
-bail(Fmt, Args) ->
-    throw(lists:flatten(io_lib:format(Fmt, Args))).