This commit is contained in:
Duncan Proctor 2024-10-22 03:19:47 -04:00
parent f54a863965
commit 2f6923b844
2 changed files with 27 additions and 15 deletions

View file

@ -363,7 +363,7 @@ impl SourceAnalyzer {
// [E0586] inclusive ranges must be bounded at the end // [E0586] inclusive ranges must be bounded at the end
(RangeOp::Inclusive, None, None) => return None, (RangeOp::Inclusive, None, None) => return None,
(RangeOp::Inclusive, Some(_), None) => return None (RangeOp::Inclusive, Some(_), None) => return None,
}; };
self.resolver.resolve_known_struct(db.upcast(), &path) self.resolver.resolve_known_struct(db.upcast(), &path)
} }

View file

@ -461,63 +461,75 @@ mod tests {
#[test] #[test]
fn goto_def_range() { fn goto_def_range() {
check_name("Range", r#" check_name(
"Range",
r#"
//- minicore: range //- minicore: range
let x = 0.$0.1; let x = 0.$0.1;
"# "#,
); );
} }
#[test] #[test]
fn goto_def_range_from() { fn goto_def_range_from() {
check_name("RangeFrom", r#" check_name(
"RangeFrom",
r#"
//- minicore: range //- minicore: range
fn f(arr: &[i32]) -> &[i32] { fn f(arr: &[i32]) -> &[i32] {
&arr[0.$0.] &arr[0.$0.]
} }
"# "#,
); );
} }
#[test] #[test]
fn goto_def_range_inclusive() { fn goto_def_range_inclusive() {
check_name("RangeInclusive", r#" check_name(
"RangeInclusive",
r#"
//- minicore: range //- minicore: range
let x = 0.$0.=1; let x = 0.$0.=1;
"# "#,
); );
} }
#[test] #[test]
fn goto_def_range_full() { fn goto_def_range_full() {
check_name("RangeFull", r#" check_name(
"RangeFull",
r#"
//- minicore: range //- minicore: range
fn f(arr: &[i32]) -> &[i32] { fn f(arr: &[i32]) -> &[i32] {
&arr[.$0.] &arr[.$0.]
} }
"# "#,
); );
} }
#[test] #[test]
fn goto_def_range_to() { fn goto_def_range_to() {
check_name("RangeTo", r#" check_name(
"RangeTo",
r#"
//- minicore: range //- minicore: range
fn f(arr: &[i32]) -> &[i32] { fn f(arr: &[i32]) -> &[i32] {
&arr[.$0.10] &arr[.$0.10]
} }
"# "#,
); );
} }
#[test] #[test]
fn goto_def_range_to_inclusive() { fn goto_def_range_to_inclusive() {
check_name("RangeToInclusive", r#" check_name(
"RangeToInclusive",
r#"
//- minicore: range //- minicore: range
fn f(arr: &[i32]) -> &[i32] { fn f(arr: &[i32]) -> &[i32] {
&arr[.$0.=10] &arr[.$0.=10]
} }
"# "#,
); );
} }