summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatwey V. Kornilov <matwey.kornilov@gmail.com>2014-05-31 16:45:44 +0400
committerMatwey V. Kornilov <matwey.kornilov@gmail.com>2014-06-08 14:34:04 +0400
commita7e05f57d1134243cb4506f1cf9581b29af62da8 (patch)
treeee91a9d81de9827068bef4f66c705b0ec49ed8f3 /src
parent949d56552729067fdb99c0ced58d104674ed5aae (diff)
Fix build for 17.0 using the solutiong proposed by @tsloughter
We use namespaced_types option to choose between dict() and dict:dict() types.
Diffstat (limited to 'src')
-rw-r--r--src/rebar_config.erl16
-rw-r--r--src/rebar_erlc_compiler.erl14
2 files changed, 23 insertions, 7 deletions
diff --git a/src/rebar_config.erl b/src/rebar_config.erl
index 10c6483..1c90d22 100644
--- a/src/rebar_config.erl
+++ b/src/rebar_config.erl
@@ -39,13 +39,21 @@
-include("rebar.hrl").
+-ifdef(namespaced_types).
+% dict:dict() exists starting from Erlang 17.
+-type rebar_dict() :: dict:dict().
+-else.
+% dict() has been obsoleted in Erlang 17 and deprecated in 18.
+-type rebar_dict() :: dict().
+-endif.
+
-record(config, { dir :: file:filename(),
opts = [] :: list(),
- globals = new_globals() :: dict(),
- envs = new_env() :: dict(),
+ globals = new_globals() :: rebar_dict(),
+ envs = new_env() :: rebar_dict(),
%% cross-directory/-command config
- skip_dirs = new_skip_dirs() :: dict(),
- xconf = new_xconf() :: dict() }).
+ skip_dirs = new_skip_dirs() :: rebar_dict(),
+ xconf = new_xconf() :: rebar_dict() }).
-export_type([config/0]).
diff --git a/src/rebar_erlc_compiler.erl b/src/rebar_erlc_compiler.erl
index f7753c7..5f541d9 100644
--- a/src/rebar_erlc_compiler.erl
+++ b/src/rebar_erlc_compiler.erl
@@ -47,6 +47,14 @@
info = {[], []} :: erlc_info()
}).
+-ifdef(namespaced_types).
+% digraph:digraph() exists starting from Erlang 17.
+-type rebar_digraph() :: digraph:digraph().
+-else.
+% digraph() has been obsoleted in Erlang 17 and deprecated in 18.
+-type rebar_digraph() :: digraph().
+-endif.
+
%% ===================================================================
%% Public API
%% ===================================================================
@@ -522,19 +530,19 @@ expand_file_names(Files, Dirs) ->
end
end, Files).
--spec get_parents(digraph(), file:filename()) -> [file:filename()].
+-spec get_parents(rebar_digraph(), file:filename()) -> [file:filename()].
get_parents(G, Source) ->
%% Return all files which the Source depends upon.
digraph_utils:reachable_neighbours([Source], G).
--spec get_children(digraph(), file:filename()) -> [file:filename()].
+-spec get_children(rebar_digraph(), file:filename()) -> [file:filename()].
get_children(G, Source) ->
%% Return all files dependent on the Source.
digraph_utils:reaching_neighbours([Source], G).
-spec internal_erl_compile(rebar_config:config(), file:filename(),
file:filename(), list(),
- digraph()) -> 'ok' | 'skipped'.
+ rebar_digraph()) -> 'ok' | 'skipped'.
internal_erl_compile(Config, Source, OutDir, ErlOpts, G) ->
%% Determine the target name and includes list by inspecting the source file
Module = filename:basename(Source, ".erl"),