Aliases to aliases is a bad idea, revert. Added better tests to show unused aliases

This commit is contained in:
Dale Weiler 2013-02-06 09:28:42 +00:00
parent 21e890602d
commit 1e60bafcdc
3 changed files with 16 additions and 7 deletions

View file

@ -5280,13 +5280,6 @@ static bool parse_variable(parser_t *parser, ast_block *localblock, bool nofield
void *entry = (void*)var->desc;
ast_expression *find = parser_find_var(parser, var->desc);
/* aliases to aliases are also allowed */
if (!find) {
char *name = NULL;
if ((find = parser_find_var(parser, (const char *)(name = util_htget(parser->aliases, var->desc)))))
entry = (void*)name;
}
if (!find) {
compile_error(parser_ctx(parser), "undeclared variable `%s` for alias `%s`", var->desc, var->name);
return false;

View file

@ -6,16 +6,29 @@ void alias_2() {
[[alias("alias_2")]] void alias_2_aliased();
[[alias("alias_1")]] float alias_1_aliased;
// alias to an alias?
vector alias_3;
[[alias("alias_3")]] vector alias_3_aliased;
// expected output
// alias_2
// 3.14
void main() {
alias_2_aliased();
alias_3_aliased= '1 2 3';
print(
ftos(
alias_1_aliased
),
"\n"
);
print(
"x ", ftos(alias_3_aliased_x), "\n",
"y ", ftos(alias_3_aliased_y), "\n",
"z ", ftos(alias_3_aliased_z), "\n"
);
}

View file

@ -4,3 +4,6 @@ T: -execute
C: -std=gmqcc
M: alias_2
M: 3.14
M: x 1
M: y 2
M: z 3