Disallow assigning more than once to immutables during the vardecl

This commit is contained in:
Harikrishnan Mulackal
2020-08-28 13:42:54 +02:00
parent e872b1b51e
commit 7ff809dc78
4 changed files with 22 additions and 3 deletions
@@ -0,0 +1,10 @@
contract C {
uint immutable z = 2;
uint immutable x = z = y = 3;
uint immutable y = 5;
}
// ----
// TypeError 1581: (62-63): Immutable variables can only be initialized inline or assigned directly in the constructor.
// TypeError 1574: (62-63): Immutable state variable already initialized.
// TypeError 1581: (66-67): Immutable variables can only be initialized inline or assigned directly in the constructor.
// TypeError 1574: (66-67): Immutable state variable already initialized.
@@ -0,0 +1,6 @@
contract C {
int immutable x = x = 5;
}
// ----
// TypeError 1581: (35-36): Immutable variables can only be initialized inline or assigned directly in the constructor.
// TypeError 1574: (35-36): Immutable state variable already initialized.