Skip to content

Commit 8db1c64

Browse files
committed
tests: fix tests for postfix
1 parent 76a8a97 commit 8db1c64

File tree

3 files changed

+52
-36
lines changed

3 files changed

+52
-36
lines changed

crates/ide-completion/src/completions/dot.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1035,7 +1035,7 @@ fn main() {
10351035
fn postfix_drop_completion() {
10361036
cov_mark::check!(postfix_drop_completion);
10371037
check_edit(
1038-
"drop",
1038+
"x.drop",
10391039
r#"
10401040
//- minicore: drop
10411041
struct Vec<T>(T);

crates/ide-completion/src/completions/postfix.rs

+46-31
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ fn main() {
519519
#[test]
520520
fn option_iflet() {
521521
check_edit(
522-
"ifl",
522+
"bar.ifl",
523523
r#"
524524
//- minicore: option
525525
fn main() {
@@ -541,7 +541,7 @@ fn main() {
541541
#[test]
542542
fn option_letelse() {
543543
check_edit(
544-
"lete",
544+
"bar.lete",
545545
r#"
546546
//- minicore: option
547547
fn main() {
@@ -564,7 +564,7 @@ $0
564564
#[test]
565565
fn result_match() {
566566
check_edit(
567-
"match",
567+
"bar.match",
568568
r#"
569569
//- minicore: result
570570
fn main() {
@@ -586,13 +586,13 @@ fn main() {
586586

587587
#[test]
588588
fn postfix_completion_works_for_ambiguous_float_literal() {
589-
check_edit("refm", r#"fn main() { 42.$0 }"#, r#"fn main() { &mut 42 }"#)
589+
check_edit("42.refm", r#"fn main() { 42.$0 }"#, r#"fn main() { &mut 42 }"#)
590590
}
591591

592592
#[test]
593593
fn works_in_simple_macro() {
594594
check_edit(
595-
"dbg",
595+
"bar.dbg",
596596
r#"
597597
macro_rules! m { ($e:expr) => { $e } }
598598
fn main() {
@@ -612,10 +612,10 @@ fn main() {
612612

613613
#[test]
614614
fn postfix_completion_for_references() {
615-
check_edit("dbg", r#"fn main() { &&42.$0 }"#, r#"fn main() { dbg!(&&42) }"#);
616-
check_edit("refm", r#"fn main() { &&42.$0 }"#, r#"fn main() { &&&mut 42 }"#);
615+
check_edit("&&42.dbg", r#"fn main() { &&42.$0 }"#, r#"fn main() { dbg!(&&42) }"#);
616+
check_edit("42.refm", r#"fn main() { &&42.$0 }"#, r#"fn main() { &&&mut 42 }"#);
617617
check_edit(
618-
"ifl",
618+
"bar.ifl",
619619
r#"
620620
//- minicore: option
621621
fn main() {
@@ -636,35 +636,39 @@ fn main() {
636636

637637
#[test]
638638
fn postfix_completion_for_unsafe() {
639-
check_edit("unsafe", r#"fn main() { foo.$0 }"#, r#"fn main() { unsafe { foo } }"#);
640-
check_edit("unsafe", r#"fn main() { { foo }.$0 }"#, r#"fn main() { unsafe { foo } }"#);
639+
check_edit("foo.unsafe", r#"fn main() { foo.$0 }"#, r#"fn main() { unsafe { foo } }"#);
641640
check_edit(
642-
"unsafe",
641+
"{ foo }.unsafe",
642+
r#"fn main() { { foo }.$0 }"#,
643+
r#"fn main() { unsafe { foo } }"#,
644+
);
645+
check_edit(
646+
"if x { foo }.unsafe",
643647
r#"fn main() { if x { foo }.$0 }"#,
644648
r#"fn main() { unsafe { if x { foo } } }"#,
645649
);
646650
check_edit(
647-
"unsafe",
651+
"loop { foo }.unsafe",
648652
r#"fn main() { loop { foo }.$0 }"#,
649653
r#"fn main() { unsafe { loop { foo } } }"#,
650654
);
651655
check_edit(
652-
"unsafe",
656+
"if true {}.unsafe",
653657
r#"fn main() { if true {}.$0 }"#,
654658
r#"fn main() { unsafe { if true {} } }"#,
655659
);
656660
check_edit(
657-
"unsafe",
661+
"while true {}.unsafe",
658662
r#"fn main() { while true {}.$0 }"#,
659663
r#"fn main() { unsafe { while true {} } }"#,
660664
);
661665
check_edit(
662-
"unsafe",
666+
"for i in 0..10 {}.unsafe",
663667
r#"fn main() { for i in 0..10 {}.$0 }"#,
664668
r#"fn main() { unsafe { for i in 0..10 {} } }"#,
665669
);
666670
check_edit(
667-
"unsafe",
671+
"if true {1} else {2}.unsafe",
668672
r#"fn main() { let x = if true {1} else {2}.$0 }"#,
669673
r#"fn main() { let x = unsafe { if true {1} else {2} } }"#,
670674
);
@@ -694,7 +698,7 @@ fn main() {
694698

695699
check_edit_with_config(
696700
config.clone(),
697-
"break",
701+
"42.break",
698702
r#"
699703
//- minicore: try
700704
fn main() { 42.$0 }
@@ -713,7 +717,7 @@ fn main() { ControlFlow::Break(42) }
713717
// what users would see. Unescaping happens thereafter.
714718
check_edit_with_config(
715719
config.clone(),
716-
"break",
720+
r#"'\\\\'.break"#,
717721
r#"
718722
//- minicore: try
719723
fn main() { '\\'.$0 }
@@ -727,7 +731,10 @@ fn main() { ControlFlow::Break('\\\\') }
727731

728732
check_edit_with_config(
729733
config,
730-
"break",
734+
r#"match true {
735+
true => "\${1:placeholder}",
736+
false => "\\\$",
737+
}.break"#,
731738
r#"
732739
//- minicore: try
733740
fn main() {
@@ -753,39 +760,47 @@ fn main() {
753760
#[test]
754761
fn postfix_completion_for_format_like_strings() {
755762
check_edit(
756-
"format",
763+
r#""{some_var:?}".format"#,
757764
r#"fn main() { "{some_var:?}".$0 }"#,
758765
r#"fn main() { format!("{some_var:?}") }"#,
759766
);
760767
check_edit(
761-
"panic",
768+
r#""Panic with {a}".panic"#,
762769
r#"fn main() { "Panic with {a}".$0 }"#,
763770
r#"fn main() { panic!("Panic with {a}") }"#,
764771
);
765772
check_edit(
766-
"println",
773+
r#""{ 2+2 } { SomeStruct { val: 1, other: 32 } :?}".println"#,
767774
r#"fn main() { "{ 2+2 } { SomeStruct { val: 1, other: 32 } :?}".$0 }"#,
768775
r#"fn main() { println!("{} {:?}", 2+2, SomeStruct { val: 1, other: 32 }) }"#,
769776
);
770777
check_edit(
771-
"loge",
778+
r#""{2+2}".loge"#,
772779
r#"fn main() { "{2+2}".$0 }"#,
773780
r#"fn main() { log::error!("{}", 2+2) }"#,
774781
);
775782
check_edit(
776-
"logt",
783+
r#""{2+2}".logt"#,
777784
r#"fn main() { "{2+2}".$0 }"#,
778785
r#"fn main() { log::trace!("{}", 2+2) }"#,
779786
);
780787
check_edit(
781-
"logd",
788+
r#""{2+2}".logd"#,
782789
r#"fn main() { "{2+2}".$0 }"#,
783790
r#"fn main() { log::debug!("{}", 2+2) }"#,
784791
);
785-
check_edit("logi", r#"fn main() { "{2+2}".$0 }"#, r#"fn main() { log::info!("{}", 2+2) }"#);
786-
check_edit("logw", r#"fn main() { "{2+2}".$0 }"#, r#"fn main() { log::warn!("{}", 2+2) }"#);
787792
check_edit(
788-
"loge",
793+
r#""{2+2}".logi"#,
794+
r#"fn main() { "{2+2}".$0 }"#,
795+
r#"fn main() { log::info!("{}", 2+2) }"#,
796+
);
797+
check_edit(
798+
r#""{2+2}".logw"#,
799+
r#"fn main() { "{2+2}".$0 }"#,
800+
r#"fn main() { log::warn!("{}", 2+2) }"#,
801+
);
802+
check_edit(
803+
r#""{2+2}".loge"#,
789804
r#"fn main() { "{2+2}".$0 }"#,
790805
r#"fn main() { log::error!("{}", 2+2) }"#,
791806
);
@@ -807,21 +822,21 @@ fn main() {
807822

808823
check_edit_with_config(
809824
CompletionConfig { snippets: vec![snippet.clone()], ..TEST_CONFIG },
810-
"ok",
825+
"&&42.ok",
811826
r#"fn main() { &&42.o$0 }"#,
812827
r#"fn main() { Ok(&&42) }"#,
813828
);
814829

815830
check_edit_with_config(
816831
CompletionConfig { snippets: vec![snippet.clone()], ..TEST_CONFIG },
817-
"ok",
832+
"&&42.ok",
818833
r#"fn main() { &&42.$0 }"#,
819834
r#"fn main() { Ok(&&42) }"#,
820835
);
821836

822837
check_edit_with_config(
823838
CompletionConfig { snippets: vec![snippet], ..TEST_CONFIG },
824-
"ok",
839+
"&a.a.ok",
825840
r#"
826841
struct A {
827842
a: i32,

crates/ide-completion/src/completions/postfix/format_like.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,11 @@ pub(crate) fn add_format_like_completions(
4848
cap: SnippetCap,
4949
receiver_text: &ast::String,
5050
) {
51-
let postfix_snippet = match build_postfix_snippet_builder(ctx, cap, dot_receiver) {
52-
Some(it) => it,
53-
None => return,
54-
};
51+
let postfix_snippet =
52+
match build_postfix_snippet_builder(ctx, cap, dot_receiver, receiver_text.text()) {
53+
Some(it) => it,
54+
None => return,
55+
};
5556

5657
if let Ok((mut out, mut exprs)) = parse_format_exprs(receiver_text.text()) {
5758
// Escape any snippet bits in the out text and any of the exprs.

0 commit comments

Comments
 (0)