Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

id-length rule does not detect all possible cases for defining identifiers #3286

Closed
BYK opened this issue Aug 5, 2015 · 4 comments
Closed
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion archived due to age This issue has been archived; please open a new issue for any further discussion bug ESLint is working incorrectly rule Relates to ESLint's core rules

Comments

@BYK
Copy link
Member

BYK commented Aug 5, 2015

Forked off of #3282, specifically #3282 (comment) reported by @mysticatea

id-length rule does not support the following cases:

   {
        code: "class x { }",
        ecmaFeatures: {classes: true},
        errors: [{ message: "Identifier name 'x' is too short. (< 2)", type: "Identifier"}]
    },
    {
        code: "class Foo { x() {} }",
        ecmaFeatures: {classes: true},
        errors: [{ message: "Identifier name 'x' is too short. (< 2)", type: "Identifier"}]
    },
    {
        code: "function foo(x = 0) { }",
        ecmaFeatures: {defaultParams: true},
        errors: [{ message: "Identifier name 'x' is too short. (< 2)", type: "Identifier"}]
    },
    {
        code: "function foo(...x) { }",
        ecmaFeatures: {restParams : true},
        errors: [{ message: "Identifier name 'x' is too short. (< 2)", type: "Identifier"}]
    },
    {
        code: "var {x} = {};",
        ecmaFeatures: {destructuring: true},
        errors: [{ message: "Identifier name 'x' is too short. (< 2)", type: "Identifier"}]
    },
    {
        code: "var {a: [x]} = {};",
        ecmaFeatures: {destructuring: true},
        errors: [{ message: "Identifier name 'x' is too short. (< 2)", type: "Identifier"}]
    },
    {
        code: "import x from \"x\";",
        ecmaFeatures: {modules: true},
        errors: [{ message: "Identifier name 'x' is too short. (< 2)", type: "Identifier"}]
    },
    {
        code: "export var x = 0;",
        ecmaFeatures: {modules: true},
        errors: [{ message: "Identifier name 'x' is too short. (< 2)", type: "Identifier"}]
    },
    {
        code: "({a: obj.x}) = {};",
        ecmaFeatures: {destructuring: true},
        errors: [{ message: "Identifier name 'x' is too short. (< 2)", type: "Identifier"}]
    }
@eslintbot
Copy link

Thanks for the issue! We get a lot of issues, so this message is automatically posted to each one to help you check that you've included all of the information we need to help you.

Reporting a bug? Please be sure to include:

  1. The version of ESLint you are using (run eslint -v)
  2. The source code that caused the problem
  3. The configuration you're using (for the rule or your entire config file)
  4. The actual ESLint output complete with line numbers

Requesting a new rule? Please be sure to include:

  1. The use case for the rule - what is it trying to prevent or flag?
  2. Whether the rule is trying to prevent an error or is purely stylistic
  3. Why you believe this rule is generic enough to be included

Requesting a feature? Please be sure to include:

  1. The problem you want to solve (don't mention the solution)
  2. Your take on the correct solution to problem

Including this information in your issue helps us to triage it and get you a response as quickly as possible.

Thanks!

@BYK
Copy link
Member Author

BYK commented Aug 5, 2015

I am working on this.

@mysticatea
Copy link
Member

👍

@nzakas nzakas added bug ESLint is working incorrectly rule Relates to ESLint's core rules accepted There is consensus among the team that this change meets the criteria for inclusion labels Aug 6, 2015
@BYK
Copy link
Member Author

BYK commented Aug 6, 2015

I have an almost done patch but holding it for the ({a: obj.x}) = {}; pattern which is quite tricky to handle.

@nzakas nzakas closed this as completed in 6db92d6 Aug 10, 2015
nzakas added a commit that referenced this issue Aug 10, 2015
Fix: `id-length` does not work for most of the new ES6 patterns (fixes #3286)
@eslint-deprecated eslint-deprecated bot locked and limited conversation to collaborators Feb 7, 2018
@eslint-deprecated eslint-deprecated bot added the archived due to age This issue has been archived; please open a new issue for any further discussion label Feb 7, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion archived due to age This issue has been archived; please open a new issue for any further discussion bug ESLint is working incorrectly rule Relates to ESLint's core rules
Projects
None yet
Development

No branches or pull requests

4 participants