aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity
diff options
context:
space:
mode:
Diffstat (limited to 'test/libsolidity')
-rw-r--r--test/libsolidity/syntaxTests/viewPure/view_pure_abi_encode.sol8
-rw-r--r--test/libsolidity/syntaxTests/viewPure/view_pure_abi_encode_arguments.sol36
2 files changed, 44 insertions, 0 deletions
diff --git a/test/libsolidity/syntaxTests/viewPure/view_pure_abi_encode.sol b/test/libsolidity/syntaxTests/viewPure/view_pure_abi_encode.sol
new file mode 100644
index 00000000..ca7db42e
--- /dev/null
+++ b/test/libsolidity/syntaxTests/viewPure/view_pure_abi_encode.sol
@@ -0,0 +1,8 @@
+contract C {
+ function f() pure public returns (bytes r) {
+ r = abi.encode(1, 2);
+ r = abi.encodePacked(f());
+ r = abi.encodeWithSelector(0x12345678, 1);
+ r = abi.encodeWithSignature("f(uint256)", 4);
+ }
+}
diff --git a/test/libsolidity/syntaxTests/viewPure/view_pure_abi_encode_arguments.sol b/test/libsolidity/syntaxTests/viewPure/view_pure_abi_encode_arguments.sol
new file mode 100644
index 00000000..547362c3
--- /dev/null
+++ b/test/libsolidity/syntaxTests/viewPure/view_pure_abi_encode_arguments.sol
@@ -0,0 +1,36 @@
+contract C {
+ uint x;
+ function gView() public view returns (uint) { return x; }
+ function gNonPayable() public returns (uint) { x = 4; return 0; }
+
+ function f1() view public returns (bytes) {
+ return abi.encode(gView());
+ }
+ function f2() view public returns (bytes) {
+ return abi.encodePacked(gView());
+ }
+ function f3() view public returns (bytes) {
+ return abi.encodeWithSelector(0x12345678, gView());
+ }
+ function f4() view public returns (bytes) {
+ return abi.encodeWithSignature("f(uint256)", gView());
+ }
+ function g1() public returns (bytes) {
+ return abi.encode(gNonPayable());
+ }
+ function g2() public returns (bytes) {
+ return abi.encodePacked(gNonPayable());
+ }
+ function g3() public returns (bytes) {
+ return abi.encodeWithSelector(0x12345678, gNonPayable());
+ }
+ function g4() public returns (bytes) {
+ return abi.encodeWithSignature("f(uint256)", gNonPayable());
+ }
+ // This will generate the only warning.
+ function check() public returns (bytes) {
+ return abi.encode(2);
+ }
+}
+// ----
+// Warning: (1044-1121): Function state mutability can be restricted to pure