@@ -519,7 +519,7 @@ fn main() {
519519#[ test]
520520fn option_iflet ( ) {
521521check_edit (
522- "ifl" ,
522+ "bar. ifl" ,
523523r#"
524524//- minicore: option
525525fn main() {
@@ -541,7 +541,7 @@ fn main() {
541541#[ test]
542542fn option_letelse ( ) {
543543check_edit (
544- "lete" ,
544+ "bar. lete" ,
545545r#"
546546//- minicore: option
547547fn main() {
564564#[ test]
565565fn result_match ( ) {
566566check_edit (
567- "match" ,
567+ "bar. match" ,
568568r#"
569569//- minicore: result
570570fn main() {
@@ -586,13 +586,13 @@ fn main() {
586586
587587#[ test]
588588fn 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]
593593fn works_in_simple_macro ( ) {
594594check_edit (
595- "dbg" ,
595+ "bar. dbg" ,
596596r#"
597597macro_rules! m { ($e:expr) => { $e } }
598598fn main() {
@@ -612,10 +612,10 @@ fn main() {
612612
613613#[ test]
614614fn 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 }"# ) ;
617617check_edit (
618- "ifl" ,
618+ "bar. ifl" ,
619619r#"
620620//- minicore: option
621621fn main() {
@@ -636,35 +636,39 @@ fn main() {
636636
637637#[ test]
638638fn 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 } }"# ) ;
641640check_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" ,
643647r#"fn main() { if x { foo }.$0 }"# ,
644648r#"fn main() { unsafe { if x { foo } } }"# ,
645649) ;
646650check_edit (
647- "unsafe" ,
651+ "loop { foo }. unsafe" ,
648652r#"fn main() { loop { foo }.$0 }"# ,
649653r#"fn main() { unsafe { loop { foo } } }"# ,
650654) ;
651655check_edit (
652- "unsafe" ,
656+ "if true {}. unsafe" ,
653657r#"fn main() { if true {}.$0 }"# ,
654658r#"fn main() { unsafe { if true {} } }"# ,
655659) ;
656660check_edit (
657- "unsafe" ,
661+ "while true {}. unsafe" ,
658662r#"fn main() { while true {}.$0 }"# ,
659663r#"fn main() { unsafe { while true {} } }"# ,
660664) ;
661665check_edit (
662- "unsafe" ,
666+ "for i in 0..10 {}. unsafe" ,
663667r#"fn main() { for i in 0..10 {}.$0 }"# ,
664668r#"fn main() { unsafe { for i in 0..10 {} } }"# ,
665669) ;
666670check_edit (
667- "unsafe" ,
671+ "if true {1} else {2}. unsafe" ,
668672r#"fn main() { let x = if true {1} else {2}.$0 }"# ,
669673r#"fn main() { let x = unsafe { if true {1} else {2} } }"# ,
670674) ;
@@ -694,7 +698,7 @@ fn main() {
694698
695699check_edit_with_config (
696700 config. clone ( ) ,
697- "break" ,
701+ "42. break" ,
698702r#"
699703//- minicore: try
700704fn main() { 42.$0 }
@@ -713,7 +717,7 @@ fn main() { ControlFlow::Break(42) }
713717// what users would see. Unescaping happens thereafter.
714718check_edit_with_config (
715719 config. clone ( ) ,
716- " break",
720+ r#"'\\\\'. break"# ,
717721r#"
718722//- minicore: try
719723fn main() { '\\'.$0 }
@@ -727,7 +731,10 @@ fn main() { ControlFlow::Break('\\\\') }
727731
728732check_edit_with_config (
729733 config,
730- "break" ,
734+ r#"match true {
735+ true => "\${1:placeholder}",
736+ false => "\\\$",
737+ }.break"# ,
731738r#"
732739//- minicore: try
733740fn main() {
@@ -753,39 +760,47 @@ fn main() {
753760#[ test]
754761fn postfix_completion_for_format_like_strings ( ) {
755762check_edit (
756- " format",
763+ r#""{some_var:?}". format"# ,
757764r#"fn main() { "{some_var:?}".$0 }"# ,
758765r#"fn main() { format!("{some_var:?}") }"# ,
759766) ;
760767check_edit (
761- " panic",
768+ r#""Panic with {a}". panic"# ,
762769r#"fn main() { "Panic with {a}".$0 }"# ,
763770r#"fn main() { panic!("Panic with {a}") }"# ,
764771) ;
765772check_edit (
766- " println",
773+ r#""{ 2+2 } { SomeStruct { val: 1, other: 32 } :?}". println"# ,
767774r#"fn main() { "{ 2+2 } { SomeStruct { val: 1, other: 32 } :?}".$0 }"# ,
768775r#"fn main() { println!("{} {:?}", 2+2, SomeStruct { val: 1, other: 32 }) }"# ,
769776) ;
770777check_edit (
771- " loge",
778+ r#""{2+2}". loge"# ,
772779r#"fn main() { "{2+2}".$0 }"# ,
773780r#"fn main() { log::error!("{}", 2+2) }"# ,
774781) ;
775782check_edit (
776- " logt",
783+ r#""{2+2}". logt"# ,
777784r#"fn main() { "{2+2}".$0 }"# ,
778785r#"fn main() { log::trace!("{}", 2+2) }"# ,
779786) ;
780787check_edit (
781- " logd",
788+ r#""{2+2}". logd"# ,
782789r#"fn main() { "{2+2}".$0 }"# ,
783790r#"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) }"# ) ;
787792check_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"# ,
789804r#"fn main() { "{2+2}".$0 }"# ,
790805r#"fn main() { log::error!("{}", 2+2) }"# ,
791806) ;
@@ -807,21 +822,21 @@ fn main() {
807822
808823check_edit_with_config (
809824CompletionConfig { snippets : vec ! [ snippet. clone( ) ] , ..TEST_CONFIG } ,
810- "ok" ,
825+ "&&42. ok" ,
811826r#"fn main() { &&42.o$0 }"# ,
812827r#"fn main() { Ok(&&42) }"# ,
813828) ;
814829
815830check_edit_with_config (
816831CompletionConfig { snippets : vec ! [ snippet. clone( ) ] , ..TEST_CONFIG } ,
817- "ok" ,
832+ "&&42. ok" ,
818833r#"fn main() { &&42.$0 }"# ,
819834r#"fn main() { Ok(&&42) }"# ,
820835) ;
821836
822837check_edit_with_config (
823838CompletionConfig { snippets : vec ! [ snippet] , ..TEST_CONFIG } ,
824- "ok" ,
839+ "&a.a. ok" ,
825840r#"
826841struct A {
827842 a: i32,
0 commit comments