aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/parsing/Parser.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-05-30 20:42:50 +0800
committerGitHub <noreply@github.com>2018-05-30 20:42:50 +0800
commit41965ca2626e1e09de7fb1eb40ae4751b5e289fa (patch)
tree1b6938ccea869ec1c7d081023a5b1a356196af01 /libsolidity/parsing/Parser.cpp
parent3f3d6df2a5e3a57420d6669be416553e3240e8a7 (diff)
parentb7cafcbdf95c807f46fc07f4788d82981b7112b4 (diff)
downloaddexon-solidity-41965ca2626e1e09de7fb1eb40ae4751b5e289fa.tar
dexon-solidity-41965ca2626e1e09de7fb1eb40ae4751b5e289fa.tar.gz
dexon-solidity-41965ca2626e1e09de7fb1eb40ae4751b5e289fa.tar.bz2
dexon-solidity-41965ca2626e1e09de7fb1eb40ae4751b5e289fa.tar.lz
dexon-solidity-41965ca2626e1e09de7fb1eb40ae4751b5e289fa.tar.xz
dexon-solidity-41965ca2626e1e09de7fb1eb40ae4751b5e289fa.tar.zst
dexon-solidity-41965ca2626e1e09de7fb1eb40ae4751b5e289fa.zip
Merge pull request #4176 from sifmelcara/add/calldata-keyword
Add a new keyword, "calldata", to allow explicitly specify data location in external function's argument list
Diffstat (limited to 'libsolidity/parsing/Parser.cpp')
-rw-r--r--libsolidity/parsing/Parser.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/libsolidity/parsing/Parser.cpp b/libsolidity/parsing/Parser.cpp
index e2e1eebc..aec9ebbb 100644
--- a/libsolidity/parsing/Parser.cpp
+++ b/libsolidity/parsing/Parser.cpp
@@ -592,11 +592,22 @@ ASTPointer<VariableDeclaration> Parser::parseVariableDeclaration(
else if (!type)
parserError(string("Location specifier needs explicit type name."));
else
- location = (
- token == Token::Memory ?
- VariableDeclaration::Location::Memory :
- VariableDeclaration::Location::Storage
- );
+ {
+ switch (token)
+ {
+ case Token::Storage:
+ location = VariableDeclaration::Location::Storage;
+ break;
+ case Token::Memory:
+ location = VariableDeclaration::Location::Memory;
+ break;
+ case Token::CallData:
+ location = VariableDeclaration::Location::CallData;
+ break;
+ default:
+ solAssert(false, "Unknown data location.");
+ }
+ }
}
else
break;