summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/src/docs/disallowed_methods.txt
blob: d8ad5b6a6674cd2c4bb0a79f3b13ca391b1e06ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
### What it does
Denies the configured methods and functions in clippy.toml

Note: Even though this lint is warn-by-default, it will only trigger if
methods are defined in the clippy.toml file.

### Why is this bad?
Some methods are undesirable in certain contexts, and it's beneficial to
lint for them as needed.

### Example
An example clippy.toml configuration:
```
disallowed-methods = [
    # Can use a string as the path of the disallowed method.
    "std::boxed::Box::new",
    # Can also use an inline table with a `path` key.
    { path = "std::time::Instant::now" },
    # When using an inline table, can add a `reason` for why the method
    # is disallowed.
    { path = "std::vec::Vec::leak", reason = "no leaking memory" },
]
```

```
// Example code where clippy issues a warning
let xs = vec![1, 2, 3, 4];
xs.leak(); // Vec::leak is disallowed in the config.
// The diagnostic contains the message "no leaking memory".

let _now = Instant::now(); // Instant::now is disallowed in the config.

let _box = Box::new(3); // Box::new is disallowed in the config.
```

Use instead:
```
// Example code which does not raise clippy warning
let mut xs = Vec::new(); // Vec::new is _not_ disallowed in the config.
xs.push(123); // Vec::push is _not_ disallowed in the config.
```