File tree 1 file changed +53
-6
lines changed
crates/oxc_linter/src/rules/eslint
1 file changed +53
-6
lines changed Original file line number Diff line number Diff line change @@ -17,17 +17,64 @@ pub struct NoClassAssign;
17
17
18
18
declare_oxc_lint ! (
19
19
/// ### What it does
20
+ ///
20
21
/// Disallow reassigning class variables.
21
22
///
22
23
/// ### Why is this bad?
23
- /// `ClassDeclaration` creates a variable that can be re-assigned,
24
- /// but the re-assignment is a mistake in most cases.
25
24
///
26
- /// ### Example
25
+ /// `ClassDeclaration` creates a variable that can be re-assigned, but the re-assignment is a
26
+ /// mistake in most cases.
27
+ ///
28
+ /// ### Examples
29
+ ///
30
+ /// Examples of **incorrect** code for this rule:
31
+ /// ```javascript
32
+ /// class A { }
33
+ /// A = 0;
34
+ /// ```
35
+ ///
36
+ /// ```javascript
37
+ /// A = 0;
38
+ /// class A { }
39
+ /// ```
40
+ ///
41
+ /// ```javascript
42
+ /// class A {
43
+ /// b() {
44
+ /// A = 0;
45
+ /// }
46
+ /// }
47
+ /// ```
48
+ ///
49
+ /// ```javascript
50
+ /// let A = class A {
51
+ /// b() {
52
+ /// A = 0;
53
+ /// // `let A` is shadowed by the class name.
54
+ /// }
55
+ /// }
56
+ /// ```
57
+ ///
58
+ /// Examples of **correct** code for this rule:
59
+ /// ```javascript
60
+ /// let A = class A { }
61
+ /// A = 0; // A is a variable.
62
+ /// ```
63
+ ///
64
+ /// ```javascript
65
+ /// let A = class {
66
+ /// b() {
67
+ /// A = 0; // A is a variable.
68
+ /// }
69
+ /// }
70
+ /// ```
71
+ ///
27
72
/// ```javascript
28
- /// class A {}
29
- /// A = 123;
30
- /// let a = new A() // Error
73
+ /// class A {
74
+ /// b(A) {
75
+ /// A = 0; // A is a parameter.
76
+ /// }
77
+ /// }
31
78
/// ```
32
79
NoClassAssign ,
33
80
eslint,
You can’t perform that action at this time.
0 commit comments