summaryrefslogtreecommitdiff
path: root/src/rebar_base_compiler.erl
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2018-08-03 20:56:22 -0400
committerGitHub <noreply@github.com>2018-08-03 20:56:22 -0400
commitc96222ead3790d06448b447ef704546618e98d41 (patch)
treecea094be825e6db9d9e0e59cefa6ea2146fa6eaa /src/rebar_base_compiler.erl
parent56531c9ee48797654ab228aa48b3c69b16dc19ac (diff)
parente157b6c23fcf86e76a87edf38283d5684df1307f (diff)
Merge pull request #1850 from ferd/helpful-includelib-error
Friendlier output on include_lib errors
Diffstat (limited to 'src/rebar_base_compiler.erl')
-rw-r--r--src/rebar_base_compiler.erl16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/rebar_base_compiler.erl b/src/rebar_base_compiler.erl
index 3f273f1..00b0533 100644
--- a/src/rebar_base_compiler.erl
+++ b/src/rebar_base_compiler.erl
@@ -264,14 +264,24 @@ report(Messages) ->
-spec format_errors(_, Extra, [err_or_warn()]) -> [string()] when
Extra :: string().
format_errors(_MainSource, Extra, Errors) ->
- [begin
- [format_error(Source, Extra, Desc) || Desc <- Descs]
- end
+ [[format_error(Source, Extra, Desc) || Desc <- Descs]
|| {Source, Descs} <- Errors].
%% @private format compiler errors into proper outputtable strings
-spec format_error(file:filename(), Extra, err_or_warn()) -> string() when
Extra :: string().
+format_error(Source, Extra, {Line, Mod=epp, Desc={include,lib,File}}) ->
+ %% Special case for include file errors, overtaking the default one
+ BaseDesc = Mod:format_error(Desc),
+ Friendly = case filename:split(File) of
+ [Lib, "include", _] ->
+ io_lib:format("; Make sure ~s is in your app "
+ "file's 'applications' list", [Lib]);
+ _ ->
+ ""
+ end,
+ FriendlyDesc = BaseDesc ++ Friendly,
+ ?FMT("~ts:~w: ~ts~ts~n", [Source, Line, Extra, FriendlyDesc]);
format_error(Source, Extra, {{Line, Column}, Mod, Desc}) ->
ErrorDesc = Mod:format_error(Desc),
?FMT("~ts:~w:~w: ~ts~ts~n", [Source, Line, Column, Extra, ErrorDesc]);