From de79a1d214ee5ff301282273a06cc662393543d0 Mon Sep 17 00:00:00 2001 From: Armano Date: Fri, 25 Jan 2019 19:39:24 +0100 Subject: [PATCH 1/2] fix(ts-estree): expand optional property to include question token --- packages/typescript-estree/src/convert.ts | 8 ++++++++ .../tests/ast-alignment/fixtures-to-test.ts | 4 ---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/typescript-estree/src/convert.ts b/packages/typescript-estree/src/convert.ts index 64120d6a8d85..ff365b187c7e 100644 --- a/packages/typescript-estree/src/convert.ts +++ b/packages/typescript-estree/src/convert.ts @@ -1315,6 +1315,14 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { } if (node.questionToken) { + if (node.questionToken.end > parameter.range[1]) { + parameter.range[1] = node.questionToken.end; + parameter.loc = getLocFor( + parameter.range[0], + parameter.range[1], + ast + ); + } parameter.optional = true; } diff --git a/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts b/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts index 522cc53a3351..b44faf0feb64 100644 --- a/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts +++ b/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts @@ -323,10 +323,6 @@ tester.addFixturePatternConfig('typescript/basics', { * TODO: Investigate in more depth, potentially split up different parts of the interface */ 'interface-with-all-property-types', // babel parse errors - /** - * there is difference in range between babel and ts-estree - */ - 'interface-with-optional-properties', /** * Babel parses it as TSQualifiedName * ts parses it as MemberExpression From 25cd338f9d4f6723a22031652db6387767c59af5 Mon Sep 17 00:00:00 2001 From: Armano Date: Fri, 25 Jan 2019 20:02:30 +0100 Subject: [PATCH 2/2] test(ts-estree): update snapshots --- .../tests/lib/__snapshots__/typescript.ts.snap | 12 ++++++------ .../tests/lib/__snapshots__/typescript.ts.snap | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/parser/tests/lib/__snapshots__/typescript.ts.snap b/packages/parser/tests/lib/__snapshots__/typescript.ts.snap index e2dfa3efa430..08e944aecc31 100644 --- a/packages/parser/tests/lib/__snapshots__/typescript.ts.snap +++ b/packages/parser/tests/lib/__snapshots__/typescript.ts.snap @@ -48454,7 +48454,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 12, }, "start": Object { @@ -48466,7 +48466,7 @@ Object { "optional": true, "range": Array [ 253, - 254, + 255, ], "type": "Identifier", }, @@ -48544,7 +48544,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, + "column": 17, "line": 13, }, "start": Object { @@ -48556,7 +48556,7 @@ Object { "optional": true, "range": Array [ 281, - 282, + 283, ], "type": "Identifier", }, @@ -53553,7 +53553,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 31, + "column": 32, "line": 4, }, "start": Object { @@ -53565,7 +53565,7 @@ Object { "optional": true, "range": Array [ 73, - 76, + 77, ], "type": "Identifier", }, diff --git a/packages/typescript-estree/tests/lib/__snapshots__/typescript.ts.snap b/packages/typescript-estree/tests/lib/__snapshots__/typescript.ts.snap index b481510bdae7..c5085cf91009 100644 --- a/packages/typescript-estree/tests/lib/__snapshots__/typescript.ts.snap +++ b/packages/typescript-estree/tests/lib/__snapshots__/typescript.ts.snap @@ -48344,7 +48344,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 12, }, "start": Object { @@ -48356,7 +48356,7 @@ Object { "optional": true, "range": Array [ 253, - 254, + 255, ], "type": "Identifier", }, @@ -48434,7 +48434,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, + "column": 17, "line": 13, }, "start": Object { @@ -48446,7 +48446,7 @@ Object { "optional": true, "range": Array [ 281, - 282, + 283, ], "type": "Identifier", }, @@ -53414,7 +53414,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 31, + "column": 32, "line": 4, }, "start": Object { @@ -53426,7 +53426,7 @@ Object { "optional": true, "range": Array [ 73, - 76, + 77, ], "type": "Identifier", },