mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-26 13:03:31 +00:00
internal: use idiomatic form of assertions
Ideally, we should just return an InvalidParameter dialog here, but that shows error message to the end user, and we generally avoid that
This commit is contained in:
parent
fa6a4a0c93
commit
1660820e51
2 changed files with 9 additions and 5 deletions
|
@ -7,6 +7,7 @@ use std::{
|
|||
process::{self, Stdio},
|
||||
};
|
||||
|
||||
use always_assert::always;
|
||||
use ide::{
|
||||
AnnotationConfig, AssistKind, AssistResolveStrategy, FileId, FilePosition, FileRange,
|
||||
HoverAction, HoverGotoTypeData, Query, RangeInfo, Runnable, RunnableKind, SingleResolve,
|
||||
|
@ -265,10 +266,11 @@ pub(crate) fn handle_on_type_formatting(
|
|||
// `text.char_at(position) == typed_char`.
|
||||
position.offset -= TextSize::of('.');
|
||||
let char_typed = params.ch.chars().next().unwrap_or('\0');
|
||||
assert!({
|
||||
|
||||
let text = snap.analysis.file_text(position.file_id)?;
|
||||
text[usize::from(position.offset)..].starts_with(char_typed)
|
||||
});
|
||||
if !always!(text[usize::from(position.offset)..].starts_with(char_typed)) {
|
||||
return Ok(None);
|
||||
}
|
||||
|
||||
// We have an assist that inserts ` ` after typing `->` in `fn foo() ->{`,
|
||||
// but it requires precise cursor positioning to work, and one can't
|
||||
|
|
|
@ -260,7 +260,9 @@ if idx >= len {
|
|||
## Assertions
|
||||
|
||||
Assert liberally.
|
||||
Prefer `stdx::never!` to standard `assert!`.
|
||||
Prefer [`stdx::never!`](https://docs.rs/always-assert/0.1.2/always_assert/macro.never.html) to standard `assert!`.
|
||||
|
||||
**Rationale:** See [cross cutting concern: error handling](https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/architecture.md#error-handling).
|
||||
|
||||
## Getters & Setters
|
||||
|
||||
|
|
Loading…
Reference in a new issue