Fix panic in add_type_ascription
Assist wasn't applicable when the let statement was missing a pattern before, so we should do the same now.
This commit is contained in:
parent
df629627c5
commit
3f99a56fae
@ -85,6 +85,10 @@ pub(crate) fn add_turbo_fish(acc: &mut Assists, ctx: &AssistContext<'_>) -> Opti
|
||||
|
||||
if let Some(let_stmt) = ctx.find_node_at_offset::<ast::LetStmt>() {
|
||||
if let_stmt.colon_token().is_none() {
|
||||
if let_stmt.pat().is_none() {
|
||||
return None;
|
||||
}
|
||||
|
||||
acc.add(
|
||||
AssistId("add_type_ascription", AssistKind::RefactorRewrite),
|
||||
"Add `: _` before assignment operator",
|
||||
@ -157,7 +161,10 @@ fn get_fish_head(number_of_arguments: usize) -> ast::GenericArgList {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::tests::{check_assist, check_assist_by_label, check_assist_not_applicable};
|
||||
use crate::tests::{
|
||||
check_assist, check_assist_by_label, check_assist_not_applicable,
|
||||
check_assist_not_applicable_by_label,
|
||||
};
|
||||
|
||||
use super::*;
|
||||
|
||||
@ -400,19 +407,13 @@ fn main() {
|
||||
|
||||
#[test]
|
||||
fn add_type_ascription_missing_pattern() {
|
||||
check_assist_by_label(
|
||||
check_assist_not_applicable_by_label(
|
||||
add_turbo_fish,
|
||||
r#"
|
||||
fn make<T>() -> T {}
|
||||
fn main() {
|
||||
let = make$0()
|
||||
}
|
||||
"#,
|
||||
r#"
|
||||
fn make<T>() -> T {}
|
||||
fn main() {
|
||||
let : ${0:_} = make();
|
||||
}
|
||||
"#,
|
||||
"Add `: _` before assignment operator",
|
||||
);
|
||||
|
@ -98,6 +98,11 @@ pub(crate) fn check_assist_not_applicable(assist: Handler, ra_fixture: &str) {
|
||||
check(assist, ra_fixture, ExpectedResult::NotApplicable, None);
|
||||
}
|
||||
|
||||
#[track_caller]
|
||||
pub(crate) fn check_assist_not_applicable_by_label(assist: Handler, ra_fixture: &str, label: &str) {
|
||||
check(assist, ra_fixture, ExpectedResult::NotApplicable, Some(label));
|
||||
}
|
||||
|
||||
/// Check assist in unresolved state. Useful to check assists for lazy computation.
|
||||
#[track_caller]
|
||||
pub(crate) fn check_assist_unresolved(assist: Handler, ra_fixture: &str) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user