diff options
author | Matwey V. Kornilov <matwey.kornilov@gmail.com> | 2014-05-31 16:45:44 +0400 |
---|---|---|
committer | Matwey V. Kornilov <matwey.kornilov@gmail.com> | 2014-06-08 14:34:04 +0400 |
commit | a7e05f57d1134243cb4506f1cf9581b29af62da8 (patch) | |
tree | ee91a9d81de9827068bef4f66c705b0ec49ed8f3 /src | |
parent | 949d56552729067fdb99c0ced58d104674ed5aae (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.erl | 16 | ||||
-rw-r--r-- | src/rebar_erlc_compiler.erl | 14 |
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"), |