[erlang-questions] Dialyzer, behaviours, plts and what not

Fred Hebert <>
Tue Jan 5 20:22:30 CET 2016


On 01/05, Brujo Benavides wrote:
>We reduced the issue to its smallest possible expression and uploaded 
>it here <https://github.com/elbrujohalcon/dialyzeit>.
>

Interestingly enough, I can't replicate the bug after adapting the 
repository to work in rebar3. Here's 100% of the procedure to replicate 
the fix:

    λ dialyzeit → master → mkdir apps
    λ dialyzeit → master → mv first_app apps/
    λ dialyzeit → master* → mv second_app apps/
    λ dialyzeit → master* → rebar3 dialyzer
    ===> Verifying dependencies...
    ===> Compiling first
    ===> Compiling second
    ===> Dialyzer starting, this may take a while...
    ===> Updating plt...
    ===> Resolving files...
    ===> Checking 157 files in "/private/tmp/dialyzeit/_build/default/rebar3_18.2_plt"...
    ===> Doing success typing analysis...
    ===> Resolving files...
    ===> Analyzing 4 files with "/private/tmp/dialyzeit/_build/default/rebar3_18.2_plt"...

    _build/default/lib/first/src/good_child.erl
    12: The inferred return type of bad/0 ('not_bad') has nothing in common with 'bad', which is the expected return type for the callback of bad_behaviour behaviour

    _build/default/lib/second/src/bad_child.erl
    13: The inferred return type of bad/0 ('not_bad') has nothing in common with 'bad', which is the expected return type for the callback of bad_behaviour behaviour
    ===> Warnings written to /private/tmp/dialyzeit/_build/default/18.2.dialyzer_warnings
    ===> Warnings occured running dialyzer: 2

This would make me think the issue is in the environment configuration 
and/or project structure more than anything else.

Regards,
 Fred.


More information about the erlang-questions mailing list