From 8858c410bce566c3c280c32885be46c82d6d252d Mon Sep 17 00:00:00 2001 From: Radek Szymczyszyn Date: Fri, 20 Sep 2024 13:41:08 +0200 Subject: [PATCH] Handle all erl_anno:file() cases, fix self-check error --- src/typelib.erl | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/typelib.erl b/src/typelib.erl index 670c4924..bae3d2dc 100644 --- a/src/typelib.erl +++ b/src/typelib.erl @@ -232,11 +232,15 @@ annotate_user_type_(_Filename, Type) -> -spec get_module_from_annotation(erl_anno:anno()) -> {ok, module()} | none. get_module_from_annotation(Anno) -> case erl_anno:file(Anno) of - File when is_list(File) -> - Basename = filename:basename(File, ".erl"), - {ok, list_to_existing_atom(?assert_type(Basename, string()))}; undefined -> - none + none; + File -> + case unicode:characters_to_binary(filename:basename(File, ".erl")) of + Basename when is_binary(Basename) -> + {ok, binary_to_existing_atom(Basename)}; + _ -> + erlang:error({malformed_anno, Anno}) + end end. -spec substitute_type_vars(type(),