Skip to content
This repository was archived by the owner on Jan 12, 2024. It is now read-only.

NPE on return statement with no argument #4

Closed
dounan opened this issue Aug 11, 2017 · 1 comment
Closed

NPE on return statement with no argument #4

dounan opened this issue Aug 11, 2017 · 1 comment

Comments

@dounan
Copy link

dounan commented Aug 11, 2017

Running the transform on the following code results in a NPE:

function foo() {
  return;
}
TypeError: /Users/dounanshi/dev/babel-plugin-add-react-displayname/test/fixtures/emptyReturn/input.js: Cannot read property 'type' of null
    at doesReturnJSX (/Users/dounanshi/dev/babel-plugin-add-react-displayname/index.js:145:32)
    at PluginPass.FunctionDeclaration (/Users/dounanshi/dev/babel-plugin-add-react-displayname/index.js:13:13)
    at newFn (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/visitors.js:276:21)
    at NodePath._call (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/path/context.js:76:18)
    at NodePath.call (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/path/context.js:48:17)
    at NodePath.visit (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/path/context.js:105:12)
    at TraversalContext.visitQueue (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/context.js:150:16)
    at TraversalContext.visitMultiple (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/context.js:103:17)
    at TraversalContext.visit (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/context.js:190:19)
    at Function.traverse.node (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/index.js:114:17)
    at NodePath.visit (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/path/context.js:115:19)
    at TraversalContext.visitQueue (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/context.js:150:16)
    at TraversalContext.visitSingle (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/context.js:108:19)
    at TraversalContext.visit (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/context.js:192:19)
    at Function.traverse.node (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/index.js:114:17)
    at traverse (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-traverse/lib/index.js:79:12)
    at File.transform (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-core/lib/transformation/file/index.js:548:35)
    at /Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-core/lib/transformation/pipeline.js:50:19
    at File.wrap (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-core/lib/transformation/file/index.js:564:16)
    at Pipeline.transform (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-core/lib/transformation/pipeline.js:47:17)
    at Object.transformFileSync (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/babel-core/lib/api/node.js:152:10)
    at transformFile (/Users/dounanshi/dev/babel-plugin-add-react-displayname/test/tests.js:31:16)
    at /Users/dounanshi/dev/babel-plugin-add-react-displayname/test/tests.js:15:18
    at Array.forEach (native)
    at Suite.<anonymous> (/Users/dounanshi/dev/babel-plugin-add-react-displayname/test/tests.js:14:31)
    at Object.create (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/mocha/lib/interfaces/common.js:114:19)
    at context.describe.context.context (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/mocha/lib/interfaces/bdd.js:44:27)
    at Object.<anonymous> (/Users/dounanshi/dev/babel-plugin-add-react-displayname/test/tests.js:12:1)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at /Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/mocha/lib/mocha.js:230:27
    at Array.forEach (native)
    at Mocha.loadFiles (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/mocha/lib/mocha.js:227:14)
    at Mocha.run (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/mocha/lib/mocha.js:513:10)
    at Object.<anonymous> (/Users/dounanshi/dev/babel-plugin-add-react-displayname/node_modules/mocha/bin/_mocha:480:18)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:509:3

A potential fix is to change line 145 to be:

return lastBlock.argument && lastBlock.argument.type === 'JSXElement'
@jasonferrier
Copy link

jasonferrier commented Jul 13, 2018

I believe this was addressed in the closed PR: #5

@dounan dounan closed this as completed Jul 13, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants