Skip to content

Commit ae6d1e1

Browse files
authored
Merge pull request #803 from zemse/mapping-named-parameters
Add support for named parameters in mappings
2 parents a8cf709 + 7368dbf commit ae6d1e1

File tree

5 files changed

+26
-12
lines changed

5 files changed

+26
-12
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@
102102
"webpack-cli": "^5.0.1"
103103
},
104104
"dependencies": {
105-
"@solidity-parser/parser": "^0.14.5",
105+
"@solidity-parser/parser": "^0.15.0",
106106
"semver": "^7.3.8",
107107
"solidity-comments-extractor": "^0.0.7"
108108
},

src/nodes/Mapping.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11
const Mapping = {
2-
print: ({ path, print }) => [
3-
'mapping(',
4-
path.call(print, 'keyType'),
5-
' => ',
6-
path.call(print, 'valueType'),
7-
')'
8-
]
2+
print: ({ path, print }) => {
3+
const keyType = path.call(print, 'keyType');
4+
const keyName = path.call(print, 'keyName');
5+
const valueType = path.call(print, 'valueType');
6+
const valueName = path.call(print, 'valueName');
7+
return [
8+
'mapping(',
9+
keyType,
10+
keyName ? ` ${keyName}` : '',
11+
' => ',
12+
valueType,
13+
valueName ? ` ${valueName}` : '',
14+
')'
15+
];
16+
}
917
};
1018

1119
module.exports = Mapping;

tests/format/AllSolidityFeatures/AllSolidityFeatures.sol

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ contract c {
8888
function setData(uint pos, uint value) internal { data[pos] = value; }
8989
function getData(uint pos) internal { return data[pos]; }
9090
mapping(uint => uint) data;
91+
mapping(uint id => uint ) data;
92+
mapping(address owner => mapping(address spender => uint amount)) allowances;
9193
}
9294

9395
contract Sharer {

tests/format/AllSolidityFeatures/__snapshots__/jsfmt.spec.js.snap

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ contract c {
9696
function setData(uint pos, uint value) internal { data[pos] = value; }
9797
function getData(uint pos) internal { return data[pos]; }
9898
mapping(uint => uint) data;
99+
mapping(uint id => uint ) data;
100+
mapping(address owner => mapping(address spender => uint amount)) allowances;
99101
}
100102
101103
contract Sharer {
@@ -651,6 +653,8 @@ contract c {
651653
}
652654
653655
mapping(uint => uint) data;
656+
mapping(uint id => uint) data;
657+
mapping(address owner => mapping(address spender => uint amount)) allowances;
654658
}
655659
656660
contract Sharer {

0 commit comments

Comments
 (0)