From 9cb6988e9fe56599c684550fa8317a86e609445b Mon Sep 17 00:00:00 2001 From: Yoni Date: Fri, 21 Dec 2018 22:55:45 +0200 Subject: [PATCH 1/3] Fix prettier removing payable from address payable --- src/printer.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/printer.js b/src/printer.js index 87cda58a8..f0e1e7ec3 100644 --- a/src/printer.js +++ b/src/printer.js @@ -135,7 +135,12 @@ function genericPrint(path, options, print) { doc = path.call(print, 'typeName'); doc = join( ' ', - [doc, node.storageLocation, node.name].filter(element => element) + [ + doc, + node.storageLocation, + node.typeName.stateMutability, + node.name + ].filter(element => element) ); return doc; case 'ModifierInvocation': @@ -286,13 +291,14 @@ function genericPrint(path, options, print) { if (node.visibility === 'default') { return join( ' ', - [doc, constantKeyword, node.name].filter(element => element) + [doc, node.typeName.stateMutability, constantKeyword, node.name].filter(element => element) ); } return join( ' ', [ doc, + node.typeName.stateMutability, node.visibility, constantKeyword, node.storageLocation, From 78e469071f3e36f66a7f77f76862963b41215129 Mon Sep 17 00:00:00 2001 From: Yoni Date: Sat, 22 Dec 2018 21:18:45 +0200 Subject: [PATCH 2/3] Styling --- src/printer.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/printer.js b/src/printer.js index f0e1e7ec3..0ee5918fd 100644 --- a/src/printer.js +++ b/src/printer.js @@ -291,7 +291,12 @@ function genericPrint(path, options, print) { if (node.visibility === 'default') { return join( ' ', - [doc, node.typeName.stateMutability, constantKeyword, node.name].filter(element => element) + [ + doc, + node.typeName.stateMutability, + constantKeyword, + node.name + ].filter(element => element) ); } return join( From 62fde9e1f61f7ba4da1e54517fb58eb7c3abc650 Mon Sep 17 00:00:00 2001 From: fvictorio Date: Wed, 2 Jan 2019 11:41:41 -0300 Subject: [PATCH 3/3] Add tests for address payable syntax --- tests/AddressPayable/AddressPayable.sol | 8 +++++++ .../__snapshots__/jsfmt.spec.js.snap | 22 +++++++++++++++++++ tests/AddressPayable/jsfmt.spec.js | 1 + 3 files changed, 31 insertions(+) create mode 100644 tests/AddressPayable/AddressPayable.sol create mode 100644 tests/AddressPayable/__snapshots__/jsfmt.spec.js.snap create mode 100644 tests/AddressPayable/jsfmt.spec.js diff --git a/tests/AddressPayable/AddressPayable.sol b/tests/AddressPayable/AddressPayable.sol new file mode 100644 index 000000000..8b77a5cb9 --- /dev/null +++ b/tests/AddressPayable/AddressPayable.sol @@ -0,0 +1,8 @@ +pragma solidity ^0.5.2; + +contract AddressPayable { + function sendSomeEth(address payable to) public payable { + address payable target = to; + target.transfer(msg.value); + } +} diff --git a/tests/AddressPayable/__snapshots__/jsfmt.spec.js.snap b/tests/AddressPayable/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 000000000..8d071f3eb --- /dev/null +++ b/tests/AddressPayable/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,22 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AddressPayable.sol 1`] = ` +pragma solidity ^0.5.2; + +contract AddressPayable { + function sendSomeEth(address payable to) public payable { + address payable target = to; + target.transfer(msg.value); + } +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pragma solidity ^0.5.2; + +contract AddressPayable { + function sendSomeEth(address payable to) public payable { + address payable target = to; + target.transfer(msg.value); + } +} + +`; diff --git a/tests/AddressPayable/jsfmt.spec.js b/tests/AddressPayable/jsfmt.spec.js new file mode 100644 index 000000000..989047bcc --- /dev/null +++ b/tests/AddressPayable/jsfmt.spec.js @@ -0,0 +1 @@ +run_spec(__dirname);