<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/dialyzer/test, branch master</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>dialyzer: Correct indentation of field warnings</title>
<updated>2019-06-04T12:13:25+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-06-04T12:09:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=6b8b77173b426cecadd94c04c2c6d904569936a7'/>
<id>6b8b77173b426cecadd94c04c2c6d904569936a7</id>
<content type='text'>
See also https://bugs.erlang.org/browse/ERL-953.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See also https://bugs.erlang.org/browse/ERL-953.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'hasse/dialyzer/prettier_warnings/OTP-15135'</title>
<updated>2019-05-07T06:25:56+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-05-07T06:25:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1a2259e01e8f8e000a1d8f93a9446c996c148325'/>
<id>1a2259e01e8f8e000a1d8f93a9446c996c148325</id>
<content type='text'>
* hasse/dialyzer/prettier_warnings/OTP-15135:
  dialyzer: Remove quotes around operators
  dialyzer: Add test cases with indentation
  dialyzer: Add an --no_indentation option
  dialyzer: Add parentheses around annotated union elements
  dialyzer: Fix dialyzer_dataflow:format_args_1()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* hasse/dialyzer/prettier_warnings/OTP-15135:
  dialyzer: Remove quotes around operators
  dialyzer: Add test cases with indentation
  dialyzer: Add an --no_indentation option
  dialyzer: Add parentheses around annotated union elements
  dialyzer: Fix dialyzer_dataflow:format_args_1()
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Remove quotes around operators</title>
<updated>2019-05-07T06:25:03+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-04-14T09:24:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c2cd09c3d6807d2e93d117d9c6b47a706a50c763'/>
<id>c2cd09c3d6807d2e93d117d9c6b47a706a50c763</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<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: Add an --no_indentation option</title>
<updated>2019-05-07T06:24:37+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-03-15T14:45:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=b0a7495c44ebf6741714948bdf5c0cb9593ec953'/>
<id>b0a7495c44ebf6741714948bdf5c0cb9593ec953</id>
<content type='text'>
By default Dialyzer tries to improve the readability of warnings.
Newlines are inserted before and inside types, signatures, and Erlang
code. Sometimes the newlines look misplaced. The raw format
(option --raw) is not affected.

Use the new --no_indentation option get the old behavior (no inserted
line breaks).

A note on the implementation. The types &amp;c present in the warning
tuples are parsed, and then formatted using erl_pp, the Erlang Pretty
Printer. The alternative, to create message tuples with formatted
types, turned out to more complicated, and has no real benefits.

Also notice that the fixes for binaries (commit 9db8a098) and union
elements (commit a1e51d12) are required. As a consequence, messages
created before these commits using the --raw option cannot always be
indented.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By default Dialyzer tries to improve the readability of warnings.
Newlines are inserted before and inside types, signatures, and Erlang
code. Sometimes the newlines look misplaced. The raw format
(option --raw) is not affected.

Use the new --no_indentation option get the old behavior (no inserted
line breaks).

A note on the implementation. The types &amp;c present in the warning
tuples are parsed, and then formatted using erl_pp, the Erlang Pretty
Printer. The alternative, to create message tuples with formatted
types, turned out to more complicated, and has no real benefits.

Also notice that the fixes for binaries (commit 9db8a098) and union
elements (commit a1e51d12) are required. As a consequence, messages
created before these commits using the --raw option cannot always be
indented.
</pre>
</div>
</content>
</entry>
<entry>
<title>stdlib: Do not allow specs for functions in other modules</title>
<updated>2019-05-03T10:17:02+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-04-29T14:13:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=60e47cba35ff565a33b25ecb01e96881ab7fe0da'/>
<id>60e47cba35ff565a33b25ecb01e96881ab7fe0da</id>
<content type='text'>
See also https://bugs.erlang.org/browse/ERL-845.

[Kostis:]

My suggestion is that the compiler refuses to compile modules that
contain specs for functions that are not from this module. I do not
remember when / why this `feature' was introduced, but thinking about
it I see a lot of (ugly) semantics issues with it. For example, should
one be allowed to declare in the foo module that lists:flatten/1 takes
an integer() as an argument and returns a binary()? Should one be
allowed to declare a spec in some module m1 for a function of m2 that
is not defined in m2?

There are all kinds of checks that will need to be added to dialyzer
to protect itself from these semantics issues. The compiler already
refuses to compile modules that contain specs for non-existing
functions of the module. Similarly, it should refuse to compile
modules that contain specs for functions of other modules - unless it
can somehow check that these functions are indeed defined, but it is
not how the compiler currently works.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See also https://bugs.erlang.org/browse/ERL-845.

[Kostis:]

My suggestion is that the compiler refuses to compile modules that
contain specs for functions that are not from this module. I do not
remember when / why this `feature' was introduced, but thinking about
it I see a lot of (ugly) semantics issues with it. For example, should
one be allowed to declare in the foo module that lists:flatten/1 takes
an integer() as an argument and returns a binary()? Should one be
allowed to declare a spec in some module m1 for a function of m2 that
is not defined in m2?

There are all kinds of checks that will need to be added to dialyzer
to protect itself from these semantics issues. The compiler already
refuses to compile modules that contain specs for non-existing
functions of the module. Similarly, it should refuse to compile
modules that contain specs for functions of other modules - unless it
can somehow check that these functions are indeed defined, but it is
not how the compiler currently works.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Add parentheses around annotated union elements</title>
<updated>2019-04-29T10:00:31+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-04-22T11:54:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a1e51d125944ad840a306d0cddec681848808f4c'/>
<id>a1e51d125944ad840a306d0cddec681848808f4c</id>
<content type='text'>
In contracts, annotated elements of unions are printed with
parentheses around them. They are not parseable otherwise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In contracts, annotated elements of unions are printed with
parentheses around them. They are not parseable otherwise.
</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: Improve the warning tagged 'fun_app_args'</title>
<updated>2019-04-24T13:23:29+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-04-24T07:52:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=6d9d4af8725f26972481b2e997c54ee5b3eafb29'/>
<id>6d9d4af8725f26972481b2e997c54ee5b3eafb29</id>
<content type='text'>
The mismatching argument positions are included.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The mismatching argument positions are included.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'hasse/dialyzer/improve_binary_printing/OTP-15752'</title>
<updated>2019-04-10T07:06:11+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2019-04-10T07:06:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=f99398161726821c67d9da07eb869221d4ecf539'/>
<id>f99398161726821c67d9da07eb869221d4ecf539</id>
<content type='text'>
* hasse/dialyzer/improve_binary_printing/OTP-15752:
  dialyzer: Fix pretty printing of binaries
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* hasse/dialyzer/improve_binary_printing/OTP-15752:
  dialyzer: Fix pretty printing of binaries
</pre>
</div>
</content>
</entry>
</feed>
