From 4c78ab3aee11e930acfad0aa3a204a2a342b640f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Rowicki?= <35342116+radrow@users.noreply.github.com> Date: Fri, 26 Jul 2019 15:31:06 +0200 Subject: [PATCH] Covered qid case in ast_typerep Because `qid` was not accepted the following code ``` contract Test = datatype myOption('a) = MyNone | MySome('a) entrypoint optionFn(v: myOption(string)): myOption(string) = v ``` Used to lead to `function_clause` error. Bug copyright (c) @nduchak --- src/aeso_ast_to_icode.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aeso_ast_to_icode.erl b/src/aeso_ast_to_icode.erl index 74d525f..779173a 100644 --- a/src/aeso_ast_to_icode.erl +++ b/src/aeso_ast_to_icode.erl @@ -728,7 +728,7 @@ ast_typerep({con, _, _}, _) -> word; %% Contract type ast_typerep({bytes_t, _, Len}, _) -> bytes_t(Len); -ast_typerep({app_t, _, {id, _, Name}, Args}, Icode) -> +ast_typerep({app_t, _, {I, _, Name}, Args}, Icode) when I =:= id; I =:= qid -> ArgReps = [ ast_typerep(Arg, Icode) || Arg <- Args ], lookup_type_id(Name, ArgReps, Icode); ast_typerep({tvar,_,A}, #{ type_vars := TypeVars }) ->