@@ -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
525525fn 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
547547fn main() {
564564 #[ test]
565565 fn result_match ( ) {
566566 check_edit (
567- "match" ,
567+ "bar. match" ,
568568 r#"
569569//- minicore: result
570570fn 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#"
597597macro_rules! m { ($e:expr) => { $e } }
598598fn 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
621621fn 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
700704fn 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
719723fn 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
733740fn 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#"
826841struct A {
827842 a: i32,
0 commit comments