aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-06-29 18:27:29 +0800
committerGitHub <noreply@github.com>2018-06-29 18:27:29 +0800
commitd469df45d8bbdee1dc7ba480e10bf8665c30198b (patch)
tree11766d320be376ad451201b01cf26a01531c9228
parent2a9d54af587c300d9dc5984a796200795302137d (diff)
parent3cad417710bc95a66d801a432f33c3befee390c9 (diff)
downloaddexon-solidity-d469df45d8bbdee1dc7ba480e10bf8665c30198b.tar
dexon-solidity-d469df45d8bbdee1dc7ba480e10bf8665c30198b.tar.gz
dexon-solidity-d469df45d8bbdee1dc7ba480e10bf8665c30198b.tar.bz2
dexon-solidity-d469df45d8bbdee1dc7ba480e10bf8665c30198b.tar.lz
dexon-solidity-d469df45d8bbdee1dc7ba480e10bf8665c30198b.tar.xz
dexon-solidity-d469df45d8bbdee1dc7ba480e10bf8665c30198b.tar.zst
dexon-solidity-d469df45d8bbdee1dc7ba480e10bf8665c30198b.zip
Merge pull request #4352 from D-Nice/develop
Fixes storage ref var typo error from 'prefix' to 'suffix'
-rw-r--r--libsolidity/analysis/TypeChecker.cpp2
-rw-r--r--test/libsolidity/syntaxTests/inlineAssembly/storage_reference.sol11
-rw-r--r--test/libsolidity/syntaxTests/inlineAssembly/storage_reference_fine.sol11
3 files changed, 23 insertions, 1 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp
index 77e7cf67..b9e3f8d0 100644
--- a/libsolidity/analysis/TypeChecker.cpp
+++ b/libsolidity/analysis/TypeChecker.cpp
@@ -929,7 +929,7 @@ bool TypeChecker::visit(InlineAssembly const& _inlineAssembly)
}
else if (var->type()->dataStoredIn(DataLocation::Storage))
{
- m_errorReporter.typeError(_identifier.location, "You have to use the _slot or _offset prefix to access storage reference variables.");
+ m_errorReporter.typeError(_identifier.location, "You have to use the _slot or _offset suffix to access storage reference variables.");
return size_t(-1);
}
else if (var->type()->sizeOnStack() != 1)
diff --git a/test/libsolidity/syntaxTests/inlineAssembly/storage_reference.sol b/test/libsolidity/syntaxTests/inlineAssembly/storage_reference.sol
new file mode 100644
index 00000000..55c83674
--- /dev/null
+++ b/test/libsolidity/syntaxTests/inlineAssembly/storage_reference.sol
@@ -0,0 +1,11 @@
+contract C {
+ uint[] x;
+ function() public {
+ uint[] storage y = x;
+ assembly {
+ pop(y)
+ }
+ }
+}
+// ----
+// TypeError: (117-118): You have to use the _slot or _offset suffix to access storage reference variables.
diff --git a/test/libsolidity/syntaxTests/inlineAssembly/storage_reference_fine.sol b/test/libsolidity/syntaxTests/inlineAssembly/storage_reference_fine.sol
new file mode 100644
index 00000000..3ae24b34
--- /dev/null
+++ b/test/libsolidity/syntaxTests/inlineAssembly/storage_reference_fine.sol
@@ -0,0 +1,11 @@
+contract C {
+ uint[] x;
+ function() public {
+ uint[] storage y = x;
+ assembly {
+ pop(y_slot)
+ pop(y_offset)
+ }
+ }
+}
+// ----