This repository was archived by the owner on Jan 19, 2019. It is now read-only.
This repository was archived by the owner on Jan 19, 2019. It is now read-only.
Declared class methods fail rules that depend on function body #162
Closed
Description
Eslint: 3.15 (with eslint-scope#master)
TypeScript: next
typescipt-eslint-parser: master
What code were you trying to parse?
declare namespace FF {
class Foo extends Bar.Baz {
far(): any;
}
}
or
declare module "FF" {
class Foo extends Bar.Baz {
far(): any;
}
}
or
declare class Foo extends Bar.Baz {
far(): any;
}
What did you expect to happen?
It should parse
What happened?
Exception:
Cannot read property 'type' of null
TypeError: Cannot read property 'type' of null
at EventEmitter.onCodePathStart (/home/reyad/Workspace/eslint/lib/rules/array-callback-return.js:187:34)
at emitTwo (events.js:92:20)
at EventEmitter.emit (events.js:172:7)
at processCodePathToEnter (/home/reyad/Workspace/eslint/lib/code-path-analysis/code-path-analyzer.js:357:30)
at CodePathAnalyzer.enterNode (/home/reyad/Workspace/eslint/lib/code-path-analysis/code-path-analyzer.js:604:9)
at CommentEventGenerator.enterNode (/home/reyad/Workspace/eslint/lib/util/comment-event-generator.js:98:23)
at Controller.enter (/home/reyad/Workspace/eslint/lib/eslint.js:928:36)
at Controller.__execute (/home/reyad/Workspace/eslint/node_modules/estraverse/estraverse.js:397:31)
at Controller.traverse (/home/reyad/Workspace/eslint/node_modules/estraverse/estraverse.js:501:28)
at Controller.Traverser.controller.traverse (/home/reyad/Workspace/eslint/lib/util/traverser.js:36:33)
We should detect if the parent is being declared and not use FunctionExpression to define functions that have no body. Similar to what is done with functions in a namespace.