mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Force condition to be bool in iulia mode.
This commit is contained in:
parent
9232cd2621
commit
1d91b65b72
@ -252,7 +252,7 @@ We will use a destructuring notation for the AST nodes.
|
||||
G, L, continue
|
||||
E(G, L, <if condition body>: If) =
|
||||
let G0, L0, v = E(G, L, condition)
|
||||
if v is true or non-zero:
|
||||
if v is true:
|
||||
E(G0, L0, body)
|
||||
else:
|
||||
G0, L0, regular
|
||||
|
@ -271,15 +271,17 @@ BOOST_AUTO_TEST_CASE(multiple_assignment)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(if_statement)
|
||||
{
|
||||
BOOST_CHECK(successParse("{ if 42:u256 {} }"));
|
||||
BOOST_CHECK(successParse("{ if 42:u256 { let x:u256 := 3:u256 } }"));
|
||||
BOOST_CHECK(successParse("{ function f() -> x:u256 {} if f() { let b:u256 := f() } }"));
|
||||
BOOST_CHECK(successParse("{ if true:bool {} }"));
|
||||
BOOST_CHECK(successParse("{ if false:bool { let x:u256 := 3:u256 } }"));
|
||||
BOOST_CHECK(successParse("{ function f() -> x:bool {} if f() { let b:bool := f() } }"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(if_statement_invalid)
|
||||
{
|
||||
CHECK_ERROR("{ if let x:u256 {} }", ParserError, "Literal or identifier expected.");
|
||||
CHECK_ERROR("{ if 32:u256 let x:u256 := 3:u256 }", ParserError, "Expected token LBrace");
|
||||
CHECK_ERROR("{ if true:bool let x:u256 := 3:u256 }", ParserError, "Expected token LBrace");
|
||||
// TODO change this to an error once we check types.
|
||||
BOOST_CHECK(successParse("{ if 42:u256 { } }"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
Loading…
Reference in New Issue
Block a user