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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
use crate;
/// This struct defines a lint.
///
/// It should never be constructed directly, the [`declare_lint`](crate::declare_lint)
/// macro should be used instead, like this:
///
/// ```
/// marker_api::declare_lint!{
/// /// # What it does
/// /// Here you can describe what your lint does.
/// ///
/// /// # Example
/// /// ```
/// /// <bad example>
/// /// ```
/// ///
/// /// Use instead
/// /// ```
/// /// <bad example>
/// /// ```
/// ITEM_WITH_TEST_NAME,
/// Warn,
/// }
/// ```
///
/// The fields of this struct are public, to allow the instantiation in constant
/// context. Marker reserves the right to add new fields, as long the lint can still
/// be constructed using the [`declare_lint`](crate::declare_lint) macro.
/// This macro creates a new lint instance. The doc comment of the lint will be
/// available in the crate documentation and any documentation generated by Marker.
/// The content will be rendered with Markdown.
///
/// It's recommended to include a section explaining what the lint does, and an
/// example. You can also provide additional information, like "limitations" or
/// "known problems". Here is a recommended template:
///
/// ```
/// marker_api::declare_lint!{
/// /// # What it does
/// /// Here you can describe what your lint does.
/// ///
/// /// # Example
/// /// ```
/// /// <bad example>
/// /// ```
/// ///
/// /// Use instead
/// /// ```
/// /// <bad example>
/// /// ```
/// ITEM_WITH_TEST_NAME,
/// Warn,
/// }
/// ```