From 1b8be7a7495d3579a5215aba1456c91923180a09 Mon Sep 17 00:00:00 2001 From: Gaith Hallak Date: Sun, 30 Jan 2022 17:48:51 +0400 Subject: [PATCH] Do not mark indirectly included files as unused --- src/aeso_ast_infer_types.erl | 11 ++++++++++- src/aeso_parser.erl | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/aeso_ast_infer_types.erl b/src/aeso_ast_infer_types.erl index b03834e..4378271 100644 --- a/src/aeso_ast_infer_types.erl +++ b/src/aeso_ast_infer_types.erl @@ -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}, diff --git a/src/aeso_parser.erl b/src/aeso_parser.erl index 9175e0f..51b81f6 100644 --- a/src/aeso_parser.erl +++ b/src/aeso_parser.erl @@ -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}),