diff options
Diffstat (limited to 'crates/ra_ide/src/hover.rs')
-rw-r--r-- | crates/ra_ide/src/hover.rs | 114 |
1 files changed, 55 insertions, 59 deletions
diff --git a/crates/ra_ide/src/hover.rs b/crates/ra_ide/src/hover.rs index e469f4166..933e9b714 100644 --- a/crates/ra_ide/src/hover.rs +++ b/crates/ra_ide/src/hover.rs | |||
@@ -389,10 +389,9 @@ mod tests { | |||
389 | assert_eq!(offset, position.into()); | 389 | assert_eq!(offset, position.into()); |
390 | } | 390 | } |
391 | 391 | ||
392 | fn check_hover_result(ra_fixture: &str, expected: &[&str]) -> (String, Vec<HoverAction>) { | 392 | fn check_hover_result(ra_fixture: &str, expected: &str) -> (String, Vec<HoverAction>) { |
393 | let (analysis, position) = analysis_and_position(ra_fixture); | 393 | let (analysis, position) = analysis_and_position(ra_fixture); |
394 | let hover = analysis.hover(position).unwrap().unwrap(); | 394 | let hover = analysis.hover(position).unwrap().unwrap(); |
395 | let expected = expected.join("\n\n___\n"); | ||
396 | let actual = trim_markup(hover.info.markup.as_str()); | 395 | let actual = trim_markup(hover.info.markup.as_str()); |
397 | assert_eq!(expected, actual); | 396 | assert_eq!(expected, actual); |
398 | 397 | ||
@@ -423,8 +422,7 @@ fn main() { | |||
423 | 422 | ||
424 | #[test] | 423 | #[test] |
425 | fn hover_shows_long_type_of_an_expression() { | 424 | fn hover_shows_long_type_of_an_expression() { |
426 | check_hover_result( | 425 | check_hover_result(r#" |
427 | r#" | ||
428 | //- /main.rs | 426 | //- /main.rs |
429 | struct Scan<A, B, C> { | 427 | struct Scan<A, B, C> { |
430 | a: A, | 428 | a: A, |
@@ -457,9 +455,7 @@ fn main() { | |||
457 | let number = 5u32; | 455 | let number = 5u32; |
458 | let mut iter<|> = scan(OtherStruct { i: num }, closure, number); | 456 | let mut iter<|> = scan(OtherStruct { i: num }, closure, number); |
459 | } | 457 | } |
460 | "#, | 458 | "#, "FakeIter<Scan<OtherStruct<OtherStruct<i32>>, |&mut u32, &u32, &mut u32| -> FakeOption<u32>, u32>>"); |
461 | &["FakeIter<Scan<OtherStruct<OtherStruct<i32>>, |&mut u32, &u32, &mut u32| -> FakeOption<u32>, u32>>"], | ||
462 | ); | ||
463 | } | 459 | } |
464 | 460 | ||
465 | #[test] | 461 | #[test] |
@@ -474,7 +470,7 @@ fn main() { | |||
474 | let foo_test = fo<|>o(); | 470 | let foo_test = fo<|>o(); |
475 | } | 471 | } |
476 | "#, | 472 | "#, |
477 | &["pub fn foo() -> u32"], | 473 | "pub fn foo() -> u32", |
478 | ); | 474 | ); |
479 | 475 | ||
480 | // Multiple candidates but results are ambiguous. | 476 | // Multiple candidates but results are ambiguous. |
@@ -498,7 +494,7 @@ fn main() { | |||
498 | let foo_test = fo<|>o(); | 494 | let foo_test = fo<|>o(); |
499 | } | 495 | } |
500 | "#, | 496 | "#, |
501 | &["{unknown}"], | 497 | "{unknown}", |
502 | ); | 498 | ); |
503 | } | 499 | } |
504 | 500 | ||
@@ -513,7 +509,7 @@ fn main() { | |||
513 | let foo_test = fo<|>o(); | 509 | let foo_test = fo<|>o(); |
514 | } | 510 | } |
515 | "#, | 511 | "#, |
516 | &["pub fn foo<'a, T: AsRef<str>>(b: &'a T) -> &'a str"], | 512 | "pub fn foo<'a, T: AsRef<str>>(b: &'a T) -> &'a str", |
517 | ); | 513 | ); |
518 | } | 514 | } |
519 | 515 | ||
@@ -527,7 +523,7 @@ fn main() { | |||
527 | fn main() { | 523 | fn main() { |
528 | } | 524 | } |
529 | "#, | 525 | "#, |
530 | &["pub fn foo(a: u32, b: u32) -> u32"], | 526 | "pub fn foo(a: u32, b: u32) -> u32", |
531 | ); | 527 | ); |
532 | } | 528 | } |
533 | 529 | ||
@@ -547,7 +543,7 @@ fn main() { | |||
547 | }; | 543 | }; |
548 | } | 544 | } |
549 | "#, | 545 | "#, |
550 | &["Foo\n```\n\n```rust\nfield_a: u32"], | 546 | "Foo\n```\n\n```rust\nfield_a: u32", |
551 | ); | 547 | ); |
552 | 548 | ||
553 | // Hovering over the field in the definition | 549 | // Hovering over the field in the definition |
@@ -564,7 +560,7 @@ fn main() { | |||
564 | }; | 560 | }; |
565 | } | 561 | } |
566 | "#, | 562 | "#, |
567 | &["Foo\n```\n\n```rust\nfield_a: u32"], | 563 | "Foo\n```\n\n```rust\nfield_a: u32", |
568 | ); | 564 | ); |
569 | } | 565 | } |
570 | 566 | ||
@@ -575,7 +571,7 @@ fn main() { | |||
575 | //- /main.rs | 571 | //- /main.rs |
576 | const foo<|>: u32 = 0; | 572 | const foo<|>: u32 = 0; |
577 | "#, | 573 | "#, |
578 | &["const foo: u32"], | 574 | "const foo: u32", |
579 | ); | 575 | ); |
580 | 576 | ||
581 | check_hover_result( | 577 | check_hover_result( |
@@ -583,7 +579,7 @@ fn main() { | |||
583 | //- /main.rs | 579 | //- /main.rs |
584 | static foo<|>: u32 = 0; | 580 | static foo<|>: u32 = 0; |
585 | "#, | 581 | "#, |
586 | &["static foo: u32"], | 582 | "static foo: u32", |
587 | ); | 583 | ); |
588 | } | 584 | } |
589 | 585 | ||
@@ -600,7 +596,7 @@ struct Test<K, T = u8> { | |||
600 | fn main() { | 596 | fn main() { |
601 | let zz<|> = Test { t: 23u8, k: 33 }; | 597 | let zz<|> = Test { t: 23u8, k: 33 }; |
602 | }"#, | 598 | }"#, |
603 | &["Test<i32, u8>"], | 599 | "Test<i32, u8>", |
604 | ); | 600 | ); |
605 | } | 601 | } |
606 | 602 | ||
@@ -643,7 +639,7 @@ fn main() { | |||
643 | Non<|>e | 639 | Non<|>e |
644 | } | 640 | } |
645 | "#, | 641 | "#, |
646 | &[" | 642 | " |
647 | Option | 643 | Option |
648 | ``` | 644 | ``` |
649 | 645 | ||
@@ -654,7 +650,7 @@ ___ | |||
654 | 650 | ||
655 | The None variant | 651 | The None variant |
656 | " | 652 | " |
657 | .trim()], | 653 | .trim(), |
658 | ); | 654 | ); |
659 | 655 | ||
660 | check_hover_result( | 656 | check_hover_result( |
@@ -668,7 +664,7 @@ The None variant | |||
668 | let s = Option::Som<|>e(12); | 664 | let s = Option::Som<|>e(12); |
669 | } | 665 | } |
670 | "#, | 666 | "#, |
671 | &[" | 667 | " |
672 | Option | 668 | Option |
673 | ``` | 669 | ``` |
674 | 670 | ||
@@ -679,7 +675,7 @@ ___ | |||
679 | 675 | ||
680 | The Some variant | 676 | The Some variant |
681 | " | 677 | " |
682 | .trim()], | 678 | .trim(), |
683 | ); | 679 | ); |
684 | } | 680 | } |
685 | 681 | ||
@@ -900,7 +896,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
900 | } | 896 | } |
901 | } | 897 | } |
902 | ", | 898 | ", |
903 | &["fn foo()"], | 899 | "fn foo()", |
904 | ); | 900 | ); |
905 | 901 | ||
906 | assert_eq!(hover_on, "foo") | 902 | assert_eq!(hover_on, "foo") |
@@ -918,7 +914,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
918 | let a = id!(ba<|>r); | 914 | let a = id!(ba<|>r); |
919 | } | 915 | } |
920 | ", | 916 | ", |
921 | &["u32"], | 917 | "u32", |
922 | ); | 918 | ); |
923 | 919 | ||
924 | assert_eq!(hover_on, "bar") | 920 | assert_eq!(hover_on, "bar") |
@@ -939,7 +935,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
939 | let a = id!(ba<|>r); | 935 | let a = id!(ba<|>r); |
940 | } | 936 | } |
941 | ", | 937 | ", |
942 | &["u32"], | 938 | "u32", |
943 | ); | 939 | ); |
944 | 940 | ||
945 | assert_eq!(hover_on, "bar") | 941 | assert_eq!(hover_on, "bar") |
@@ -963,7 +959,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
963 | let a = id!([0u32, bar(<|>)] ); | 959 | let a = id!([0u32, bar(<|>)] ); |
964 | } | 960 | } |
965 | ", | 961 | ", |
966 | &["u32"], | 962 | "u32", |
967 | ); | 963 | ); |
968 | 964 | ||
969 | assert_eq!(hover_on, "bar()") | 965 | assert_eq!(hover_on, "bar()") |
@@ -982,7 +978,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
982 | let _ = arr!("Tr<|>acks", &mastered_for_itunes); | 978 | let _ = arr!("Tr<|>acks", &mastered_for_itunes); |
983 | } | 979 | } |
984 | "#, | 980 | "#, |
985 | &["&str"], | 981 | "&str", |
986 | ); | 982 | ); |
987 | 983 | ||
988 | assert_eq!(hover_on, "\"Tracks\""); | 984 | assert_eq!(hover_on, "\"Tracks\""); |
@@ -1001,7 +997,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1001 | assert!(ba<|>r()); | 997 | assert!(ba<|>r()); |
1002 | } | 998 | } |
1003 | ", | 999 | ", |
1004 | &["fn bar() -> bool"], | 1000 | "fn bar() -> bool", |
1005 | ); | 1001 | ); |
1006 | 1002 | ||
1007 | assert_eq!(hover_on, "bar"); | 1003 | assert_eq!(hover_on, "bar"); |
@@ -1035,7 +1031,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1035 | fo<|>o(); | 1031 | fo<|>o(); |
1036 | } | 1032 | } |
1037 | ", | 1033 | ", |
1038 | &["fn foo()\n```\n___\n\n<- `\u{3000}` here"], | 1034 | "fn foo()\n```\n___\n\n<- `\u{3000}` here", |
1039 | ); | 1035 | ); |
1040 | } | 1036 | } |
1041 | 1037 | ||
@@ -1046,21 +1042,21 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1046 | //- /lib.rs | 1042 | //- /lib.rs |
1047 | async fn foo<|>() {} | 1043 | async fn foo<|>() {} |
1048 | ", | 1044 | ", |
1049 | &["async fn foo()"], | 1045 | "async fn foo()", |
1050 | ); | 1046 | ); |
1051 | check_hover_result( | 1047 | check_hover_result( |
1052 | r" | 1048 | r" |
1053 | //- /lib.rs | 1049 | //- /lib.rs |
1054 | pub const unsafe fn foo<|>() {} | 1050 | pub const unsafe fn foo<|>() {} |
1055 | ", | 1051 | ", |
1056 | &["pub const unsafe fn foo()"], | 1052 | "pub const unsafe fn foo()", |
1057 | ); | 1053 | ); |
1058 | check_hover_result( | 1054 | check_hover_result( |
1059 | r#" | 1055 | r#" |
1060 | //- /lib.rs | 1056 | //- /lib.rs |
1061 | pub(crate) async unsafe extern "C" fn foo<|>() {} | 1057 | pub(crate) async unsafe extern "C" fn foo<|>() {} |
1062 | "#, | 1058 | "#, |
1063 | &[r#"pub(crate) async unsafe extern "C" fn foo()"#], | 1059 | r#"pub(crate) async unsafe extern "C" fn foo()"#, |
1064 | ); | 1060 | ); |
1065 | } | 1061 | } |
1066 | 1062 | ||
@@ -1071,7 +1067,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1071 | //- /lib.rs | 1067 | //- /lib.rs |
1072 | unsafe trait foo<|>() {} | 1068 | unsafe trait foo<|>() {} |
1073 | ", | 1069 | ", |
1074 | &["unsafe trait foo"], | 1070 | "unsafe trait foo", |
1075 | ); | 1071 | ); |
1076 | assert_impl_action(&actions[0], 13); | 1072 | assert_impl_action(&actions[0], 13); |
1077 | } | 1073 | } |
@@ -1089,7 +1085,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1089 | 1085 | ||
1090 | fn my() {} | 1086 | fn my() {} |
1091 | ", | 1087 | ", |
1092 | &["mod my"], | 1088 | "mod my", |
1093 | ); | 1089 | ); |
1094 | } | 1090 | } |
1095 | 1091 | ||
@@ -1105,7 +1101,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1105 | let bar = Ba<|>r; | 1101 | let bar = Ba<|>r; |
1106 | } | 1102 | } |
1107 | "#, | 1103 | "#, |
1108 | &["struct Bar\n```\n___\n\nbar docs"], | 1104 | "struct Bar\n```\n___\n\nbar docs", |
1109 | ); | 1105 | ); |
1110 | } | 1106 | } |
1111 | 1107 | ||
@@ -1121,7 +1117,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1121 | let bar = Ba<|>r; | 1117 | let bar = Ba<|>r; |
1122 | } | 1118 | } |
1123 | "#, | 1119 | "#, |
1124 | &["struct Bar\n```\n___\n\nbar docs"], | 1120 | "struct Bar\n```\n___\n\nbar docs", |
1125 | ); | 1121 | ); |
1126 | } | 1122 | } |
1127 | 1123 | ||
@@ -1139,7 +1135,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1139 | let bar = Ba<|>r; | 1135 | let bar = Ba<|>r; |
1140 | } | 1136 | } |
1141 | "#, | 1137 | "#, |
1142 | &["struct Bar\n```\n___\n\nbar docs 0\n\nbar docs 1\n\nbar docs 2"], | 1138 | "struct Bar\n```\n___\n\nbar docs 0\n\nbar docs 1\n\nbar docs 2", |
1143 | ); | 1139 | ); |
1144 | } | 1140 | } |
1145 | 1141 | ||
@@ -1167,7 +1163,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1167 | bar.fo<|>o(); | 1163 | bar.fo<|>o(); |
1168 | } | 1164 | } |
1169 | "#, | 1165 | "#, |
1170 | &["Bar\n```\n\n```rust\nfn foo(&self)\n```\n___\n\n Do the foo"], | 1166 | "Bar\n```\n\n```rust\nfn foo(&self)\n```\n___\n\n Do the foo", |
1171 | ); | 1167 | ); |
1172 | } | 1168 | } |
1173 | 1169 | ||
@@ -1195,7 +1191,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1195 | bar.fo<|>o(); | 1191 | bar.fo<|>o(); |
1196 | } | 1192 | } |
1197 | "#, | 1193 | "#, |
1198 | &["Bar\n```\n\n```rust\nfn foo(&self)\n```\n___\n\nDo the foo"], | 1194 | "Bar\n```\n\n```rust\nfn foo(&self)\n```\n___\n\nDo the foo", |
1199 | ); | 1195 | ); |
1200 | } | 1196 | } |
1201 | 1197 | ||
@@ -1206,7 +1202,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1206 | //- /lib.rs | 1202 | //- /lib.rs |
1207 | trait foo<|>() {} | 1203 | trait foo<|>() {} |
1208 | ", | 1204 | ", |
1209 | &["trait foo"], | 1205 | "trait foo", |
1210 | ); | 1206 | ); |
1211 | assert_impl_action(&actions[0], 6); | 1207 | assert_impl_action(&actions[0], 6); |
1212 | } | 1208 | } |
@@ -1218,7 +1214,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1218 | //- /lib.rs | 1214 | //- /lib.rs |
1219 | struct foo<|>() {} | 1215 | struct foo<|>() {} |
1220 | ", | 1216 | ", |
1221 | &["struct foo"], | 1217 | "struct foo", |
1222 | ); | 1218 | ); |
1223 | assert_impl_action(&actions[0], 7); | 1219 | assert_impl_action(&actions[0], 7); |
1224 | } | 1220 | } |
@@ -1230,7 +1226,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1230 | //- /lib.rs | 1226 | //- /lib.rs |
1231 | union foo<|>() {} | 1227 | union foo<|>() {} |
1232 | ", | 1228 | ", |
1233 | &["union foo"], | 1229 | "union foo", |
1234 | ); | 1230 | ); |
1235 | assert_impl_action(&actions[0], 6); | 1231 | assert_impl_action(&actions[0], 6); |
1236 | } | 1232 | } |
@@ -1245,7 +1241,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1245 | B | 1241 | B |
1246 | } | 1242 | } |
1247 | ", | 1243 | ", |
1248 | &["enum foo"], | 1244 | "enum foo", |
1249 | ); | 1245 | ); |
1250 | assert_impl_action(&actions[0], 5); | 1246 | assert_impl_action(&actions[0], 5); |
1251 | } | 1247 | } |
@@ -1258,7 +1254,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1258 | #[test] | 1254 | #[test] |
1259 | fn foo_<|>test() {} | 1255 | fn foo_<|>test() {} |
1260 | ", | 1256 | ", |
1261 | &["fn foo_test()"], | 1257 | "fn foo_test()", |
1262 | ); | 1258 | ); |
1263 | assert_debug_snapshot!(actions, | 1259 | assert_debug_snapshot!(actions, |
1264 | @r###" | 1260 | @r###" |
@@ -1304,7 +1300,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1304 | fn foo_test() {} | 1300 | fn foo_test() {} |
1305 | } | 1301 | } |
1306 | ", | 1302 | ", |
1307 | &["mod tests"], | 1303 | "mod tests", |
1308 | ); | 1304 | ); |
1309 | assert_debug_snapshot!(actions, | 1305 | assert_debug_snapshot!(actions, |
1310 | @r###" | 1306 | @r###" |
@@ -1346,7 +1342,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1346 | let s<|>t = S{ f1:0 }; | 1342 | let s<|>t = S{ f1:0 }; |
1347 | } | 1343 | } |
1348 | ", | 1344 | ", |
1349 | &["S"], | 1345 | "S", |
1350 | ); | 1346 | ); |
1351 | assert_debug_snapshot!(actions, | 1347 | assert_debug_snapshot!(actions, |
1352 | @r###" | 1348 | @r###" |
@@ -1390,7 +1386,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1390 | let s<|>t = S{ f1:Arg(0) }; | 1386 | let s<|>t = S{ f1:Arg(0) }; |
1391 | } | 1387 | } |
1392 | ", | 1388 | ", |
1393 | &["S<Arg>"], | 1389 | "S<Arg>", |
1394 | ); | 1390 | ); |
1395 | assert_debug_snapshot!(actions, | 1391 | assert_debug_snapshot!(actions, |
1396 | @r###" | 1392 | @r###" |
@@ -1453,7 +1449,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1453 | let s<|>t = S{ f1: S{ f1: Arg(0) } }; | 1449 | let s<|>t = S{ f1: S{ f1: Arg(0) } }; |
1454 | } | 1450 | } |
1455 | ", | 1451 | ", |
1456 | &["S<S<Arg>>"], | 1452 | "S<S<Arg>>", |
1457 | ); | 1453 | ); |
1458 | assert_debug_snapshot!(actions, | 1454 | assert_debug_snapshot!(actions, |
1459 | @r###" | 1455 | @r###" |
@@ -1519,7 +1515,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1519 | let s<|>t = (A(1), B(2), M::C(3) ); | 1515 | let s<|>t = (A(1), B(2), M::C(3) ); |
1520 | } | 1516 | } |
1521 | ", | 1517 | ", |
1522 | &["(A, B, C)"], | 1518 | "(A, B, C)", |
1523 | ); | 1519 | ); |
1524 | assert_debug_snapshot!(actions, | 1520 | assert_debug_snapshot!(actions, |
1525 | @r###" | 1521 | @r###" |
@@ -1602,7 +1598,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1602 | let s<|>t = foo(); | 1598 | let s<|>t = foo(); |
1603 | } | 1599 | } |
1604 | ", | 1600 | ", |
1605 | &["impl Foo"], | 1601 | "impl Foo", |
1606 | ); | 1602 | ); |
1607 | assert_debug_snapshot!(actions, | 1603 | assert_debug_snapshot!(actions, |
1608 | @r###" | 1604 | @r###" |
@@ -1648,7 +1644,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1648 | let s<|>t = foo(); | 1644 | let s<|>t = foo(); |
1649 | } | 1645 | } |
1650 | ", | 1646 | ", |
1651 | &["impl Foo<S>"], | 1647 | "impl Foo<S>", |
1652 | ); | 1648 | ); |
1653 | assert_debug_snapshot!(actions, | 1649 | assert_debug_snapshot!(actions, |
1654 | @r###" | 1650 | @r###" |
@@ -1713,7 +1709,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1713 | let s<|>t = foo(); | 1709 | let s<|>t = foo(); |
1714 | } | 1710 | } |
1715 | ", | 1711 | ", |
1716 | &["impl Foo + Bar"], | 1712 | "impl Foo + Bar", |
1717 | ); | 1713 | ); |
1718 | assert_debug_snapshot!(actions, | 1714 | assert_debug_snapshot!(actions, |
1719 | @r###" | 1715 | @r###" |
@@ -1780,7 +1776,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1780 | let s<|>t = foo(); | 1776 | let s<|>t = foo(); |
1781 | } | 1777 | } |
1782 | ", | 1778 | ", |
1783 | &["impl Foo<S1> + Bar<S2>"], | 1779 | "impl Foo<S1> + Bar<S2>", |
1784 | ); | 1780 | ); |
1785 | assert_debug_snapshot!(actions, | 1781 | assert_debug_snapshot!(actions, |
1786 | @r###" | 1782 | @r###" |
@@ -1877,7 +1873,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1877 | trait Foo {} | 1873 | trait Foo {} |
1878 | fn foo(ar<|>g: &impl Foo) {} | 1874 | fn foo(ar<|>g: &impl Foo) {} |
1879 | ", | 1875 | ", |
1880 | &["&impl Foo"], | 1876 | "&impl Foo", |
1881 | ); | 1877 | ); |
1882 | assert_debug_snapshot!(actions, | 1878 | assert_debug_snapshot!(actions, |
1883 | @r###" | 1879 | @r###" |
@@ -1920,7 +1916,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1920 | 1916 | ||
1921 | fn foo(ar<|>g: &impl Foo + Bar<S>) {} | 1917 | fn foo(ar<|>g: &impl Foo + Bar<S>) {} |
1922 | ", | 1918 | ", |
1923 | &["&impl Foo + Bar<S>"], | 1919 | "&impl Foo + Bar<S>", |
1924 | ); | 1920 | ); |
1925 | assert_debug_snapshot!(actions, | 1921 | assert_debug_snapshot!(actions, |
1926 | @r###" | 1922 | @r###" |
@@ -1999,7 +1995,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
1999 | struct S {} | 1995 | struct S {} |
2000 | fn foo(ar<|>g: &impl Foo<S>) {} | 1996 | fn foo(ar<|>g: &impl Foo<S>) {} |
2001 | ", | 1997 | ", |
2002 | &["&impl Foo<S>"], | 1998 | "&impl Foo<S>", |
2003 | ); | 1999 | ); |
2004 | assert_debug_snapshot!(actions, | 2000 | assert_debug_snapshot!(actions, |
2005 | @r###" | 2001 | @r###" |
@@ -2067,7 +2063,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
2067 | let s<|>t = foo(); | 2063 | let s<|>t = foo(); |
2068 | } | 2064 | } |
2069 | ", | 2065 | ", |
2070 | &["B<dyn Foo>"], | 2066 | "B<dyn Foo>", |
2071 | ); | 2067 | ); |
2072 | assert_debug_snapshot!(actions, | 2068 | assert_debug_snapshot!(actions, |
2073 | @r###" | 2069 | @r###" |
@@ -2126,7 +2122,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
2126 | trait Foo {} | 2122 | trait Foo {} |
2127 | fn foo(ar<|>g: &dyn Foo) {} | 2123 | fn foo(ar<|>g: &dyn Foo) {} |
2128 | ", | 2124 | ", |
2129 | &["&dyn Foo"], | 2125 | "&dyn Foo", |
2130 | ); | 2126 | ); |
2131 | assert_debug_snapshot!(actions, | 2127 | assert_debug_snapshot!(actions, |
2132 | @r###" | 2128 | @r###" |
@@ -2167,7 +2163,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
2167 | struct S {} | 2163 | struct S {} |
2168 | fn foo(ar<|>g: &dyn Foo<S>) {} | 2164 | fn foo(ar<|>g: &dyn Foo<S>) {} |
2169 | ", | 2165 | ", |
2170 | &["&dyn Foo<S>"], | 2166 | "&dyn Foo<S>", |
2171 | ); | 2167 | ); |
2172 | assert_debug_snapshot!(actions, | 2168 | assert_debug_snapshot!(actions, |
2173 | @r###" | 2169 | @r###" |
@@ -2230,7 +2226,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
2230 | 2226 | ||
2231 | fn foo(a<|>rg: &impl ImplTrait<B<dyn DynTrait<B<S>>>>) {} | 2227 | fn foo(a<|>rg: &impl ImplTrait<B<dyn DynTrait<B<S>>>>) {} |
2232 | ", | 2228 | ", |
2233 | &["&impl ImplTrait<B<dyn DynTrait<B<S>>>>"], | 2229 | "&impl ImplTrait<B<dyn DynTrait<B<S>>>>", |
2234 | ); | 2230 | ); |
2235 | assert_debug_snapshot!(actions, | 2231 | assert_debug_snapshot!(actions, |
2236 | @r###" | 2232 | @r###" |
@@ -2344,7 +2340,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
2344 | let s<|>t = test().get(); | 2340 | let s<|>t = test().get(); |
2345 | } | 2341 | } |
2346 | ", | 2342 | ", |
2347 | &["Foo::Item<impl Foo>"], | 2343 | "Foo::Item<impl Foo>", |
2348 | ); | 2344 | ); |
2349 | assert_debug_snapshot!(actions, | 2345 | assert_debug_snapshot!(actions, |
2350 | @r###" | 2346 | @r###" |