From b9e735a199cfe24a75b057bd0062c80e4dc69f8b Mon Sep 17 00:00:00 2001 From: Dave Dunkin Date: Wed, 29 Nov 2017 22:41:30 -0700 Subject: [PATCH] Fix: Use TSAbstractFunctionExpression for abstract methods. Fixes crash in indent rule. Related to #253. --- lib/ast-node-types.js | 1 + lib/convert.js | 5 +++-- tests/lib/__snapshots__/typescript.js.snap | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/ast-node-types.js b/lib/ast-node-types.js index 373ba72..dfb6de2 100644 --- a/lib/ast-node-types.js +++ b/lib/ast-node-types.js @@ -102,6 +102,7 @@ module.exports = { * TS-prefixed nodes */ TSAbstractClassProperty: "TSAbstractClassProperty", + TSAbstractFunctionExpression: "TSAbstractFunctionExpression", TSAbstractKeyword: "TSAbstractKeyword", TSAbstractMethodDefinition: "TSAbstractMethodDefinition", TSAnyKeyword: "TSAnyKeyword", diff --git a/lib/convert.js b/lib/convert.js index 243cd65..da709f1 100644 --- a/lib/convert.js +++ b/lib/convert.js @@ -868,8 +868,9 @@ module.exports = function convert(config) { const methodLoc = ast.getLineAndCharacterOfPosition(openingParen.getStart()), nodeIsMethod = (node.kind === SyntaxKind.MethodDeclaration), + isMethodAbstract = nodeUtils.hasModifier(SyntaxKind.AbstractKeyword, node), method = { - type: AST_NODE_TYPES.FunctionExpression, + type: isMethodAbstract ? AST_NODE_TYPES.TSAbstractFunctionExpression : AST_NODE_TYPES.FunctionExpression, id: null, generator: !!node.asteriskToken, expression: false, @@ -913,7 +914,7 @@ module.exports = function convert(config) { /** * TypeScript class methods can be defined as "abstract" */ - const methodDefinitionType = nodeUtils.hasModifier(SyntaxKind.AbstractKeyword, node) + const methodDefinitionType = isMethodAbstract ? AST_NODE_TYPES.TSAbstractMethodDefinition : AST_NODE_TYPES.MethodDefinition; diff --git a/tests/lib/__snapshots__/typescript.js.snap b/tests/lib/__snapshots__/typescript.js.snap index b6ceb70..bb54fd9 100644 --- a/tests/lib/__snapshots__/typescript.js.snap +++ b/tests/lib/__snapshots__/typescript.js.snap @@ -1179,7 +1179,7 @@ Object { }, }, }, - "type": "FunctionExpression", + "type": "TSAbstractFunctionExpression", }, }, ],