Do not mark indirectly included files as unused

This commit is contained in:
Gaith Hallak 2022-01-30 17:48:51 +04:00
parent c943148d2d
commit 1b8be7a749
2 changed files with 12 additions and 2 deletions

View File

@ -857,7 +857,16 @@ infer1(Env, [{Contract, Ann, ConName, Code} | Rest], Acc, Options)
Env3 = bind_contract(Contract1, Env2),
infer1(Env3, Rest, [Contract1 | Acc], Options);
infer1(Env, [{namespace, Ann, Name, Code} | Rest], Acc, Options) ->
when_warning(warn_unused_includes, fun() -> potential_unused_include(Ann, proplists:get_value(src_file, Options, no_file)) end),
when_warning(warn_unused_includes,
fun() ->
case proplists:get_value(include_type, Ann, none) of
direct ->
SrcFile = proplists:get_value(src_file, Options, no_file),
potential_unused_include(Ann, SrcFile);
_ ->
ok
end
end),
check_scope_name_clash(Env, namespace, Name),
{Env1, Code1} = infer_contract_top(push_scope(namespace, Name, Env), namespace, Code, Options),
Namespace1 = {namespace, Ann, Name, Code1},

View File

@ -685,8 +685,9 @@ expand_includes([{include, Ann, {string, _SAnn, File}} | AST], Included, Acc, Op
Hashed = hash_include(File, Code),
case sets:is_element(Hashed, Included) of
false ->
SrcFile = proplists:get_value(src_file, Opts, no_file),
IncludeType = case proplists:get_value(file, Ann) of
no_file -> direct;
SrcFile -> direct;
_ -> indirect
end,
Opts1 = lists:keystore(src_file, 1, Opts, {src_file, File}),