<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/dialyzer/test/map_SUITE_data, branch maint</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>dialyzer: Add test cases with indentation</title>
<updated>2019-05-07T06:25:03+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-04-17T11:20:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=77cbe3b6ced0ca42cf3ec5c8ca0333d9418a0372'/>
<id>77cbe3b6ced0ca42cf3ec5c8ca0333d9418a0372</id>
<content type='text'>
A smallish selection of already existing tests, run with
the indentation option.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A smallish selection of already existing tests, run with
the indentation option.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Fix dialyzer_dataflow:format_args_1()</title>
<updated>2019-04-29T10:00:31+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-03-22T10:58:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=19e8e534cc26d890378265907ff0a56c101f2625'/>
<id>19e8e534cc26d890378265907ff0a56c101f2625</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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: 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>
<entry>
<title>Merge branch 'maint'</title>
<updated>2017-02-03T07:50:20+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-02-03T07:50:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cdeca7938c9a2cbad2575065aca3f79e2a16addd'/>
<id>cdeca7938c9a2cbad2575065aca3f79e2a16addd</id>
<content type='text'>
* maint:
  dialyzer: Increase time limit for tests
  dialyzer: Optimize typesig
  dialyzer: Optimize evaluation of complex code
  dialyzer: Optimize collection of variables

Conflicts:
	lib/dialyzer/src/dialyzer_typesig.erl
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* maint:
  dialyzer: Increase time limit for tests
  dialyzer: Optimize typesig
  dialyzer: Optimize evaluation of complex code
  dialyzer: Optimize collection of variables

Conflicts:
	lib/dialyzer/src/dialyzer_typesig.erl
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Increase time limit for tests</title>
<updated>2017-02-01T08:14:57+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-02-01T08:14:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=918eeb95d6d96ede31a85b07b008ae686dc0dfa8'/>
<id>918eeb95d6d96ede31a85b07b008ae686dc0dfa8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update test cases for erlang:hash/2 removal</title>
<updated>2017-01-25T10:56:29+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2016-08-01T12:49:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=52097fab56edbbd8c6f8a57ec3b3f33aa60c5bb9'/>
<id>52097fab56edbbd8c6f8a57ec3b3f33aa60c5bb9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Substitute 'opacity' for 'opaqueness'</title>
<updated>2016-11-22T09:31:59+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2016-11-22T09:20:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a5f88f548c7f1045b5aa9642574167df899c2f3b'/>
<id>a5f88f548c7f1045b5aa9642574167df899c2f3b</id>
<content type='text'>
Suggested by Kostis.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Suggested by Kostis.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Improve a warning message</title>
<updated>2016-11-22T09:29:04+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2016-11-16T14:06:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=773948083b57ad59eb90b5668e72175d79acbe1f'/>
<id>773948083b57ad59eb90b5668e72175d79acbe1f</id>
<content type='text'>
Messages regarding guards with orelse/andalso could look
like "Clause guard cannot succeed. The variable A was matched
against the type any()". Now they look like as if or/and is
used: "Guard test is_integer(A::atom()) can never succeed".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Messages regarding guards with orelse/andalso could look
like "Clause guard cannot succeed. The variable A was matched
against the type any()". Now they look like as if or/and is
used: "Guard test is_integer(A::atom()) can never succeed".
</pre>
</div>
</content>
</entry>
</feed>
