mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 20:42:04 +00:00
Added tests to ensure config behavior.
This commit is contained in:
parent
b75e0e7bb1
commit
efb6587664
1 changed files with 190 additions and 2 deletions
|
@ -272,7 +272,6 @@ mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
fn check(ra_fixture: &str) {
|
fn check(ra_fixture: &str) {
|
||||||
let (analysis, pos, annotations) = fixture::annotations(ra_fixture);
|
|
||||||
let config = HighlightRelatedConfig {
|
let config = HighlightRelatedConfig {
|
||||||
break_points: true,
|
break_points: true,
|
||||||
exit_points: true,
|
exit_points: true,
|
||||||
|
@ -280,7 +279,13 @@ mod tests {
|
||||||
yield_points: true,
|
yield_points: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
let hls = analysis.highlight_related(config, pos).unwrap().unwrap();
|
check_with_config(ra_fixture, config);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn check_with_config(ra_fixture: &str, config: HighlightRelatedConfig) {
|
||||||
|
let (analysis, pos, annotations) = fixture::annotations(ra_fixture);
|
||||||
|
|
||||||
|
let hls = analysis.highlight_related(config, pos).unwrap().unwrap_or(Vec::default());
|
||||||
|
|
||||||
let mut expected = annotations
|
let mut expected = annotations
|
||||||
.into_iter()
|
.into_iter()
|
||||||
|
@ -745,4 +750,187 @@ fn foo() {
|
||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_hl_disabled_ref_local() {
|
||||||
|
let config = HighlightRelatedConfig {
|
||||||
|
references: false,
|
||||||
|
break_points: true,
|
||||||
|
exit_points: true,
|
||||||
|
yield_points: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
let ra_fixture = r#"
|
||||||
|
fn foo() {
|
||||||
|
let x$0 = 5;
|
||||||
|
let y = x * 2;
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
check_with_config(ra_fixture, config);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_hl_disabled_ref_local_preserved_break() {
|
||||||
|
let config = HighlightRelatedConfig {
|
||||||
|
references: false,
|
||||||
|
break_points: true,
|
||||||
|
exit_points: true,
|
||||||
|
yield_points: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
let ra_fixture = r#"
|
||||||
|
fn foo() {
|
||||||
|
let x$0 = 5;
|
||||||
|
let y = x * 2;
|
||||||
|
|
||||||
|
loop {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
check_with_config(ra_fixture, config.clone());
|
||||||
|
|
||||||
|
let ra_fixture = r#"
|
||||||
|
fn foo() {
|
||||||
|
let x = 5;
|
||||||
|
let y = x * 2;
|
||||||
|
|
||||||
|
loop$0 {
|
||||||
|
// ^^^^
|
||||||
|
break;
|
||||||
|
// ^^^^^
|
||||||
|
}
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
check_with_config(ra_fixture, config);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_hl_disabled_ref_local_preserved_yield() {
|
||||||
|
let config = HighlightRelatedConfig {
|
||||||
|
references: false,
|
||||||
|
break_points: true,
|
||||||
|
exit_points: true,
|
||||||
|
yield_points: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
let ra_fixture = r#"
|
||||||
|
async fn foo() {
|
||||||
|
let x$0 = 5;
|
||||||
|
let y = x * 2;
|
||||||
|
|
||||||
|
0.await;
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
check_with_config(ra_fixture, config.clone());
|
||||||
|
|
||||||
|
let ra_fixture = r#"
|
||||||
|
async fn foo() {
|
||||||
|
// ^^^^^
|
||||||
|
let x = 5;
|
||||||
|
let y = x * 2;
|
||||||
|
|
||||||
|
0.await$0;
|
||||||
|
// ^^^^^
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
check_with_config(ra_fixture, config);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_hl_disabled_ref_local_preserved_exit() {
|
||||||
|
let config = HighlightRelatedConfig {
|
||||||
|
references: false,
|
||||||
|
break_points: true,
|
||||||
|
exit_points: true,
|
||||||
|
yield_points: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
let ra_fixture = r#"
|
||||||
|
fn foo() -> i32 {
|
||||||
|
let x$0 = 5;
|
||||||
|
let y = x * 2;
|
||||||
|
|
||||||
|
if true {
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
|
||||||
|
0?
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
check_with_config(ra_fixture, config.clone());
|
||||||
|
|
||||||
|
let ra_fixture = r#"
|
||||||
|
fn foo() ->$0 i32 {
|
||||||
|
let x = 5;
|
||||||
|
let y = x * 2;
|
||||||
|
|
||||||
|
if true {
|
||||||
|
return y;
|
||||||
|
// ^^^^^^
|
||||||
|
}
|
||||||
|
|
||||||
|
0?
|
||||||
|
// ^
|
||||||
|
"#;
|
||||||
|
|
||||||
|
check_with_config(ra_fixture, config);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_hl_disabled_break() {
|
||||||
|
let config = HighlightRelatedConfig {
|
||||||
|
references: true,
|
||||||
|
break_points: false,
|
||||||
|
exit_points: true,
|
||||||
|
yield_points: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
let ra_fixture = r#"
|
||||||
|
fn foo() {
|
||||||
|
loop {
|
||||||
|
break$0;
|
||||||
|
}
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
check_with_config(ra_fixture, config);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_hl_disabled_yield() {
|
||||||
|
let config = HighlightRelatedConfig {
|
||||||
|
references: true,
|
||||||
|
break_points: true,
|
||||||
|
exit_points: true,
|
||||||
|
yield_points: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
let ra_fixture = r#"
|
||||||
|
async$0 fn foo() {
|
||||||
|
0.await;
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
check_with_config(ra_fixture, config);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_hl_disabled_exit() {
|
||||||
|
let config = HighlightRelatedConfig {
|
||||||
|
references: true,
|
||||||
|
break_points: true,
|
||||||
|
exit_points: false,
|
||||||
|
yield_points: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
let ra_fixture = r#"
|
||||||
|
fn foo() ->$0 i32 {
|
||||||
|
if true {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
42
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
check_with_config(ra_fixture, config);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue