]> git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/default_trait_access.fixed
New upstream version 1.74.1+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / default_trait_access.fixed
1 //@aux-build: proc_macros.rs
2 #![deny(clippy::default_trait_access)]
3 #![allow(dead_code, unused_imports)]
4 #![allow(clippy::uninlined_format_args)]
5
6 extern crate proc_macros;
7
8 use proc_macros::with_span;
9 use std::default::Default as D2;
10 use std::{default, string};
11
12 fn main() {
13 let s1: String = String::default();
14
15 let s2 = String::default();
16
17 let s3: String = String::default();
18
19 let s4: String = String::default();
20
21 let s5 = string::String::default();
22
23 let s6: String = String::default();
24
25 let s7 = std::string::String::default();
26
27 let s8: String = DefaultFactory::make_t_badly();
28
29 let s9: String = DefaultFactory::make_t_nicely();
30
31 let s10 = DerivedDefault::default();
32
33 let s11: GenericDerivedDefault<String> = GenericDerivedDefault::default();
34
35 let s12 = GenericDerivedDefault::<String>::default();
36
37 let s13 = TupleDerivedDefault::default();
38
39 let s14: TupleDerivedDefault = TupleDerivedDefault::default();
40
41 let s15: ArrayDerivedDefault = ArrayDerivedDefault::default();
42
43 let s16 = ArrayDerivedDefault::default();
44
45 let s17: TupleStructDerivedDefault = TupleStructDerivedDefault::default();
46
47 let s18 = TupleStructDerivedDefault::default();
48
49 let s19 = <DerivedDefault as Default>::default();
50
51 let s20 = UpdateSyntax {
52 s: "foo",
53 ..Default::default()
54 };
55
56 let _s21: String = with_span!(s Default::default());
57
58 println!(
59 "[{}] [{}] [{}] [{}] [{}] [{}] [{}] [{}] [{}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}]",
60 s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20,
61 );
62 }
63
64 struct DefaultFactory;
65
66 impl DefaultFactory {
67 pub fn make_t_badly<T: Default>() -> T {
68 Default::default()
69 }
70
71 pub fn make_t_nicely<T: Default>() -> T {
72 T::default()
73 }
74 }
75
76 #[derive(Debug, Default)]
77 struct DerivedDefault {
78 pub s: String,
79 }
80
81 #[derive(Debug, Default)]
82 struct GenericDerivedDefault<T: Default + std::fmt::Debug> {
83 pub s: T,
84 }
85
86 #[derive(Debug, Default)]
87 struct TupleDerivedDefault {
88 pub s: (String, String),
89 }
90
91 #[derive(Debug, Default)]
92 struct ArrayDerivedDefault {
93 pub s: [String; 10],
94 }
95
96 #[derive(Debug, Default)]
97 struct TupleStructDerivedDefault(String);
98
99 #[derive(Debug, Default)]
100 struct UpdateSyntax {
101 pub s: &'static str,
102 pub u: u64,
103 }