use crate::error::ErrorType;
use crate::interpreter::test::make_interpreter_test;
make_interpreter_test!(
aliases,
(
value_expr,
{ alias = foo },
{ fn alias() -> u32 { 1 } },
{ fn foo() -> u32 { 1 } },
None,
),
(
call_expr,
{ alias = concat(foo, _, bar) },
{ fn alias() -> u32 { 1 } },
{ fn foo_bar() -> u32 { 1 } },
None,
),
(
multiple_aliases,
{ alias1 = foo, alias2 = concat(foo, _, bar) },
{ fn alias1() -> u32 { alias2 } },
{ fn foo() -> u32 { foo_bar } },
None,
),
(
alias_reuse,
{ alias1 = foo, alias2 = concat(alias1, _, bar) },
{ fn alias1() -> u32 { alias2 } },
{ fn foo() -> u32 { foo_bar } },
None,
),
(
duplicate_aliases,
{ alias = foo, alias = bar },
{ fn alias() -> u32 { alias2 } },
{ },
Some(ErrorType::RedefinedNameError),
),
(
reuse_coercion,
{ s = "foo bar", alias = s },
{ fn my_fn() -> &str { alias } },
{ fn my_fn() -> &str { "foo bar" } },
None,
),
);