1 //! Generated file, do not edit by hand, see `xtask/src/codegen`
3 use super::check_doc_test;
6 fn doctest_add_explicit_type() {
23 fn doctest_add_hash() {
40 fn doctest_add_impl_default_members() {
42 "add_impl_default_members",
73 fn doctest_add_impl_missing_members() {
75 "add_impl_missing_members",
83 impl Trait<u32> for () {$0
94 impl Trait<u32> for () {
97 fn foo(&self) -> u32 {
106 fn doctest_add_lifetime_to_type() {
108 "add_lifetime_to_type",
125 fn doctest_add_turbo_fish() {
129 fn make<T>() -> T { todo!() }
135 fn make<T>() -> T { todo!() }
137 let x = make::<${0:_}>();
144 fn doctest_apply_demorgan() {
149 if x != 4 ||$0 y < 3.14 {}
154 if !(x == 4 && !(y < 3.14)) {}
161 fn doctest_auto_import() {
166 let map = HashMap$0::new();
168 pub mod std { pub mod collections { pub struct HashMap { } } }
171 use std::collections::HashMap;
174 let map = HashMap::new();
176 pub mod std { pub mod collections { pub struct HashMap { } } }
182 fn doctest_change_visibility() {
189 pub(crate) fn frobnicate() {}
195 fn doctest_convert_integer_literal() {
197 "convert_integer_literal",
202 const _: i32 = 0b1010;
208 fn doctest_convert_into_to_from() {
210 "convert_into_to_from",
212 //- /lib.rs crate:core
213 pub mod convert { pub trait Into<T> { pub fn into(self) -> T; } }
214 //- /lib.rs crate:main deps:core
215 use core::convert::Into;
216 impl $0Into<Thing> for usize {
217 fn into(self) -> Thing {
226 use core::convert::Into;
227 impl From<usize> for Thing {
228 fn from(val: usize) -> Self {
240 fn doctest_convert_iter_for_each_to_for() {
242 "convert_iter_for_each_to_for",
244 //- /lib.rs crate:core
245 pub mod iter { pub mod traits { pub mod iterator { pub trait Iterator {} } } }
247 impl self::iter::traits::iterator::Iterator for SomeIter {}
248 //- /lib.rs crate:main deps:core
252 iter.for_each$0(|(x, y)| {
253 println!("x: {}, y: {}", x, y);
262 println!("x: {}, y: {}", x, y);
270 fn doctest_convert_to_guarded_return() {
272 "convert_to_guarded_return",
294 fn doctest_convert_tuple_struct_to_named_struct() {
296 "convert_tuple_struct_to_named_struct",
298 struct Point$0(f32, f32);
301 pub fn new(x: f32, y: f32) -> Self {
305 pub fn x(&self) -> f32 {
309 pub fn y(&self) -> f32 {
315 struct Point { field1: f32, field2: f32 }
318 pub fn new(x: f32, y: f32) -> Self {
319 Point { field1: x, field2: y }
322 pub fn x(&self) -> f32 {
326 pub fn y(&self) -> f32 {
335 fn doctest_expand_glob_import() {
337 "expand_glob_import",
346 fn qux(bar: Bar, baz: Baz) {}
356 fn qux(bar: Bar, baz: Baz) {}
362 fn doctest_extract_function() {
380 fn $0fun_name(n: i32) {
389 fn doctest_extract_struct_from_enum_variant() {
391 "extract_struct_from_enum_variant",
393 enum A { $0One(u32, u32) }
396 struct One(pub u32, pub u32);
404 fn doctest_extract_type_alias() {
406 "extract_type_alias",
409 field: $0(u8, u8, u8)$0,
413 type $0Type = (u8, u8, u8);
423 fn doctest_extract_variable() {
433 let $0var_name = (1 + 2);
441 fn doctest_fill_match_arms() {
445 enum Action { Move { distance: u32 }, Stop }
447 fn handle(action: Action) {
454 enum Action { Move { distance: u32 }, Stop }
456 fn handle(action: Action) {
458 $0Action::Move { distance } => {}
467 fn doctest_fix_visibility() {
480 $0pub(crate) fn frobnicate() {}
490 fn doctest_flip_binexpr() {
507 fn doctest_flip_comma() {
524 fn doctest_flip_trait_bound() {
528 fn foo<T: Clone +$0 Copy>() { }
531 fn foo<T: Copy + Clone>() { }
537 fn doctest_generate_default_from_enum_variant() {
539 "generate_default_from_enum_variant",
554 impl Default for Version {
555 fn default() -> Self {
564 fn doctest_generate_default_from_new() {
566 "generate_default_from_new",
568 struct Example { _inner: () }
571 pub fn n$0ew() -> Self {
577 struct Example { _inner: () }
580 pub fn new() -> Self {
585 impl Default for Example {
586 fn default() -> Self {
595 fn doctest_generate_deref() {
610 impl std::ops::Deref for B {
613 fn deref(&self) -> &Self::Target {
622 fn doctest_generate_derive() {
642 fn doctest_generate_enum_as_method() {
644 "generate_enum_as_method",
658 fn as_text(&self) -> Option<&String> {
659 if let Self::Text(v) = self {
671 fn doctest_generate_enum_is_method() {
673 "generate_enum_is_method",
689 /// Returns `true` if the version is [`Minor`].
690 fn is_minor(&self) -> bool {
691 matches!(self, Self::Minor)
699 fn doctest_generate_enum_try_into_method() {
701 "generate_enum_try_into_method",
715 fn try_into_text(self) -> Result<String, Self> {
716 if let Self::Text(v) = self {
728 fn doctest_generate_from_impl_for_enum() {
730 "generate_from_impl_for_enum",
732 enum A { $0One(u32) }
737 impl From<u32> for A {
738 fn from(v: u32) -> Self {
747 fn doctest_generate_function() {
752 fn baz() -> Baz { Baz }
760 fn baz() -> Baz { Baz }
765 fn bar(arg: &str, baz: Baz) ${0:-> ()} {
774 fn doctest_generate_getter() {
788 /// Get a reference to the person's name.
789 fn $0name(&self) -> &str {
798 fn doctest_generate_getter_mut() {
800 "generate_getter_mut",
812 /// Get a mutable reference to the person's name.
813 fn $0name_mut(&mut self) -> &mut String {
822 fn doctest_generate_impl() {
826 struct Ctx<T: Clone> {
831 struct Ctx<T: Clone> {
835 impl<T: Clone> Ctx<T> {
843 fn doctest_generate_is_empty_from_len() {
845 "generate_is_empty_from_len",
847 struct MyStruct { data: Vec<String> }
850 p$0ub fn len(&self) -> usize {
856 struct MyStruct { data: Vec<String> }
859 pub fn len(&self) -> usize {
863 pub fn is_empty(&self) -> bool {
872 fn doctest_generate_new() {
876 struct Ctx<T: Clone> {
881 struct Ctx<T: Clone> {
885 impl<T: Clone> Ctx<T> {
886 fn $0new(data: T) -> Self { Self { data } }
893 fn doctest_generate_setter() {
907 /// Set the person's name.
908 fn set_name(&mut self, name: String) {
917 fn doctest_infer_function_return_type() {
919 "infer_function_return_type",
924 fn foo() -> i32 { 42i32 }
930 fn doctest_inline_function() {
934 fn add(a: u32, b: u32) -> u32 { a + b }
940 fn add(a: u32, b: u32) -> u32 { a + b }
953 fn doctest_inline_local_variable() {
955 "inline_local_variable",
971 fn doctest_introduce_named_lifetime() {
973 "introduce_named_lifetime",
976 fn node(self) -> &SyntaxNode {
978 Cursor::Replace(node) | Cursor::Before(node) => node,
984 impl<'a> Cursor<'a> {
985 fn node(self) -> &SyntaxNode {
987 Cursor::Replace(node) | Cursor::Before(node) => node,
996 fn doctest_invert_if() {
1001 if$0 !y { A } else { B }
1006 if y { B } else { A }
1013 fn doctest_make_raw_string() {
1030 fn doctest_make_usual_string() {
1032 "make_usual_string",
1035 r#"Hello,$0 "World!""#;
1040 "Hello, \"World!\"";
1047 fn doctest_merge_imports() {
1051 use std::$0fmt::Formatter;
1055 use std::{fmt::Formatter, io};
1061 fn doctest_merge_match_arms() {
1065 enum Action { Move { distance: u32 }, Stop }
1067 fn handle(action: Action) {
1069 $0Action::Move(..) => foo(),
1070 Action::Stop => foo(),
1075 enum Action { Move { distance: u32 }, Stop }
1077 fn handle(action: Action) {
1079 Action::Move(..) | Action::Stop => foo(),
1087 fn doctest_move_arm_cond_to_match_guard() {
1089 "move_arm_cond_to_match_guard",
1091 enum Action { Move { distance: u32 }, Stop }
1093 fn handle(action: Action) {
1095 Action::Move { distance } => $0if distance > 10 { foo() },
1101 enum Action { Move { distance: u32 }, Stop }
1103 fn handle(action: Action) {
1105 Action::Move { distance } if distance > 10 => foo(),
1114 fn doctest_move_bounds_to_where_clause() {
1116 "move_bounds_to_where_clause",
1118 fn apply<T, U, $0F: FnOnce(T) -> U>(f: F, x: T) -> U {
1123 fn apply<T, U, F>(f: F, x: T) -> U where F: FnOnce(T) -> U {
1131 fn doctest_move_guard_to_arm_body() {
1133 "move_guard_to_arm_body",
1135 enum Action { Move { distance: u32 }, Stop }
1137 fn handle(action: Action) {
1139 Action::Move { distance } $0if distance > 10 => foo(),
1145 enum Action { Move { distance: u32 }, Stop }
1147 fn handle(action: Action) {
1149 Action::Move { distance } => if distance > 10 {
1160 fn doctest_move_module_to_file() {
1162 "move_module_to_file",
1175 fn doctest_pull_assignment_up() {
1177 "pull_assignment_up",
1204 fn doctest_qualify_path() {
1209 let map = HashMap$0::new();
1211 pub mod std { pub mod collections { pub struct HashMap { } } }
1215 let map = std::collections::HashMap::new();
1217 pub mod std { pub mod collections { pub struct HashMap { } } }
1223 fn doctest_remove_dbg() {
1240 fn doctest_remove_hash() {
1245 r#"Hello,$0 World!"#;
1257 fn doctest_remove_mut() {
1262 fn feed(&mut$0 self, amount: u32) {}
1267 fn feed(&self, amount: u32) {}
1274 fn doctest_remove_unused_param() {
1276 "remove_unused_param",
1278 fn frobnicate(x: i32$0) {}
1295 fn doctest_reorder_fields() {
1299 struct Foo {foo: i32, bar: i32};
1300 const test: Foo = $0Foo {bar: 0, foo: 1}
1303 struct Foo {foo: i32, bar: i32};
1304 const test: Foo = Foo {foo: 1, bar: 0}
1310 fn doctest_reorder_impl() {
1321 $0impl Foo for Bar {
1345 fn doctest_replace_derive_with_manual_impl() {
1347 "replace_derive_with_manual_impl",
1349 trait Debug { fn fmt(&self, f: &mut Formatter) -> Result<()>; }
1350 #[derive(Deb$0ug, Display)]
1354 trait Debug { fn fmt(&self, f: &mut Formatter) -> Result<()>; }
1359 fn fmt(&self, f: &mut Formatter) -> Result<()> {
1368 fn doctest_replace_for_loop_with_for_each() {
1370 "replace_for_loop_with_for_each",
1373 let x = vec![1, 2, 3];
1381 let x = vec![1, 2, 3];
1382 x.into_iter().for_each(|v| {
1391 fn doctest_replace_if_let_with_match() {
1393 "replace_if_let_with_match",
1395 enum Action { Move { distance: u32 }, Stop }
1397 fn handle(action: Action) {
1398 $0if let Action::Move { distance } = action {
1406 enum Action { Move { distance: u32 }, Stop }
1408 fn handle(action: Action) {
1410 Action::Move { distance } => foo(distance),
1419 fn doctest_replace_impl_trait_with_generic() {
1421 "replace_impl_trait_with_generic",
1423 fn foo(bar: $0impl Bar) {}
1426 fn foo<B: Bar>(bar: B) {}
1432 fn doctest_replace_let_with_if_let() {
1434 "replace_let_with_if_let",
1436 enum Option<T> { Some(T), None }
1438 fn main(action: Action) {
1439 $0let x = compute();
1442 fn compute() -> Option<i32> { None }
1445 enum Option<T> { Some(T), None }
1447 fn main(action: Action) {
1448 if let Some(x) = compute() {
1452 fn compute() -> Option<i32> { None }
1458 fn doctest_replace_match_with_if_let() {
1460 "replace_match_with_if_let",
1462 enum Action { Move { distance: u32 }, Stop }
1464 fn handle(action: Action) {
1466 Action::Move { distance } => foo(distance),
1472 enum Action { Move { distance: u32 }, Stop }
1474 fn handle(action: Action) {
1475 if let Action::Move { distance } = action {
1486 fn doctest_replace_qualified_name_with_use() {
1488 "replace_qualified_name_with_use",
1490 fn process(map: std::collections::$0HashMap<String, String>) {}
1493 use std::collections::HashMap;
1495 fn process(map: HashMap<String, String>) {}
1501 fn doctest_replace_string_with_char() {
1503 "replace_string_with_char",
1518 fn doctest_replace_unwrap_with_match() {
1520 "replace_unwrap_with_match",
1522 enum Result<T, E> { Ok(T), Err(E) }
1524 let x: Result<i32, i32> = Result::Ok(92);
1525 let y = x.$0unwrap();
1529 enum Result<T, E> { Ok(T), Err(E) }
1531 let x: Result<i32, i32> = Result::Ok(92);
1534 $0_ => unreachable!(),
1542 fn doctest_split_import() {
1546 use std::$0collections::HashMap;
1549 use std::{collections::HashMap};
1555 fn doctest_toggle_ignore() {
1561 assert_eq!(2 + 2, 5);
1568 assert_eq!(2 + 2, 5);
1575 fn doctest_unmerge_use() {
1579 use std::fmt::{Debug, Display$0};
1582 use std::fmt::{Debug};
1583 use std::fmt::Display;
1589 fn doctest_unwrap_block() {
1608 fn doctest_wrap_return_type_in_result() {
1610 "wrap_return_type_in_result",
1612 fn foo() -> i32$0 { 42i32 }
1615 fn foo() -> Result<i32, ${0:_}> { Ok(42i32) }