mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
InlineAssembly: Extracting tests for variable declaration
This commit is contained in:
parent
cc230ddda3
commit
616f03f577
@ -203,37 +203,6 @@ BOOST_AUTO_TEST_CASE(constants)
|
||||
BOOST_CHECK(successParse("{ pop(mul(7, 8)) }"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(vardecl)
|
||||
{
|
||||
BOOST_CHECK(successParse("{ let x := 7 }"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(vardecl_name_clashes)
|
||||
{
|
||||
CHECK_PARSE_ERROR("{ let x := 1 let x := 2 }", DeclarationError, "Variable name x already taken in this scope.");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(vardecl_multi)
|
||||
{
|
||||
BOOST_CHECK(successParse("{ function f() -> x, y {} let x, y := f() }"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(vardecl_multi_conflict)
|
||||
{
|
||||
CHECK_PARSE_ERROR("{ function f() -> x, y {} let x, x := f() }", DeclarationError, "Variable name x already taken in this scope.");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(vardecl_bool)
|
||||
{
|
||||
successParse("{ let x := true }");
|
||||
successParse("{ let x := false }");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(vardecl_empty)
|
||||
{
|
||||
BOOST_CHECK(successParse("{ let x }"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(functional)
|
||||
{
|
||||
BOOST_CHECK(successParse("{ let x := 2 x := add(add(7, mul(6, x)), mul(7, 8)) }"));
|
||||
@ -259,17 +228,6 @@ BOOST_AUTO_TEST_CASE(functional_assignment_complex)
|
||||
BOOST_CHECK(successParse("{ let x := 2 x := add(add(7, mul(6, x)), mul(7, 8)) }"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(vardecl_complex)
|
||||
{
|
||||
BOOST_CHECK(successParse("{ let y := 2 let x := add(add(7, mul(6, y)), mul(7, 8)) }"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(variable_use_before_decl)
|
||||
{
|
||||
CHECK_PARSE_ERROR("{ x := 2 let x := 3 }", DeclarationError, "Variable x used before it was declared.");
|
||||
CHECK_PARSE_ERROR("{ let x := mul(2, x) }", DeclarationError, "Variable x used before it was declared.");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(for_statement)
|
||||
{
|
||||
BOOST_CHECK(successParse("{ for {} 1 {} {} }"));
|
||||
|
5
test/libyul/yulSyntaxTests/vardecl.yul
Normal file
5
test/libyul/yulSyntaxTests/vardecl.yul
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
let x := 7
|
||||
}
|
||||
// ====
|
||||
// dialect: yul
|
6
test/libyul/yulSyntaxTests/vardecl_bool.yul
Normal file
6
test/libyul/yulSyntaxTests/vardecl_bool.yul
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
let x := true
|
||||
let y := false
|
||||
}
|
||||
// ====
|
||||
// dialect: evm
|
4
test/libyul/yulSyntaxTests/vardecl_complex.yul
Normal file
4
test/libyul/yulSyntaxTests/vardecl_complex.yul
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
let y := 2
|
||||
let x := add(add(7, mul(6, y)), mul(7, 8))
|
||||
}
|
3
test/libyul/yulSyntaxTests/vardecl_empty.yul
Normal file
3
test/libyul/yulSyntaxTests/vardecl_empty.yul
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
let x
|
||||
}
|
4
test/libyul/yulSyntaxTests/vardecl_multi.yul
Normal file
4
test/libyul/yulSyntaxTests/vardecl_multi.yul
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
function f() -> x, y {}
|
||||
let x, y := f()
|
||||
}
|
6
test/libyul/yulSyntaxTests/vardecl_multi_conflict.yul
Normal file
6
test/libyul/yulSyntaxTests/vardecl_multi_conflict.yul
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
function f() -> x, y {}
|
||||
let x, x := f()
|
||||
}
|
||||
// ----
|
||||
// DeclarationError 1395: (28-43): Variable name x already taken in this scope.
|
6
test/libyul/yulSyntaxTests/vardecl_name_clashes.yul
Normal file
6
test/libyul/yulSyntaxTests/vardecl_name_clashes.yul
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
let x := 1
|
||||
let x := 2
|
||||
}
|
||||
// ----
|
||||
// DeclarationError 1395: (15-25): Variable name x already taken in this scope.
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
x := 2
|
||||
let x := 3
|
||||
}
|
||||
// ----
|
||||
// DeclarationError 1133: (3-4): Variable x used before it was declared.
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
let x := mul(2, x)
|
||||
}
|
||||
|
||||
// ----
|
||||
// DeclarationError 4990: (19-20): Variable x used before it was declared.
|
Loading…
Reference in New Issue
Block a user