<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/dialyzer/test, branch KennethL-patch-1</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>dialyzer: Fix bsl/2 bug</title>
<updated>2018-01-12T14:49:35+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-01-12T14:44:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cecf41457d92a3bd21a7690b589f79c0a2901a93'/>
<id>cecf41457d92a3bd21a7690b589f79c0a2901a93</id>
<content type='text'>
Also modified erl_bif_types:infinity_bsl() when called with zero as
first argument. As of writing this, erlang:'bsl'/2 is modified on the
master branch to never fail if called with a huge second argument.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also modified erl_bif_types:infinity_bsl() when called with zero as
first argument. As of writing this, erlang:'bsl'/2 is modified on the
master branch to never fail if called with a huge second argument.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Add a test of erl_tar:table/1,2</title>
<updated>2018-01-09T14:08:57+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-01-09T14:03:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=50c99a1a07feed6f160a700c5f39becc10f04802'/>
<id>50c99a1a07feed6f160a700c5f39becc10f04802</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Correct handling of erlang:abs/1</title>
<updated>2018-01-08T11:45:55+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-01-08T11:43:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e8a8d0a81be4ef1ffbb5c382705a27bd24ebefea'/>
<id>e8a8d0a81be4ef1ffbb5c382705a27bd24ebefea</id>
<content type='text'>
See also https://bugs.erlang.org/browse/ERL-551.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See also https://bugs.erlang.org/browse/ERL-551.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Extend the map implementation's handling of ?unit</title>
<updated>2017-11-22T14:07:46+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-11-15T11:57:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=985f5a1fae38caed84cde8bc09f6f60e91710f20'/>
<id>985f5a1fae38caed84cde8bc09f6f60e91710f20</id>
<content type='text'>
The Maps implementation handles ?unit in more cases.

Exactly when t_is_none_or_unit() is to be called is not clear to me.
The added cases are about a map type being ?unit, but the key or the
value of an association can also be ?unit, but that is not always
checked.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Maps implementation handles ?unit in more cases.

Exactly when t_is_none_or_unit() is to be called is not clear to me.
The added cases are about a map type being ?unit, but the key or the
value of an association can also be ?unit, but that is not always
checked.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Use string:find() instead of string:str()</title>
<updated>2017-11-22T14:07:46+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-11-15T11:57:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cf349b8dc02123c97ad8027594b9792d846fd6a2'/>
<id>cf349b8dc02123c97ad8027594b9792d846fd6a2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Display error messages without call stack</title>
<updated>2017-11-10T15:36:02+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-11-10T14:00:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=ffd24a6d63b94c8871dc718204bc2cf805ceba73'/>
<id>ffd24a6d63b94c8871dc718204bc2cf805ceba73</id>
<content type='text'>
As of commit 12b379 many of the reasons displayed after
"Analysis failed with error:"
erroneously include a call stack. The bug is now corrected.

The bug was pointed out in
http://erlang.org/pipermail/erlang-questions/2017-October/093838.html.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As of commit 12b379 many of the reasons displayed after
"Analysis failed with error:"
erroneously include a call stack. The bug is now corrected.

The bug was pointed out in
http://erlang.org/pipermail/erlang-questions/2017-October/093838.html.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'hasse/dialyzer/map_fixes/OTP-14572' into maint</title>
<updated>2017-09-18T06:29:50+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-09-18T06:29:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=25ad8573ba9e0b225b48f35964afb2eb023ecca4'/>
<id>25ad8573ba9e0b225b48f35964afb2eb023ecca4</id>
<content type='text'>
* hasse/dialyzer/map_fixes/OTP-14572:
  dialyzer: Adjust a test case
  dialyzer: Modify handling of singleton map key types
  Dialyzer: Rewrite one map type invariant
  Dialyzer: Rewrite some of the docs of map types
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* hasse/dialyzer/map_fixes/OTP-14572:
  dialyzer: Adjust a test case
  dialyzer: Modify handling of singleton map key types
  Dialyzer: Rewrite one map type invariant
  Dialyzer: Rewrite some of the docs of map types
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Improve check of unknown types</title>
<updated>2017-09-15T06:17:49+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-09-08T11:16:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=96cf13613c53b641cf7e8a45f83fb71809d6b336'/>
<id>96cf13613c53b641cf7e8a45f83fb71809d6b336</id>
<content type='text'>
The implementation of OTP-14218 (commit 6d3b38a) has a weakness: only
a very limited part of the type form is checked. This is now fixed:
types not used by specs are checked equally well as types used by
specs.

The new function erl_types:t_from_form_check_remote() checks usage of
remote types. It does not expand used local types, and has (almost) no
limits on depth and size.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The implementation of OTP-14218 (commit 6d3b38a) has a weakness: only
a very limited part of the type form is checked. This is now fixed:
types not used by specs are checked equally well as types used by
specs.

The new function erl_types:t_from_form_check_remote() checks usage of
remote types. It does not expand used local types, and has (almost) no
limits on depth and size.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Adjust a test case</title>
<updated>2017-09-12T11:32:30+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-09-06T07:34:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c4aadfd7f88fa379355d6b5e86833066b859d3b2'/>
<id>c4aadfd7f88fa379355d6b5e86833066b859d3b2</id>
<content type='text'>
Huge maps are truncated differently by the pretty printer. The reason
is that erl_types:is_singleton_type/1 no longer recognizes complex
singleton types, which results in a less precise representation of map
types.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Huge maps are truncated differently by the pretty printer. The reason
is that erl_types:is_singleton_type/1 no longer recognizes complex
singleton types, which results in a less precise representation of map
types.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Modify handling of singleton map key types</title>
<updated>2017-09-12T11:32:29+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-09-01T09:44:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3d05725ceb26611ac8c19cc01df715089dc322d5'/>
<id>3d05725ceb26611ac8c19cc01df715089dc322d5</id>
<content type='text'>
The test case loop.erl shows that there is a problem with certain
singleton key types. Here the internal representation toggles between
 #{a | b =&gt; ...} and #{a =&gt; ..., b =&gt; ...}

The choice is to turn #{a | b =&gt; ...} into #{a =&gt; ..., b =&gt; ...} early
(t_from_form()). The aim is to keep as much info as possible (in
pairs). However, including complex singleton keys (tuples, maps) in
this scheme is potentially too costly, and a bit complicated. So one
more choice is made: let atoms and number (and nothing else) be
singleton types, and let complex keys go into the default key.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test case loop.erl shows that there is a problem with certain
singleton key types. Here the internal representation toggles between
 #{a | b =&gt; ...} and #{a =&gt; ..., b =&gt; ...}

The choice is to turn #{a | b =&gt; ...} into #{a =&gt; ..., b =&gt; ...} early
(t_from_form()). The aim is to keep as much info as possible (in
pairs). However, including complex singleton keys (tuples, maps) in
this scheme is potentially too costly, and a bit complicated. So one
more choice is made: let atoms and number (and nothing else) be
singleton types, and let complex keys go into the default key.
</pre>
</div>
</content>
</entry>
</feed>
