mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-01-18 22:31: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;
|
void *entry = (void*)var->desc;
|
||||||
ast_expression *find = parser_find_var(parser, 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) {
|
if (!find) {
|
||||||
compile_error(parser_ctx(parser), "undeclared variable `%s` for alias `%s`", var->desc, var->name);
|
compile_error(parser_ctx(parser), "undeclared variable `%s` for alias `%s`", var->desc, var->name);
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -6,16 +6,29 @@ void alias_2() {
|
||||||
[[alias("alias_2")]] void alias_2_aliased();
|
[[alias("alias_2")]] void alias_2_aliased();
|
||||||
[[alias("alias_1")]] float alias_1_aliased;
|
[[alias("alias_1")]] float alias_1_aliased;
|
||||||
|
|
||||||
|
|
||||||
|
// alias to an alias?
|
||||||
|
vector alias_3;
|
||||||
|
[[alias("alias_3")]] vector alias_3_aliased;
|
||||||
|
|
||||||
// expected output
|
// expected output
|
||||||
// alias_2
|
// alias_2
|
||||||
// 3.14
|
// 3.14
|
||||||
void main() {
|
void main() {
|
||||||
alias_2_aliased();
|
alias_2_aliased();
|
||||||
|
|
||||||
|
alias_3_aliased= '1 2 3';
|
||||||
|
|
||||||
print(
|
print(
|
||||||
ftos(
|
ftos(
|
||||||
alias_1_aliased
|
alias_1_aliased
|
||||||
),
|
),
|
||||||
"\n"
|
"\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
|
C: -std=gmqcc
|
||||||
M: alias_2
|
M: alias_2
|
||||||
M: 3.14
|
M: 3.14
|
||||||
|
M: x 1
|
||||||
|
M: y 2
|
||||||
|
M: z 3
|
||||||
|
|
Loading…
Reference in a new issue