anchor.diff:      ok.
   
   bad_dialyzer_attr(Config) ->
  -    PrivDir = ?config(priv_dir, Config),
  -
       Prog1 = <<"-module(dial).
                  -dialyzer({no_return, [undef/0]}).">>,
       {ok, Beam1} = compile(Config, Prog1, dial, []),
  -    Plt = filename:join(PrivDir, "bad_attr.plt"),
       {dialyzer_error,
        "Analysis failed with error:\n"
        "Could not scan the following file(s):\n"
  
positive.code: 	      ">>,
  
      {ok, BeamFile1} = compile(Config, Mod1A, run_succ_typings1, []),
      [] = run_dialyzer(plt_build, [BeamFile1], []),
  
      Mod1B = <<"
  	       -module(run_succ_typings1).
  
negative.code:     {ok, BeamFile2} = compile(Config, Mod2, run_succ_typings2, []),
      % contract types warning as run_succ_typings2:call/0 makes a call to
      % run_succ_typings1:call/0, which returns a (not b) in the PLT.
      [_] = run_dialyzer(succ_typings, [BeamFile2],
                         [{check_plt, false}, {init_plt, Plt}]),
      % warning not returned as run_succ_typings1 is updated in the PLT.
      [] = run_dialyzer(succ_typings, [BeamFile2],
                        [{check_plt, true}, {init_plt, Plt}]),
  
      ok.
  
  