Do not show warning for types used in records
This commit is contained in:
parent
03d6dd6ca2
commit
a037466f2d
@ -924,14 +924,14 @@ infer(Contracts, Options) ->
|
|||||||
{Env1, Decls} = infer1(Env, Contracts1, [], Options),
|
{Env1, Decls} = infer1(Env, Contracts1, [], Options),
|
||||||
when_warning(warn_unused_functions, fun() -> destroy_and_report_unused_functions() end),
|
when_warning(warn_unused_functions, fun() -> destroy_and_report_unused_functions() end),
|
||||||
when_option(warn_error, fun() -> destroy_and_report_warnings_as_type_errors() end),
|
when_option(warn_error, fun() -> destroy_and_report_warnings_as_type_errors() end),
|
||||||
WarningsUnsorted = lists:map(fun mk_warning/1, ets_tab2list(warnings)),
|
|
||||||
Warnings = aeso_warnings:sort_warnings(WarningsUnsorted),
|
|
||||||
{Env2, DeclsFolded, DeclsUnfolded} =
|
{Env2, DeclsFolded, DeclsUnfolded} =
|
||||||
case proplists:get_value(dont_unfold, Options, false) of
|
case proplists:get_value(dont_unfold, Options, false) of
|
||||||
true -> {Env1, Decls, Decls};
|
true -> {Env1, Decls, Decls};
|
||||||
false -> E = on_scopes(Env1, fun(Scope) -> unfold_record_types(Env1, Scope) end),
|
false -> E = on_scopes(Env1, fun(Scope) -> unfold_record_types(Env1, Scope) end),
|
||||||
{E, Decls, unfold_record_types(E, Decls)}
|
{E, Decls, unfold_record_types(E, Decls)}
|
||||||
end,
|
end,
|
||||||
|
WarningsUnsorted = lists:map(fun mk_warning/1, ets_tab2list(warnings)),
|
||||||
|
Warnings = aeso_warnings:sort_warnings(WarningsUnsorted),
|
||||||
case proplists:get_value(return_env, Options, false) of
|
case proplists:get_value(return_env, Options, false) of
|
||||||
false -> {DeclsFolded, DeclsUnfolded, Warnings};
|
false -> {DeclsFolded, DeclsUnfolded, Warnings};
|
||||||
true -> {Env2, DeclsFolded, DeclsUnfolded, Warnings}
|
true -> {Env2, DeclsFolded, DeclsUnfolded, Warnings}
|
||||||
|
@ -70,6 +70,7 @@ simple_compile_test_() ->
|
|||||||
fun() ->
|
fun() ->
|
||||||
#{ warnings := Warnings } = compile("warnings", [warn_all]),
|
#{ warnings := Warnings } = compile("warnings", [warn_all]),
|
||||||
#{ warnings := [] } = compile("warning_unused_include_no_include", [warn_all]),
|
#{ warnings := [] } = compile("warning_unused_include_no_include", [warn_all]),
|
||||||
|
#{ warnings := [] } = compile("warning_used_record_typedef", [warn_all]),
|
||||||
check_warnings(warnings(), Warnings)
|
check_warnings(warnings(), Warnings)
|
||||||
end} ] ++
|
end} ] ++
|
||||||
[].
|
[].
|
||||||
|
5
test/contracts/warning_used_record_typedef.aes
Normal file
5
test/contracts/warning_used_record_typedef.aes
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
contract Test =
|
||||||
|
type option_int = option(int)
|
||||||
|
record option_point = {x: int, y: option_int}
|
||||||
|
|
||||||
|
entrypoint test_option_record(a: option_point) = a
|
Loading…
x
Reference in New Issue
Block a user