mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 12:19:15 +00:00
fix(linter): improve docs and diagnostics message for no-else-return (#6327)
This commit is contained in:
parent
f6e42b6d85
commit
93c6db6550
2 changed files with 286 additions and 169 deletions
|
|
@ -16,9 +16,9 @@ declare_oxc_lint!(
|
|||
/// Disallow `else` blocks after `return` statements in `if` statements
|
||||
///
|
||||
/// ### Why is this bad?
|
||||
/// If an if block contains a return statement, the else block becomes unnecessary. Its contents can be placed outside of the block.
|
||||
/// If an `if` block contains a `return` statement, the `else` block becomes
|
||||
/// unnecessary. Its contents can be placed outside of the block.
|
||||
///
|
||||
/// ### Example
|
||||
/// ```javascript
|
||||
/// function foo() {
|
||||
/// if (x) {
|
||||
|
|
@ -28,15 +28,146 @@ declare_oxc_lint!(
|
|||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
/// This rule is aimed at highlighting an unnecessary block of code
|
||||
/// following an `if` containing a return statement. As such, it will warn
|
||||
/// when it encounters an `else` following a chain of `if`s, all of them
|
||||
/// containing a `return` statement.
|
||||
///
|
||||
/// Options
|
||||
/// This rule has an object option:
|
||||
///
|
||||
/// - `allowElseIf`: `true` _(default)_ allows `else if` blocks after a return
|
||||
/// - `allowElseIf`: `false` disallows `else if` blocks after a return
|
||||
///
|
||||
/// ### Examples
|
||||
///
|
||||
/// #### `allowElseIf: true`
|
||||
/// Examples of **incorrect** code for this rule:
|
||||
/// ```javascript
|
||||
/// function foo1() {
|
||||
/// if (x) {
|
||||
/// return y;
|
||||
/// } else {
|
||||
/// return z;
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// function foo2() {
|
||||
/// if (x) {
|
||||
/// return y;
|
||||
/// } else if (z) {
|
||||
/// return w;
|
||||
/// } else {
|
||||
/// return t;
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// function foo3() {
|
||||
/// if (x) {
|
||||
/// return y;
|
||||
/// } else {
|
||||
/// var t = "foo";
|
||||
/// }
|
||||
///
|
||||
/// return t;
|
||||
/// }
|
||||
///
|
||||
/// function foo4() {
|
||||
/// if (error) {
|
||||
/// return 'It failed';
|
||||
/// } else {
|
||||
/// if (loading) {
|
||||
/// return "It's still loading";
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// // Two warnings for nested occurrences
|
||||
/// function foo5() {
|
||||
/// if (x) {
|
||||
/// if (y) {
|
||||
/// return y;
|
||||
/// } else {
|
||||
/// return x;
|
||||
/// }
|
||||
/// } else {
|
||||
/// return z;
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
/// Examples of **correct** code for this rule:
|
||||
/// ```javascript
|
||||
/// function foo1() {
|
||||
/// if (x) {
|
||||
/// return y;
|
||||
/// }
|
||||
///
|
||||
/// return z;
|
||||
/// }
|
||||
///
|
||||
/// function foo2() {
|
||||
/// if (x) {
|
||||
/// return y;
|
||||
/// } else if (z) {
|
||||
/// var t = "foo";
|
||||
/// } else {
|
||||
/// return w;
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// function foo3() {
|
||||
/// if (x) {
|
||||
/// if (z) {
|
||||
/// return y;
|
||||
/// }
|
||||
/// } else {
|
||||
/// return z;
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// function foo4() {
|
||||
/// if (error) {
|
||||
/// return 'It failed';
|
||||
/// } else if (loading) {
|
||||
/// return "It's still loading";
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
/// #### `allowElseIf: false`
|
||||
///
|
||||
/// Examples of **incorrect** code for this rule:
|
||||
/// ```javascript
|
||||
/// function foo() {
|
||||
/// if (error) {
|
||||
/// return 'It failed';
|
||||
/// } else if (loading) {
|
||||
/// return "It's still loading";
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
/// Examples of **correct** code for this rule:
|
||||
/// ```javascript
|
||||
/// function foo() {
|
||||
/// if (error) {
|
||||
/// return 'It failed';
|
||||
/// }
|
||||
///
|
||||
/// if (loading) {
|
||||
/// return "It's still loading";
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
NoElseReturn,
|
||||
suspicious,
|
||||
fix
|
||||
);
|
||||
|
||||
fn no_else_return_diagnostic(else_stmt: &Statement) -> OxcDiagnostic {
|
||||
OxcDiagnostic::warn("Disallow `else` blocks after `return` statements in `if` statements")
|
||||
.with_help("Unnecessary 'else' after 'return'.")
|
||||
.with_label(else_stmt.span())
|
||||
OxcDiagnostic::warn("Unnecessary 'else' after 'return'.").with_label(else_stmt.span())
|
||||
}
|
||||
|
||||
fn is_safe_from_name_collisions(
|
||||
|
|
|
|||
|
|
@ -1,586 +1,572 @@
|
|||
---
|
||||
source: crates/oxc_linter/src/tester.rs
|
||||
---
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:48]
|
||||
1 │ function foo1() { if (true) { return x; } else { return y; } }
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { return y; }` with ` return y; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:61]
|
||||
1 │ function foo2() { if (true) { var x = bar; return x; } else { var y = baz; return y; } }
|
||||
· ──────────────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { var y = baz; return y; }` with ` var y = baz; return y; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:44]
|
||||
1 │ function foo3() { if (true) return x; else return y; }
|
||||
· ─────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else return y;` with ` return y;`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:74]
|
||||
1 │ function foo4() { if (true) { if (false) return x; else return y; } else { return z; } }
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { return z; }` with ` return z; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:57]
|
||||
1 │ function foo4() { if (true) { if (false) return x; else return y; } else { return z; } }
|
||||
· ─────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else return y;` with ` return y;`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:69]
|
||||
1 │ function foo5() { if (true) { if (false) { if (true) return x; else { w = y; } } else { w = x; } } else { return z; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { w = y; }` with ` w = y; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:69]
|
||||
1 │ function foo6() { if (true) { if (false) { if (true) return x; else return y; } } else { return z; } }
|
||||
· ─────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else return y;` with ` return y;`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:98]
|
||||
1 │ function foo7() { if (true) { if (false) { if (true) return x; else return y; } return w; } else { return z; } }
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { return z; }` with ` return z; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:69]
|
||||
1 │ function foo7() { if (true) { if (false) { if (true) return x; else return y; } return w; } else { return z; } }
|
||||
· ─────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else return y;` with ` return y;`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:86]
|
||||
1 │ function foo8() { if (true) { if (false) { if (true) return x; else return y; } else { w = x; } } else { return z; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { w = x; }` with ` w = x; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:69]
|
||||
1 │ function foo8() { if (true) { if (false) { if (true) return x; else return y; } else { w = x; } } else { return z; } }
|
||||
· ─────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else return y;` with ` return y;`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:76]
|
||||
1 │ function foo9() {if (x) { return true; } else if (y) { return true; } else { notAReturn(); } }
|
||||
· ─────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { notAReturn(); }` with ` notAReturn(); `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:48]
|
||||
1 │ function foo9a() {if (x) { return true; } else if (y) { return true; } else { notAReturn(); } }
|
||||
· ──────────────────────────────────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else if (y) { return true; } else { notAReturn(); }` with ` if (y) { return true; } else { notAReturn(); }`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:72]
|
||||
1 │ function foo9b() {if (x) { return true; } if (y) { return true; } else { notAReturn(); } }
|
||||
· ─────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { notAReturn(); }` with ` notAReturn(); `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:46]
|
||||
1 │ function foo10() { if (foo) return bar; else (foo).bar(); }
|
||||
· ────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else (foo).bar();` with ` (foo).bar();`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:2:9]
|
||||
1 │ function foo11() { if (foo) return bar
|
||||
2 │ else { [1, 2, 3].map(foo) } }
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace `
|
||||
else { [1, 2, 3].map(foo) }` with `
|
||||
[1, 2, 3].map(foo) `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:2:9]
|
||||
1 │ function foo12() { if (foo) return bar
|
||||
2 │ else { baz() }
|
||||
· ─────────
|
||||
3 │ [1, 2, 3].map(foo) }
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace `
|
||||
else { baz() }` with `
|
||||
baz() `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:2:9]
|
||||
1 │ function foo13() { if (foo) return bar;
|
||||
2 │ else { [1, 2, 3].map(foo) } }
|
||||
· ──────────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace `
|
||||
else { [1, 2, 3].map(foo) }` with `
|
||||
[1, 2, 3].map(foo) `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:2:9]
|
||||
1 │ function foo14() { if (foo) return bar
|
||||
2 │ else { baz(); }
|
||||
· ──────────
|
||||
3 │ [1, 2, 3].map(foo) }
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace `
|
||||
else { baz(); }` with `
|
||||
baz(); `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:46]
|
||||
1 │ function foo15() { if (foo) return bar; else { baz() } qaz() }
|
||||
· ─────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { baz() }` with ` baz() `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:2:9]
|
||||
1 │ function foo16() { if (foo) return bar
|
||||
2 │ else { baz() } qaz() }
|
||||
· ─────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace `
|
||||
else { baz() }` with `
|
||||
baz() `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:2:9]
|
||||
1 │ function foo17() { if (foo) return bar
|
||||
2 │ else { baz() }
|
||||
· ─────────
|
||||
3 │ qaz() }
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace `
|
||||
else { baz() }` with `
|
||||
baz() `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:2:9]
|
||||
1 │ function foo18() { if (foo) return function() {}
|
||||
2 │ else [1, 2, 3].map(bar) }
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace `
|
||||
else [1, 2, 3].map(bar)` with `
|
||||
[1, 2, 3].map(bar)`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo19() { if (true) { return x; } else if (false) { return y; } }
|
||||
· ────────────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else if (false) { return y; }` with ` if (false) { return y; }`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:48]
|
||||
1 │ function foo20() {if (x) { return true; } else if (y) { notAReturn() } else { notAReturn(); } }
|
||||
· ──────────────────────────────────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else if (y) { notAReturn() } else { notAReturn(); }` with ` if (y) { notAReturn() } else { notAReturn(); }`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo21() { var x = true; if (x) { return x; } else if (x === false) { return false; } }
|
||||
· ──────────────────────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else if (x === false) { return false; }` with ` if (x === false) { return false; }`.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:56]
|
||||
1 │ function foo() { var a; if (bar) { return true; } else { var a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { var a; }` with ` var a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:67]
|
||||
1 │ function foo() { if (bar) { var a; if (baz) { return true; } else { var a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { var a; }` with ` var a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:56]
|
||||
1 │ function foo() { var a; if (bar) { return true; } else { var a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { var a; }` with ` var a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:67]
|
||||
1 │ function foo() { if (bar) { var a; if (baz) { return true; } else { var a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { var a; }` with ` var a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:56]
|
||||
1 │ function foo() { let a; if (bar) { return true; } else { let a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:59]
|
||||
1 │ class foo { bar() { let a; if (baz) { return true; } else { let a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:67]
|
||||
1 │ function foo() { if (bar) { let a; if (baz) { return true; } else { let a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:66]
|
||||
1 │ function foo() {let a; if (bar) { if (baz) { return true; } else { let a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:62]
|
||||
1 │ function foo() { const a = 1; if (bar) { return true; } else { let a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:73]
|
||||
1 │ function foo() { if (bar) { const a = 1; if (baz) { return true; } else { let a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:56]
|
||||
1 │ function foo() { let a; if (bar) { return true; } else { const a = 1 } }
|
||||
· ───────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:67]
|
||||
1 │ function foo() { if (bar) { let a; if (baz) { return true; } else { const a = 1; } } }
|
||||
· ────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:61]
|
||||
1 │ function foo() { class a {}; if (bar) { return true; } else { const a = 1; } }
|
||||
· ────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:72]
|
||||
1 │ function foo() { if (bar) { class a {}; if (baz) { return true; } else { const a = 1; } } }
|
||||
· ────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:62]
|
||||
1 │ function foo() { const a = 1; if (bar) { return true; } else { class a {} } }
|
||||
· ──────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:73]
|
||||
1 │ function foo() { if (bar) { const a = 1; if (baz) { return true; } else { class a {} } } }
|
||||
· ──────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:56]
|
||||
1 │ function foo() { var a; if (bar) { return true; } else { let a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:56]
|
||||
1 │ function foo() { if (bar) { var a; return true; } else { let a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo() { if (bar) { return true; } else { let a; } while (baz) { var a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:50]
|
||||
1 │ function foo(a) { if (bar) { return true; } else { let a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:54]
|
||||
1 │ function foo(a = 1) { if (bar) { return true; } else { let a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:57]
|
||||
1 │ function foo(a, b = a) { if (bar) { return true; } else { let a; } if (bar) { return true; } else { let b; }}
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:100]
|
||||
1 │ function foo(a, b = a) { if (bar) { return true; } else { let a; } if (bar) { return true; } else { let b; }}
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:56]
|
||||
1 │ function foo(...args) { if (bar) { return true; } else { let args; } }
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:68]
|
||||
1 │ function foo() { try {} catch (a) { if (bar) { return true; } else { let a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:79]
|
||||
1 │ function foo() { try {} catch (a) { if (bar) { if (baz) { return true; } else { let a; } } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:79]
|
||||
1 │ function foo() { try {} catch ({bar, a = 1}) { if (baz) { return true; } else { let a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo() { if (bar) { return true; } else { let arguments; } }
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let arguments; }` with ` let arguments; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo() { if (bar) { return true; } else { let arguments; } return arguments[0]; }
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let arguments; }` with ` let arguments; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo() { if (bar) { return true; } else { let arguments; } if (baz) { return arguments[0]; } }
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let arguments; }` with ` let arguments; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let arguments; } } }
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let arguments; }` with ` let arguments; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo() { if (bar) { return true; } else { let a; } a; }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo() { if (bar) { return true; } else { let a; } if (baz) { a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let a; } } a; }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let a; } a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let a; } if (quux) { a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:47]
|
||||
1 │ function a() { if (foo) { return true; } else { let a; } a(); }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:45]
|
||||
1 │ function a() { if (a) { return true; } else { let a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:44]
|
||||
1 │ function a() { if (foo) { return a; } else { let a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo() { if (bar) { return true; } else { let a; } function baz() { a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let a; } (() => a) } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo() { if (bar) { return true; } else { let a; } var a; }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let a; } var a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let a; } var { a } = {}; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let a; } if (quux) { var a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let a; } } if (quux) { var a; } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:81]
|
||||
1 │ function foo() { if (quux) { var a; } if (bar) { if (baz) { return true; } else { let a; } } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo() { if (bar) { return true; } else { let a; } function a(){} }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (baz) { if (bar) { return true; } else { let a; } function a(){} } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let a; } } if (quux) { function a(){} } }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:60]
|
||||
1 │ function foo() { if (bar) { if (baz) { return true; } else { let a; } } function a(){} }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:56]
|
||||
1 │ function foo() { let a; if (bar) { return true; } else { function a(){} } }
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:56]
|
||||
1 │ function foo() { var a; if (bar) { return true; } else { function a(){} } }
|
||||
· ──────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:49]
|
||||
1 │ function foo() { if (bar) { return true; } else function baz() {} };
|
||||
· ─────────────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:32]
|
||||
1 │ if (foo) { return true; } else { let a; }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
help: Replace ` else { let a; }` with ` let a; `.
|
||||
|
||||
⚠ eslint(no-else-return): Disallow `else` blocks after `return` statements in `if` statements
|
||||
⚠ eslint(no-else-return): Unnecessary 'else' after 'return'.
|
||||
╭─[no_else_return.tsx:1:39]
|
||||
1 │ let a; if (foo) { return true; } else { let a; }
|
||||
· ──────────
|
||||
╰────
|
||||
help: Unnecessary 'else' after 'return'.
|
||||
|
|
|
|||
Loading…
Reference in a new issue