Browse Source

These new builtins also read from state

Signed-off-by: Sean Young <sean@mess.org>
Sean Young 5 years ago
parent
commit
c60d83b465
1 changed files with 13 additions and 0 deletions
  1. 13 0
      src/sema/mutability.rs

+ 13 - 0
src/sema/mutability.rs

@@ -203,6 +203,19 @@ fn read_expression(expr: &Expression, state: &mut StateCheck) -> bool {
         }
         }
         Expression::Balance(loc, _, _) | Expression::GetAddress(loc, _) => state.read(loc),
         Expression::Balance(loc, _, _) | Expression::GetAddress(loc, _) => state.read(loc),
 
 
+        Expression::Builtin(loc, _, Builtin::BlockNumber, _)
+        | Expression::Builtin(loc, _, Builtin::Timestamp, _)
+        | Expression::Builtin(loc, _, Builtin::BlockCoinbase, _)
+        | Expression::Builtin(loc, _, Builtin::BlockDifficulty, _)
+        | Expression::Builtin(loc, _, Builtin::BlockHash, _)
+        | Expression::Builtin(loc, _, Builtin::Sender, _)
+        | Expression::Builtin(loc, _, Builtin::Origin, _)
+        | Expression::Builtin(loc, _, Builtin::Gasleft, _)
+        | Expression::Builtin(loc, _, Builtin::Gasprice, _)
+        | Expression::Builtin(loc, _, Builtin::GasLimit, _)
+        | Expression::Builtin(loc, _, Builtin::TombstoneDeposit, _)
+        | Expression::Builtin(loc, _, Builtin::MinimumBalance, _)
+        | Expression::Builtin(loc, _, Builtin::Random, _) => state.read(loc),
         Expression::Builtin(loc, _, Builtin::PayableSend, _)
         Expression::Builtin(loc, _, Builtin::PayableSend, _)
         | Expression::Builtin(loc, _, Builtin::PayableTransfer, _)
         | Expression::Builtin(loc, _, Builtin::PayableTransfer, _)
         | Expression::Builtin(loc, _, Builtin::ArrayPush, _)
         | Expression::Builtin(loc, _, Builtin::ArrayPush, _)