mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 12:21:58 +00:00
fix(linter) improve span for no-unneccessary-await (#1732)
closes #1718
This commit is contained in:
parent
78931e6187
commit
f1d1563cde
2 changed files with 55 additions and 40 deletions
|
|
@ -56,13 +56,19 @@ impl Rule for NoUnnecessaryAwait {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} {
|
} {
|
||||||
ctx.diagnostic(NoUnnecessaryAwaitDiagnostic(expr.span));
|
ctx.diagnostic(NoUnnecessaryAwaitDiagnostic(Span::new(
|
||||||
|
expr.span.start,
|
||||||
|
expr.span.start + 5,
|
||||||
|
)));
|
||||||
} else {
|
} else {
|
||||||
ctx.diagnostic_with_fix(NoUnnecessaryAwaitDiagnostic(expr.span), || {
|
ctx.diagnostic_with_fix(
|
||||||
let mut formatter = ctx.formatter();
|
NoUnnecessaryAwaitDiagnostic(Span::new(expr.span.start, expr.span.start + 5)),
|
||||||
expr.argument.gen(&mut formatter);
|
|| {
|
||||||
Fix::new(formatter.into_code(), expr.span)
|
let mut formatter = ctx.formatter();
|
||||||
});
|
expr.argument.gen(&mut formatter);
|
||||||
|
Fix::new(formatter.into_code(), expr.span)
|
||||||
|
},
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -145,6 +151,8 @@ fn test() {
|
||||||
("async function foo() {+await +1}", None),
|
("async function foo() {+await +1}", None),
|
||||||
("async function foo() {-await-1}", None),
|
("async function foo() {-await-1}", None),
|
||||||
("async function foo() {+await -1}", None),
|
("async function foo() {+await -1}", None),
|
||||||
|
// https://github.com/oxc-project/oxc/issues/1718
|
||||||
|
("await await this.assertTotalDocumentCount(expectedFormattedTotalDocCount);", None),
|
||||||
];
|
];
|
||||||
|
|
||||||
let fix = vec![
|
let fix = vec![
|
||||||
|
|
|
||||||
|
|
@ -5,238 +5,245 @@ expression: no_unnecessary_await
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await []
|
1 │ await []
|
||||||
· ────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await [Promise.resolve()]
|
1 │ await [Promise.resolve()]
|
||||||
· ─────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await (() => {})
|
1 │ await (() => {})
|
||||||
· ────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await (() => Promise.resolve())
|
1 │ await (() => Promise.resolve())
|
||||||
· ───────────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await (a === b)
|
1 │ await (a === b)
|
||||||
· ───────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await (a instanceof Promise)
|
1 │ await (a instanceof Promise)
|
||||||
· ────────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await (a > b)
|
1 │ await (a > b)
|
||||||
· ─────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await class {}
|
1 │ await class {}
|
||||||
· ──────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await class extends Promise {}
|
1 │ await class extends Promise {}
|
||||||
· ──────────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await function() {}
|
1 │ await function() {}
|
||||||
· ───────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await function name() {}
|
1 │ await function name() {}
|
||||||
· ────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await function() { return Promise.resolve() }
|
1 │ await function() { return Promise.resolve() }
|
||||||
· ─────────────────────────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await (<></>)
|
1 │ await (<></>)
|
||||||
· ─────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await (<a></a>)
|
1 │ await (<a></a>)
|
||||||
· ───────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await 0
|
1 │ await 0
|
||||||
· ───────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await 1
|
1 │ await 1
|
||||||
· ───────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await ""
|
1 │ await ""
|
||||||
· ────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await "string"
|
1 │ await "string"
|
||||||
· ──────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await true
|
1 │ await true
|
||||||
· ──────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await false
|
1 │ await false
|
||||||
· ───────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await null
|
1 │ await null
|
||||||
· ──────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await 0n
|
1 │ await 0n
|
||||||
· ────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await 1n
|
1 │ await 1n
|
||||||
· ────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await `${Promise.resolve()}`
|
1 │ await `${Promise.resolve()}`
|
||||||
· ────────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await !Promise.resolve()
|
1 │ await !Promise.resolve()
|
||||||
· ────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await void Promise.resolve()
|
1 │ await void Promise.resolve()
|
||||||
· ────────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await +Promise.resolve()
|
1 │ await +Promise.resolve()
|
||||||
· ────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await ~1
|
1 │ await ~1
|
||||||
· ────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await ++foo
|
1 │ await ++foo
|
||||||
· ───────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await foo--
|
1 │ await foo--
|
||||||
· ───────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ await (Promise.resolve(), 1)
|
1 │ await (Promise.resolve(), 1)
|
||||||
· ────────────────────────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ async function foo() {+await +1}
|
1 │ async function foo() {+await +1}
|
||||||
· ────────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ async function foo() {-await-1}
|
1 │ async function foo() {-await-1}
|
||||||
· ───────
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
╭─[no_unnecessary_await.tsx:1:1]
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
1 │ async function foo() {+await -1}
|
1 │ async function foo() {+await -1}
|
||||||
· ────────
|
· ─────
|
||||||
|
╰────
|
||||||
|
help: consider to remove the `await`
|
||||||
|
|
||||||
|
⚠ eslint-plugin-unicorn(no-unnecessary-await): Disallow awaiting non-promise values
|
||||||
|
╭─[no_unnecessary_await.tsx:1:1]
|
||||||
|
1 │ await await this.assertTotalDocumentCount(expectedFormattedTotalDocCount);
|
||||||
|
· ─────
|
||||||
╰────
|
╰────
|
||||||
help: consider to remove the `await`
|
help: consider to remove the `await`
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue