anchor.diff:      BasePlt = rebar_state:get(State, dialyzer_base_plt, default_plt()),
       filename:join(BaseDir, BasePlt).
   
  -get_base_plt_files(State) ->
  +base_plt_files(State) ->
       BasePltApps = rebar_state:get(State, dialyzer_base_plt_apps,
                                     default_plt_apps()),
  -    app_names_to_files(BasePltApps).
  -
  -app_names_to_files(AppNames) ->
  -    ToFiles = fun(AppName) ->
  -                      {_, Files} = app_name_to_info(AppName),
  -                      Files
  -              end,
  -    lists:flatmap(ToFiles, AppNames).
  +    Apps = rebar_state:project_apps(State),
  +    get_plt_files(BasePltApps, Apps).
   
   update_base_plt(State, BasePlt, BaseFiles) ->
       ?INFO("Updating base plt...", []),
  
positive.code:     ?INFO("Dialyzer starting, this may take a while...", []),
      code:add_pathsa(rebar_state:code_paths(State, all_deps)),
      Plt = get_plt_location(State),
      Apps = rebar_state:project_apps(State),
  
      try
          do(State, Plt, Apps)
      catch
          throw:{dialyzer_error, Error} ->
              ?PRV_ERROR({error_processing_apps, Error});
  
negative.code:     end.
  
  format_warnings(Warnings) ->
      format_warnings(Warnings, 0).
  
  format_warnings([Warning | Warnings], N) ->
      format_warning(Warning),
      format_warnings(Warnings, N + 1);
  format_warnings([], N) ->
      N.
  
  format_warning({unknown_application, _, [AppName]}) ->
      ?CONSOLE("Unknown application: ~s", [AppName]);
  format_warning({unknown_module, _, [Module]}) ->
      ?CONSOLE("Unknown module: ~s", [Module]);
  format_warning(Warning) ->
      case strip(dialyzer:format_warning(Warning, fullpath)) of
          ":0: " ++ Unknown ->
              ?CONSOLE("~s", [Unknown]);
          Warning2 ->
              ?CONSOLE("~s", [Warning2])
      end.
  
  strip(Warning) ->
      string:strip(Warning, right, $\n).
  