Code Monkey home page Code Monkey logo

noisy-clippy's People

Contributors

dtolnay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

noisy-clippy's Issues

Deduplicate lints that have been renamed

For example rust-lang/rust-clippy#8621.

Currently we are producing separate counts and html pages for eval_order_dependence and mixed_read_write_in_expression.

This might require a PR to clippy to include all past names of lints in https://rust-lang.github.io/rust-clippy/master/lints.json. Currently it just has the past named mentioned in unstructured form in the lint description.

  {
    "id": "mixed_read_write_in_expression",
    "id_span": {
      "path": "src/mixed_read_write_in_expression.rs",
      "line": 45
    },
    "group": "restriction",
    "level": "allow",
    "docs": "\n### What it does\nChecks for a read and a write to the same variable where\nwhether the read occurs before or after the write depends on the evaluation\norder of sub-expressions.\n\n### Why is this bad?\nIt is often confusing to read. As described [here](https://doc.rust-lang.org/reference/expressions.html?highlight=subexpression#evaluation-order-of-operands),\nthe operands of these expressions are evaluated before applying the effects of the expression.\n\n### Known problems\nCode which intentionally depends on the evaluation\norder, or which is correct for any evaluation order.\n\n### Example\n```rust\nlet mut x = 0;\n\nlet a = {\n    x = 1;\n    1\n} + x;\n// Unclear whether a is 1 or 2.\n```\n\nUse instead:\n```rust\nlet tmp = {\n    x = 1;\n    1\n};\nlet a = tmp + x;\n```\n### Past names\n\n* `eval_order_dependence`\n\n",
    "version": "pre 1.29.0",
    "applicability": {
      "is_multi_part_suggestion": false,
      "applicability": "Unresolved"
    }
  },

Update to get-all-crates directory structure

The current implementation of this crate expects a single flat directory with all the .crate files (100,000 – 700,000 of them currently on crates.io…).

https://github.com/dtolnay/get-all-crates produces a nested structure that works more like how Cargo's registry index is arranged. It would be better to use that, and update the documentation of noisy-clippy to point to get-all-crates for how to obtain all the crate files.

Produce histogram for configurable lints

For example too_many_arguments: it would be relevant to know the distribution of number of arguments among functions where this lint is being suppressed. The current default threshold in Clippy is 7. Is it the case that almost all suppression are using 8 arguments, or 8 or 9? Or is it a much wider distribution? That would be relevant for informing a choice of better default.

Similarly type_complexity: what is the distribution of actual complexity?

These 2 lints specifically are the top two most widely suppressed lints in Clippy. I think it's a reasonable takeaway that Clippy has gotten the default threshold wrong in both cases.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.