From: Claes W. <kl...@ta...> - 2010-02-20 14:08:26
|
I've just rigged the Makefiles to run dialyzer, enjoy and decipher :-) Pretty funky stuff, some actual bugs probably lurk here. /klacke [klacke@kisel]yaws > make dialyzer dialyzer --plt yaws.plt -r . Checking whether the PLT yaws.plt is up-to-date... yes Compiling some key modules to native code... done in 0m49.69s Proceeding with analysis...[1] + 3051 done emacs Makefile haxe.erl:370: The pattern <'eof', A, _NumLeft> can never match the type <[any()],[any()],number()> yaws.erl:1718: The pattern 'false' can never match the type 'true' yaws_api.erl:458: The pattern <'int', Str> can never match the type <'ALLSTRINGS' | 'string',[integer(),...]> yaws_api.erl:460: The pattern <'float', Str> can never match the type <'ALLSTRINGS' | 'string',[integer(),...]> yaws_api.erl:464: The pattern <'checkbox', "no"> can never match the type <'ALLSTRINGS',[integer(),...]> yaws_api.erl:466: The pattern <'checkbox', _Str> can never match the type <'ALLSTRINGS',[integer(),...]> yaws_api.erl:468: The pattern <'ip', _Str> can never match the type <'ALLSTRINGS',[integer(),...]> yaws_api.erl:470: The pattern <'binary', Str> can never match the type <'ALLSTRINGS',[integer(),...]> yaws_api.erl:1510: The variable _ can never match since previous clauses completely covered the type atom() yaws_api.erl:1708: Clause guard cannot succeed. The pattern <C, Key, Value, Quoted> was matched against the type <[any()],[any()],'undefined' | [any()],bool()> yaws_api.erl:1711: The pattern {'setcookie', _, _, _, _, _, _, _, _, _, _, _, _, _} can never match the type [any()] yaws_api.erl:1713: The pattern {'setcookie', _, _, _, _, _, _, _, _, _, _, _, _, _} can never match the type [any()] yaws_api.erl:1715: The pattern {'setcookie', _, _, _, _, _, _, _, _, _, _, _, _, _} can never match the type [any()] yaws_api.erl:1717: The pattern {'setcookie', _, _, _, _, _, _, _, _, _, _, _, _, _} can never match the type [any()] yaws_api.erl:1719: The pattern {'setcookie', _, _, _, _, _, _, _, _, _, _, _, _, _} can never match the type [any()] yaws_api.erl:1721: The pattern {'setcookie', _, _, _, _, _, _, _, _, _, _, _, _, _} can never match the type [any()] yaws_api.erl:1723: The pattern {'setcookie', _, _, _, _, _, _, _, _, _, _, _, _, _} can never match the type [any()] yaws_api.erl:1725: The pattern {'setcookie', _, _, _, _, _, _, _, _, _, _, _, _, _} can never match the type [any()] yaws_api.erl:1727: The pattern {'setcookie', _, _, _, _, _, _, _, _, _, _, _, _, _} can never match the type [any()] yaws_cgi.erl:612: The pattern 2 can never match the type 3 | 4 | 5 | 6 | 7 | 11 yaws_cgi.erl:618: The pattern 8 can never match the type 11 yaws_cgi.erl:619: The pattern 9 can never match the type 11 yaws_cgi.erl:620: The pattern 10 can never match the type 11 yaws_cgi.erl:622: The variable _ can never match since previous clauses completely covered the type 1 | 3 | 4 | 5 | 6 | 7 | 11 yaws_cgi.erl:852: The pattern 'true' can never match the type 'false' yaws_cgi.erl:1152: The variable OtherType can never match since previous clauses completely covered the type 3 | 6 | 7 | 11 yaws_cgi.erl:1196: The pattern {'error', Reason} can never match the type {'ok','http_eoh' | binary() | maybe_improper_list(binary() | maybe_improper_list(any(),binary() | []) | byte(),binary() | []) | {'http_error',string()} | #http_request{method::'DELETE' | 'GET' | 'HEAD' | 'OPTIONS' | 'POST' | 'PUT' | 'TRACE' | string(),path::'*' | string() | {'abs_path',[any()]} | {'scheme',[any()],[any()]} | {'absoluteURI','http' | 'https',[any()],'undefined' | non_neg_integer(),[any()]},version::{non_neg_integer(),non_neg_integer()}} | #http_response{version::{non_neg_integer(),non_neg_integer()},status::integer(),phrase::string()} | {'http_header',integer(),atom() | string(),_,string()}} yaws_cgi.erl:1201: The pattern {'error', Reason} can never match the type {'ok','http_eoh' | binary() | maybe_improper_list(binary() | maybe_improper_list(any(),binary() | []) | byte(),binary() | []) | {'http_error',string()} | #http_request{method::'DELETE' | 'GET' | 'HEAD' | 'OPTIONS' | 'POST' | 'PUT' | 'TRACE' | string(),path::'*' | string() | {'abs_path',[any()]} | {'scheme',[any()],[any()]} | {'absoluteURI','http' | 'https',[any()],'undefined' | non_neg_integer(),[any()]},version::{non_neg_integer(),non_neg_integer()}} | #http_response{version::{non_neg_integer(),non_neg_integer()},status::integer(),phrase::string()} | {'http_header',integer(),atom() | string(),_,string()}} yaws_compile.erl:468: The pattern 'false' can never match the type 'true' yaws_compile.erl:486: The pattern 'false' can never match the type 'true' yaws_config.erl:376: The pattern 'false' can never match the type 'true' yaws_ctl.erl:379: Guard test {'error',atom()} | {'ok',char()} =:= Port::char() can never succeed yaws_ctl.erl:502: Function hup/1 has no local return yaws_ctl.erl:507: Function stop/1 has no local return yaws_ctl.erl:511: Function status/1 has no local return yaws_ctl.erl:514: Function load/1 has no local return yaws_ctl.erl:538: Function trace/1 has no local return yaws_ctl.erl:541: Function debug_dump/1 has no local return yaws_ctl.erl:544: Function stats/1 has no local return yaws_dav.erl:512: Call to missing or unexported function yaws_revproxy:store_chunk_num/2 yaws_dav.erl:518: Call to missing or unexported function yaws_revproxy:store_chunk/4 yaws_debug.erl:393: The variable Zombies can never match since previous clauses completely covered the type [] yaws_debug.erl:416: The pattern {'status', 'exiting'} can never match the type {'status','runnable' | 'running' | 'suspended' | 'waiting'} yaws_debug.erl:423: The pattern {'status', 'exiting'} can never match the type {'status','runnable' | 'running' | 'suspended' | 'waiting'} yaws_debug.erl:442: The pattern 'false' can never match the type 'undefined' | {'memory',non_neg_integer()} yaws_debug.erl:528: The pattern {'memory', Mem2} can never match the type {{'memory',non_neg_integer()},'undefined' | {'current_function',{atom(),atom(),byte()}}} yaws_debug.erl:620: Function capture_io/2 will never be called yaws_revproxy.erl:256: The pattern 'expectchunked' can never match the type 'expectheaders' yaws_revproxy.erl:269: The pattern 'chunk' can never match the type 'expectheaders' yaws_revproxy.erl:277: The pattern 'len' can never match the type 'expectheaders' yaws_revproxy.erl:280: The pattern 'len' can never match the type 'expectheaders' yaws_revproxy.erl:292: The pattern 'undefined' can never match the type 'expectheaders' yaws_revproxy.erl:305: Function ploop_keepalive/3 will never be called yaws_rpc.erl:264: The pattern {'error', Reason} can never match the type {'ok',_} | {'ok',_,'soap' | 'soap_dime'} yaws_rss.erl:462: The variable L can never match since previous clauses completely covered the type integer() yaws_rss.erl:465: The variable L can never match since previous clauses completely covered the type 'yaws_rss' yaws_sendfile.erl:16: The pattern 'false' can never match the type 'true' yaws_server.erl:2623: Guard test is_list(List::<<_:_*1>>) can never succeed yaws_server.erl:2631: The call file:read(Fd::{'bin',binary()},4000) breaks the contract (File::io_device(),Size::non_neg_integer()) -> 'eof' | {'ok',[char()] | binary()} | {'error',posix()} yaws_server.erl:2640: The pattern <{'bin', Bin}, _, Sz> can never match the type <<<_:_*1>>,{'bin',binary()},_> yaws_server.erl:2644: The pattern <{'ok', X}, Fd, Sz> can never match the type <<<_:_*1>>,{'bin',binary()},_> yaws_server.erl:3132: The variable _Err can never match since previous clauses completely covered the type {'ok',[binary() | maybe_improper_list(any(),binary() | []) | byte()]} yaws_server.erl:3277: The variable Fd can never match since previous clauses completely covered the type {'bin',binary()} yaws_server.erl:3283: The variable Fd can never match since previous clauses completely covered the type {'bin',binary()} yaws_soap_lib.erl:371: The pattern 'undefined' can never match the type #schemaType{} yaws_sup_restarts.erl:47: The pattern 'false' can never match the type 'true' yaws_zlib.erl:38: The pattern {'ok', Bs1} can never match the type [binary() | maybe_improper_list(any(),binary() | []) | byte()] |