From 8a7c18b5139d22c9559acef3b36f29c43a2b9fd0 Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Sat, 19 May 2018 13:04:41 -0700 Subject: [PATCH] Disallow non-leaf template types. --- src/util.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/util.c b/src/util.c index 21e167d..4aa6a56 100644 --- a/src/util.c +++ b/src/util.c @@ -52,7 +52,12 @@ libab_result libab_resolve_parsetype(libab_parsetype* to_resolve, resolve_name = !(to_resolve->variant & (LIBABACUS_TYPE_F_RESOLVED | LIBABACUS_TYPE_F_PLACE)); check_parents = !(to_resolve->variant & LIBABACUS_TYPE_F_PLACE); - if (resolve_name) { + + if ((to_resolve->variant & LIBABACUS_TYPE_F_PLACE) && (to_resolve->variant & LIBABACUS_TYPE_F_PARENT)) { + result = LIBAB_UNEXPECTED; + } + + if (resolve_name && result == LIBAB_SUCCESS) { libab_basetype* basetype = libab_table_search_basetype(scope, to_resolve->data_u.name); if (basetype) {