jscs-dev / node-jscs

:arrow_heading_up: JavaScript Code Style checker (unmaintained)
https://jscs-dev.github.io
MIT License
4.97k stars 515 forks source link

Error running rule requireDollarBeforeJqueryAssignment #2265

Closed biznickman closed 8 years ago

biznickman commented 8 years ago

Not sure what's going on here but the following error is showing up on a file that starts wit:

/**
 * Combine all reducers in this file and export the combined reducers.
 * If we were to do this in store.js, reducers wouldn't be hot reloadable.
 */

Here's the error:

image

markelog commented 8 years ago

Can't repro with this example

acusti commented 8 years ago

I’ve also run into this issue with JSCS 3.0.5 and found a reduced test case that triggers the error:

export default function openPage (state, payload = {}) {
    const pageProps = {
        ...payload,
        focused: true
    };
    return state.concat(pageProps);
}

Specifically, the error is triggered by adding the object spread (...payload,) to the object literal. I also noticed that the --fix part of the JSCS linter still works when it generates this error.


As an aside, I was saddened to learn that JSCS is being deprecated. Thanks so much to all the contributors for building such an immensely useful tool, and for leading the way in regards to implementing tools that accurately and safely auto-fix your code based on the linting rules of that code base.

acusti commented 8 years ago

Also, the stack trace:

internalError Error running rule requireDollarBeforejQueryAssignment: This is an issue with JSCS and not your codebase.
Please file an issue (with the stack trace below) at: https://github.com/jscs-dev/node-jscs/issues/new
TypeError: Cannot read property 'name' of undefined
    at /Users/brandcast/.atom/packages/linter-jscs/node_modules/jscs/lib/rules/require-dollar-before-jquery-assignment.js:142:30
    at Array.forEach (native)
    at Object. (/Users/brandcast/.atom/packages/linter-jscs/node_modules/jscs/lib/rules/require-dollar-before-jquery-assignment.js:139:23)
    at Array.forEach (native)
    at Object.JsFile.iterateNodesByType (/Users/brandcast/.atom/packages/linter-jscs/node_modules/jscs/lib/js-file.js:331:42)
    at Object.module.exports.check (/Users/brandcast/.atom/packages/linter-jscs/node_modules/jscs/lib/rules/require-dollar-before-jquery-assignment.js:72:14)
    at [object Object]. (/Users/brandcast/.atom/packages/linter-jscs/node_modules/jscs/lib/string-checker.js:189:22)
    at Array.forEach (native)
    at [object Object].StringChecker._checkJsFile (/Users/brandcast/.atom/packages/linter-jscs/node_modules/jscs/lib/string-checker.js:185:31)
    at [object Object].StringChecker.checkString (/Users/brandcast/.atom/packages/linter-jscs/node_modules/jscs/lib/string-checker.js:92:14)
    at Object.lint (/Users/brandcast/.atom/packages/linter-jscs/src/linter-jscs.js:207:14)
    at promises.push.Promise.then._this.emitter.emit.linter (/Users/brandcast/.atom/packages/linter/lib/linter-registry.js:63:26)
    at /Users/brandcast/.atom/packages/linter/lib/linter-registry.js:62:23
    at Set.forEach (native)
    at LinterRegistry.lint (/Users/brandcast/.atom/packages/linter/lib/linter-registry.js:60:18)
    at /Users/brandcast/.atom/packages/linter/lib/linter.coffee:98:16
    at Function.module.exports.Emitter.simpleDispatch (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:125:28)
    at /Users/brandcast/.atom/packages/linter/lib/editor-linter.js:30:20
    at Function.module.exports.Emitter.simpleDispatch (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:125:28)
    at TextBuffer.module.exports.TextBuffer.saveAs (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1113:27)
    at TextBuffer.module.exports.TextBuffer.save (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1083:19)
    at TextEditor.module.exports.TextEditor.save (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/text-editor.js:660:26)
    at Pane.module.exports.Pane.saveItem (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/pane.js:718:18)
    at Pane.module.exports.Pane.saveActiveItem (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/pane.js:701:19)
    at Workspace.module.exports.Workspace.saveActivePaneItem (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/workspace.js:684:35)
    at atom-workspace.commandRegistry.add.core:save (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/register-default-commands.js:214:32)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
    at /opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:580:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:388:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:98:36)
    at HTMLDocument. (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:3:61)at line 1 col 1
markelog commented 8 years ago

Hm, works for me, could you try again? If it still doesn't work would you mind creating separate issue about it?