From 7bea970537b723cd436716c71402e9899ec419c0 Mon Sep 17 00:00:00 2001 From: Matheus Aguiar Date: Mon, 8 Apr 2024 01:08:20 -0300 Subject: [PATCH] Add tests --- ...n_specifier_test_external_transient_storage.sol | 5 +++++ .../dataLocations/transient_local_variable.sol | 0 .../dataLocations/transient_state_variable.sol | 8 ++++++++ .../transient_as_identifier.sol | 10 ++++++++++ .../transient_as_identifier_and_data_location.sol | 14 ++++++++++++++ 5 files changed, 37 insertions(+) create mode 100644 test/libsolidity/syntaxTests/dataLocations/externalFunction/function_argument_location_specifier_test_external_transient_storage.sol create mode 100644 test/libsolidity/syntaxTests/dataLocations/transient_local_variable.sol create mode 100644 test/libsolidity/syntaxTests/dataLocations/transient_state_variable.sol create mode 100644 test/libsolidity/syntaxTests/variableDeclaration/transient_as_identifier.sol create mode 100644 test/libsolidity/syntaxTests/variableDeclaration/transient_as_identifier_and_data_location.sol diff --git a/test/libsolidity/syntaxTests/dataLocations/externalFunction/function_argument_location_specifier_test_external_transient_storage.sol b/test/libsolidity/syntaxTests/dataLocations/externalFunction/function_argument_location_specifier_test_external_transient_storage.sol new file mode 100644 index 000000000000..2461e5b1adee --- /dev/null +++ b/test/libsolidity/syntaxTests/dataLocations/externalFunction/function_argument_location_specifier_test_external_transient_storage.sol @@ -0,0 +1,5 @@ +contract test { + function f(bytes transient) external; +} +// ---- +// TypeError 6651: (28-43): Data location must be "memory" or "calldata" for parameter in external function, but none was given. diff --git a/test/libsolidity/syntaxTests/dataLocations/transient_local_variable.sol b/test/libsolidity/syntaxTests/dataLocations/transient_local_variable.sol new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/test/libsolidity/syntaxTests/dataLocations/transient_state_variable.sol b/test/libsolidity/syntaxTests/dataLocations/transient_state_variable.sol new file mode 100644 index 000000000000..be520d1f54a6 --- /dev/null +++ b/test/libsolidity/syntaxTests/dataLocations/transient_state_variable.sol @@ -0,0 +1,8 @@ +contract C { + uint transient x; + function f() public view returns(uint) { + return x; + } +} +// ---- +// TypeError 6651: (14-30): Data location can only be specified for array, struct or mapping types, but "transient" was given. diff --git a/test/libsolidity/syntaxTests/variableDeclaration/transient_as_identifier.sol b/test/libsolidity/syntaxTests/variableDeclaration/transient_as_identifier.sol new file mode 100644 index 000000000000..a3c4e7a7aee0 --- /dev/null +++ b/test/libsolidity/syntaxTests/variableDeclaration/transient_as_identifier.sol @@ -0,0 +1,10 @@ +contract C { + function transient() public pure { } +} +contract D { + function f() public pure returns (uint) { + uint transient = 1; + return transient; + } +} +// ---- diff --git a/test/libsolidity/syntaxTests/variableDeclaration/transient_as_identifier_and_data_location.sol b/test/libsolidity/syntaxTests/variableDeclaration/transient_as_identifier_and_data_location.sol new file mode 100644 index 000000000000..32facadef55a --- /dev/null +++ b/test/libsolidity/syntaxTests/variableDeclaration/transient_as_identifier_and_data_location.sol @@ -0,0 +1,14 @@ +contract C { + function f() public pure returns (uint) { + uint transient = 1; + uint transient x = transient + 2; + return x; + } + function g() public pure returns (uint) { + uint transient transient = 9; + return transient; + } +} +// ---- +// TypeError 6651: (80-96): Data location can only be specified for array, struct or mapping types, but "transient" was given. +// TypeError 6651: (174-198): Data location can only be specified for array, struct or mapping types, but "transient" was given.