Skip to content

Commit

Permalink
Add tests for parens around args to arrow funcs
Browse files Browse the repository at this point in the history
Remove the lookahead check and just set that a potential arrow function
is there.
  • Loading branch information
mAAdhaTTah committed Feb 24, 2019
1 parent f17e743 commit 2857ab2
Show file tree
Hide file tree
Showing 7 changed files with 733 additions and 4 deletions.
5 changes: 1 addition & 4 deletions packages/babel-parser/src/parser/expression.js
Expand Up @@ -2312,10 +2312,7 @@ export default class ExpressionParser extends LValParser {
const startLoc = this.state.startLoc;

const node = this.startNode(startPos, startLoc);

if (this.lookahead().type === tt.arrow) {
this.state.potentialArrowAt = this.state.start;
}
this.state.potentialArrowAt = this.state.start;

node.body = this.parseExprOp(
this.parseMaybeUnary(),
Expand Down
@@ -0,0 +1,3 @@
(x) => x
|> (y) => y + 1
|> (z) => z * 2
@@ -0,0 +1,3 @@
{
"plugins": [["pipelineOperator", { "proposal": "fsharp" }]]
}
@@ -0,0 +1,361 @@
{
"type": "File",
"start": 0,
"end": 44,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 17
}
},
"program": {
"type": "Program",
"start": 0,
"end": 44,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 17
}
},
"sourceType": "script",
"interpreter": null,
"body": [
{
"type": "ExpressionStatement",
"start": 0,
"end": 44,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 17
}
},
"expression": {
"type": "ArrowFunctionExpression",
"start": 0,
"end": 44,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 17
}
},
"id": null,
"generator": false,
"async": false,
"params": [
{
"type": "Identifier",
"start": 1,
"end": 2,
"loc": {
"start": {
"line": 1,
"column": 1
},
"end": {
"line": 1,
"column": 2
},
"identifierName": "x"
},
"name": "x"
}
],
"body": {
"type": "BinaryExpression",
"start": 7,
"end": 44,
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 3,
"column": 17
}
},
"left": {
"type": "PipelineHead",
"start": 11,
"end": 8,
"loc": {
"start": {
"line": 2,
"column": 2
},
"end": {
"line": 1,
"column": 8
}
},
"head": {
"type": "Identifier",
"start": 7,
"end": 8,
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 8
},
"identifierName": "x"
},
"name": "x"
}
},
"operator": "|>",
"right": {
"type": "PipelineBody",
"start": 14,
"end": 44,
"loc": {
"start": {
"line": 2,
"column": 5
},
"end": {
"line": 3,
"column": 17
}
},
"body": {
"type": "ArrowFunctionExpression",
"start": 14,
"end": 44,
"loc": {
"start": {
"line": 2,
"column": 5
},
"end": {
"line": 3,
"column": 17
}
},
"id": null,
"generator": false,
"async": false,
"params": [
{
"type": "Identifier",
"start": 15,
"end": 16,
"loc": {
"start": {
"line": 2,
"column": 6
},
"end": {
"line": 2,
"column": 7
},
"identifierName": "y"
},
"name": "y"
}
],
"body": {
"type": "BinaryExpression",
"start": 21,
"end": 44,
"loc": {
"start": {
"line": 2,
"column": 12
},
"end": {
"line": 3,
"column": 17
}
},
"left": {
"type": "BinaryExpression",
"start": 21,
"end": 26,
"loc": {
"start": {
"line": 2,
"column": 12
},
"end": {
"line": 2,
"column": 17
}
},
"left": {
"type": "Identifier",
"start": 21,
"end": 22,
"loc": {
"start": {
"line": 2,
"column": 12
},
"end": {
"line": 2,
"column": 13
},
"identifierName": "y"
},
"name": "y"
},
"operator": "+",
"right": {
"type": "NumericLiteral",
"start": 25,
"end": 26,
"loc": {
"start": {
"line": 2,
"column": 16
},
"end": {
"line": 2,
"column": 17
}
},
"extra": {
"rawValue": 1,
"raw": "1"
},
"value": 1
}
},
"operator": "|>",
"right": {
"type": "PipelineBody",
"start": 32,
"end": 44,
"loc": {
"start": {
"line": 3,
"column": 5
},
"end": {
"line": 3,
"column": 17
}
},
"body": {
"type": "ArrowFunctionExpression",
"start": 32,
"end": 44,
"loc": {
"start": {
"line": 3,
"column": 5
},
"end": {
"line": 3,
"column": 17
}
},
"id": null,
"generator": false,
"async": false,
"params": [
{
"type": "Identifier",
"start": 33,
"end": 34,
"loc": {
"start": {
"line": 3,
"column": 6
},
"end": {
"line": 3,
"column": 7
},
"identifierName": "z"
},
"name": "z"
}
],
"body": {
"type": "BinaryExpression",
"start": 39,
"end": 44,
"loc": {
"start": {
"line": 3,
"column": 12
},
"end": {
"line": 3,
"column": 17
}
},
"left": {
"type": "Identifier",
"start": 39,
"end": 40,
"loc": {
"start": {
"line": 3,
"column": 12
},
"end": {
"line": 3,
"column": 13
},
"identifierName": "z"
},
"name": "z"
},
"operator": "*",
"right": {
"type": "NumericLiteral",
"start": 43,
"end": 44,
"loc": {
"start": {
"line": 3,
"column": 16
},
"end": {
"line": 3,
"column": 17
}
},
"extra": {
"rawValue": 2,
"raw": "2"
},
"value": 2
}
}
}
}
}
}
}
}
}
}
],
"directives": []
}
}
@@ -0,0 +1 @@
(x) => x |> (y) => y + 1 |> (z) => z * 2
@@ -0,0 +1,3 @@
{
"plugins": [["pipelineOperator", { "proposal": "fsharp" }]]
}

0 comments on commit 2857ab2

Please sign in to comment.