mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-01-18 14:21:36 +00:00
Aliases to aliases is a bad idea, revert. Added better tests to show unused aliases
This commit is contained in:
parent
21e890602d
commit
1e60bafcdc
3 changed files with 16 additions and 7 deletions
7
parser.c
7
parser.c
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
|
|
|
@ -4,3 +4,6 @@ T: -execute
|
|||
C: -std=gmqcc
|
||||
M: alias_2
|
||||
M: 3.14
|
||||
M: x 1
|
||||
M: y 2
|
||||
M: z 3
|
||||
|
|
Loading…
Reference in a new issue