Tests for literal denominations with non-integer literals

This commit is contained in:
Kamil Śliwak 2023-04-07 14:48:13 +02:00
parent 8dd6f77692
commit 5687f6e934
4 changed files with 30 additions and 0 deletions

View File

@ -0,0 +1,15 @@
contract C {
uint public g = 1.5 gwei;
uint public e = 1.5 ether;
uint public m = 1.5 minutes;
uint public h = 1.5 hours;
uint public d = 1.5 days;
uint public w = 1.5 weeks;
}
// ----
// g() -> 1500000000
// e() -> 1500000000000000000
// m() -> 90
// h() -> 5400
// d() -> 129600
// w() -> 907200

View File

@ -0,0 +1,5 @@
contract C {
address a = 0x11111122222333334444455555666667777788888 wei;
}
// ----
// TypeError 5145: (26-73): Hexadecimal numbers cannot be used with unit denominations. You can use an expression of the form "0x1234 * 1 day" instead.

View File

@ -0,0 +1,5 @@
contract C {
bool constant x = true ether;
}
// ----
// ParserError 2314: (37-42): Expected ';' but got 'ether'

View File

@ -0,0 +1,5 @@
contract C {
string s = "abc" ether;
}
// ----
// ParserError 2314: (31-36): Expected ';' but got 'ether'