Skip to content

Commit 106728f

Browse files
authored
Merge pull request #220 from prettier-solidity/solidity-0-6
Add support for solidity 0.6.x
2 parents 4f8d21d + b1f3c77 commit 106728f

File tree

21 files changed

+451
-15
lines changed

21 files changed

+451
-15
lines changed

__tests__/nodes/__snapshots__/index.test.js.snap

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,21 @@ Array [
88
"AssemblyCall",
99
"AssemblyCase",
1010
"AssemblyFor",
11+
"AssemblyFunctionDefinition",
1112
"AssemblyIf",
1213
"AssemblyLocalDefinition",
1314
"AssemblySwitch",
1415
"BinaryOperation",
1516
"Block",
1617
"BooleanLiteral",
1718
"BreakStatement",
19+
"CatchClause",
1820
"Conditional",
1921
"ContinueStatement",
2022
"ContractDefinition",
2123
"DecimalNumber",
24+
"DoWhileStatement",
2225
"ElementaryTypeName",
23-
"ElementaryTypeNameExpression",
2426
"EmitStatement",
2527
"EnumDefinition",
2628
"EnumValue",
@@ -52,7 +54,9 @@ Array [
5254
"StringLiteral",
5355
"StructDefinition",
5456
"ThrowStatement",
57+
"TryStatement",
5558
"TupleExpression",
59+
"TypeNameExpression",
5660
"UnaryOperation",
5761
"UserDefinedTypeName",
5862
"UsingForDeclaration",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
"extract-comments": "^1.1.0",
8080
"prettier": "^1.15.3",
8181
"semver": "^6.3.0",
82-
"solidity-parser-antlr": "^0.4.11",
82+
"solidity-parser-diligence": "^0.4.18",
8383
"string-width": "^4.1.0"
8484
}
8585
}

scripts/__snapshots__/makeData.test.js.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ exports[`makeData to match snapshot for nodes 1`] = `
1313
1414
/* eslint-disable global-require */
1515
16-
module.exports = {ArrayTypeName:require('./ArrayTypeName.js'),AssemblyAssignment:require('./AssemblyAssignment.js'),AssemblyBlock:require('./AssemblyBlock.js'),AssemblyCall:require('./AssemblyCall.js'),AssemblyCase:require('./AssemblyCase.js'),AssemblyFor:require('./AssemblyFor.js'),AssemblyIf:require('./AssemblyIf.js'),AssemblyLocalDefinition:require('./AssemblyLocalDefinition.js'),AssemblySwitch:require('./AssemblySwitch.js'),BinaryOperation:require('./BinaryOperation.js'),Block:require('./Block.js'),BooleanLiteral:require('./BooleanLiteral.js'),BreakStatement:require('./BreakStatement.js'),Conditional:require('./Conditional.js'),ContinueStatement:require('./ContinueStatement.js'),ContractDefinition:require('./ContractDefinition.js'),DecimalNumber:require('./DecimalNumber.js'),ElementaryTypeName:require('./ElementaryTypeName.js'),ElementaryTypeNameExpression:require('./ElementaryTypeNameExpression.js'),EmitStatement:require('./EmitStatement.js'),EnumDefinition:require('./EnumDefinition.js'),EnumValue:require('./EnumValue.js'),EventDefinition:require('./EventDefinition.js'),ExpressionStatement:require('./ExpressionStatement.js'),ForStatement:require('./ForStatement.js'),FunctionCall:require('./FunctionCall.js'),FunctionDefinition:require('./FunctionDefinition.js'),FunctionTypeName:require('./FunctionTypeName.js'),HexLiteral:require('./HexLiteral.js'),HexNumber:require('./HexNumber.js'),Identifier:require('./Identifier.js'),IfStatement:require('./IfStatement.js'),ImportDirective:require('./ImportDirective.js'),IndexAccess:require('./IndexAccess.js'),InheritanceSpecifier:require('./InheritanceSpecifier.js'),InlineAssemblyStatement:require('./InlineAssemblyStatement.js'),LabelDefinition:require('./LabelDefinition.js'),Mapping:require('./Mapping.js'),MemberAccess:require('./MemberAccess.js'),ModifierDefinition:require('./ModifierDefinition.js'),ModifierInvocation:require('./ModifierInvocation.js'),NewExpression:require('./NewExpression.js'),NumberLiteral:require('./NumberLiteral.js'),PragmaDirective:require('./PragmaDirective.js'),ReturnStatement:require('./ReturnStatement.js'),SourceUnit:require('./SourceUnit.js'),StateVariableDeclaration:require('./StateVariableDeclaration.js'),StringLiteral:require('./StringLiteral.js'),StructDefinition:require('./StructDefinition.js'),ThrowStatement:require('./ThrowStatement.js'),TupleExpression:require('./TupleExpression.js'),UnaryOperation:require('./UnaryOperation.js'),UserDefinedTypeName:require('./UserDefinedTypeName.js'),UsingForDeclaration:require('./UsingForDeclaration.js'),VariableDeclaration:require('./VariableDeclaration.js'),VariableDeclarationStatement:require('./VariableDeclarationStatement.js'),WhileStatement:require('./WhileStatement.js')};"
16+
module.exports = {ArrayTypeName:require('./ArrayTypeName.js'),AssemblyAssignment:require('./AssemblyAssignment.js'),AssemblyBlock:require('./AssemblyBlock.js'),AssemblyCall:require('./AssemblyCall.js'),AssemblyCase:require('./AssemblyCase.js'),AssemblyFor:require('./AssemblyFor.js'),AssemblyFunctionDefinition:require('./AssemblyFunctionDefinition.js'),AssemblyIf:require('./AssemblyIf.js'),AssemblyLocalDefinition:require('./AssemblyLocalDefinition.js'),AssemblySwitch:require('./AssemblySwitch.js'),BinaryOperation:require('./BinaryOperation.js'),Block:require('./Block.js'),BooleanLiteral:require('./BooleanLiteral.js'),BreakStatement:require('./BreakStatement.js'),CatchClause:require('./CatchClause.js'),Conditional:require('./Conditional.js'),ContinueStatement:require('./ContinueStatement.js'),ContractDefinition:require('./ContractDefinition.js'),DecimalNumber:require('./DecimalNumber.js'),DoWhileStatement:require('./DoWhileStatement.js'),ElementaryTypeName:require('./ElementaryTypeName.js'),EmitStatement:require('./EmitStatement.js'),EnumDefinition:require('./EnumDefinition.js'),EnumValue:require('./EnumValue.js'),EventDefinition:require('./EventDefinition.js'),ExpressionStatement:require('./ExpressionStatement.js'),ForStatement:require('./ForStatement.js'),FunctionCall:require('./FunctionCall.js'),FunctionDefinition:require('./FunctionDefinition.js'),FunctionTypeName:require('./FunctionTypeName.js'),HexLiteral:require('./HexLiteral.js'),HexNumber:require('./HexNumber.js'),Identifier:require('./Identifier.js'),IfStatement:require('./IfStatement.js'),ImportDirective:require('./ImportDirective.js'),IndexAccess:require('./IndexAccess.js'),InheritanceSpecifier:require('./InheritanceSpecifier.js'),InlineAssemblyStatement:require('./InlineAssemblyStatement.js'),LabelDefinition:require('./LabelDefinition.js'),Mapping:require('./Mapping.js'),MemberAccess:require('./MemberAccess.js'),ModifierDefinition:require('./ModifierDefinition.js'),ModifierInvocation:require('./ModifierInvocation.js'),NewExpression:require('./NewExpression.js'),NumberLiteral:require('./NumberLiteral.js'),PragmaDirective:require('./PragmaDirective.js'),ReturnStatement:require('./ReturnStatement.js'),SourceUnit:require('./SourceUnit.js'),StateVariableDeclaration:require('./StateVariableDeclaration.js'),StringLiteral:require('./StringLiteral.js'),StructDefinition:require('./StructDefinition.js'),ThrowStatement:require('./ThrowStatement.js'),TryStatement:require('./TryStatement.js'),TupleExpression:require('./TupleExpression.js'),TypeNameExpression:require('./TypeNameExpression.js'),UnaryOperation:require('./UnaryOperation.js'),UserDefinedTypeName:require('./UserDefinedTypeName.js'),UsingForDeclaration:require('./UsingForDeclaration.js'),VariableDeclaration:require('./VariableDeclaration.js'),VariableDeclarationStatement:require('./VariableDeclarationStatement.js'),WhileStatement:require('./WhileStatement.js')};"
1717
`;

src/binary-operator-printers/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* This file was automatically generated on 1565022453.711 */
1+
/* This file was automatically generated on 1581775642.955 */
22

33
/* eslint-disable global-require */
44

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
const {
2+
doc: {
3+
builders: { concat, group, indent, join, line, softline }
4+
}
5+
} = require('prettier/standalone');
6+
7+
const AssemblyFunctionDefinition = {
8+
print: ({ node, path, print }) =>
9+
concat([
10+
'function ',
11+
node.name,
12+
'(',
13+
group(
14+
concat([
15+
indent(
16+
concat([
17+
softline,
18+
join(concat([',', line]), path.map(print, 'arguments'))
19+
])
20+
),
21+
softline
22+
])
23+
),
24+
')',
25+
' -> ',
26+
join(', ', path.map(print, 'returnArguments')),
27+
' ',
28+
path.call(print, 'body')
29+
])
30+
};
31+
32+
module.exports = AssemblyFunctionDefinition;

src/nodes/CatchClause.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
const {
2+
doc: {
3+
builders: { concat, group, join, indent, line, softline }
4+
}
5+
} = require('prettier/standalone');
6+
7+
const CatchClause = {
8+
print: ({ node, path, print }) => {
9+
return group(
10+
concat([
11+
'catch ',
12+
node.isReasonStringType ? 'Error' : '',
13+
'(',
14+
group(
15+
concat([
16+
indent(
17+
concat([
18+
softline,
19+
join(concat([',', line]), path.map(print, 'parameters'))
20+
])
21+
),
22+
softline
23+
])
24+
),
25+
') ',
26+
path.call(print, 'body')
27+
])
28+
);
29+
}
30+
};
31+
32+
module.exports = CatchClause;

src/nodes/DoWhileStatement.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
const {
2+
doc: {
3+
builders: { concat, group, indent, line, softline }
4+
}
5+
} = require('prettier/standalone');
6+
7+
const printBody = (node, path, print) => {
8+
if (node.body.type === 'Block') {
9+
return concat([' ', path.call(print, 'body')]);
10+
}
11+
12+
return group(indent(concat([line, path.call(print, 'body')])));
13+
};
14+
15+
const DoWhileStatement = {
16+
print: ({ node, path, print }) =>
17+
concat([
18+
'do',
19+
printBody(node, path, print),
20+
' while (',
21+
group(
22+
concat([
23+
indent(concat([softline, path.call(print, 'condition')])),
24+
softline
25+
])
26+
),
27+
');'
28+
])
29+
};
30+
31+
module.exports = DoWhileStatement;

src/nodes/ElementaryTypeNameExpression.js

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/nodes/TryStatement.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
const {
2+
doc: {
3+
builders: { concat, group, join }
4+
}
5+
} = require('prettier/standalone');
6+
7+
const TryStatement = {
8+
print: ({ node, path, print }) =>
9+
group(
10+
concat([
11+
'try ',
12+
path.call(print, 'expression'),
13+
node.returnParameters
14+
? concat([
15+
' returns (',
16+
join(' ', path.map(print, 'returnParameters')),
17+
')'
18+
])
19+
: '',
20+
' ',
21+
path.call(print, 'body'),
22+
' ',
23+
join(' ', path.map(print, 'catchClauses'))
24+
])
25+
)
26+
};
27+
28+
module.exports = TryStatement;

src/nodes/TypeNameExpression.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const TypeNameExpression = {
2+
print: ({ path, print }) => path.call(print, 'typeName')
3+
};
4+
5+
module.exports = TypeNameExpression;

0 commit comments

Comments
 (0)