1 #![warn(clippy::new_ret_no_self)]
22 // should not trigger the lint
23 pub fn new() -> impl R<Item = Self> {
35 // should not trigger the lint
36 pub fn new(_: String) -> impl R<Item = Self> {
48 // should trigger the lint
49 pub fn new(_: String) -> impl R<Item = u32> {
62 // should not trigger the lint
63 pub fn new(_: String) -> impl Q<Item = u32, Item2 = Self> {
71 // should not trigger lint
72 pub fn new() -> Self {
80 // should trigger lint
89 // should trigger lint
90 pub fn new(_: String) -> u32 {
95 struct TupleReturnerOk;
97 impl TupleReturnerOk {
98 // should not trigger lint
99 pub fn new() -> (Self, u32) {
104 struct TupleReturnerOk2;
106 impl TupleReturnerOk2 {
107 // should not trigger lint (it doesn't matter which element in the tuple is Self)
108 pub fn new() -> (u32, Self) {
113 struct TupleReturnerOk3;
115 impl TupleReturnerOk3 {
116 // should not trigger lint (tuple can contain multiple Self)
117 pub fn new() -> (Self, Self) {
122 struct TupleReturnerBad;
124 impl TupleReturnerBad {
125 // should trigger lint
126 pub fn new() -> (u32, u32) {
131 struct MutPointerReturnerOk;
133 impl MutPointerReturnerOk {
134 // should not trigger lint
135 pub fn new() -> *mut Self {
140 struct MutPointerReturnerOk2;
142 impl MutPointerReturnerOk2 {
143 // should not trigger lint
144 pub fn new() -> *const Self {
149 struct MutPointerReturnerBad;
151 impl MutPointerReturnerBad {
152 // should trigger lint
153 pub fn new() -> *mut V {
158 struct GenericReturnerOk;
160 impl GenericReturnerOk {
161 // should not trigger lint
162 pub fn new() -> Option<Self> {
167 struct GenericReturnerBad;
169 impl GenericReturnerBad {
170 // should trigger lint
171 pub fn new() -> Option<u32> {
176 struct NestedReturnerOk;
178 impl NestedReturnerOk {
179 // should not trigger lint
180 pub fn new() -> (Option<Self>, u32) {
185 struct NestedReturnerOk2;
187 impl NestedReturnerOk2 {
188 // should not trigger lint
189 pub fn new() -> ((Self, u32), u32) {
194 struct NestedReturnerOk3;
196 impl NestedReturnerOk3 {
197 // should not trigger lint
198 pub fn new() -> Option<(Self, u32)> {