Merge pull request #9690 from ethereum/immutable-rhs-vardecl

Disallow assigning more than once to immutables during the variable declaration
This commit is contained in:
chriseth
2020-08-28 14:39:23 +02:00
committed by GitHub
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.