Skip to content

Commit 2a2c08b

Browse files
committed
Clean up lookup_op_method
1 parent c42eb8c commit 2a2c08b

File tree

3 files changed

+25
-26
lines changed

3 files changed

+25
-26
lines changed

compiler/rustc_hir_typeck/src/op.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -865,12 +865,11 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
865865

866866
fn lookup_op_method(
867867
&self,
868-
lhs: (&'tcx hir::Expr<'tcx>, Ty<'tcx>),
868+
(lhs_expr, lhs_ty): (&'tcx hir::Expr<'tcx>, Ty<'tcx>),
869869
opt_rhs: Option<(&'tcx hir::Expr<'tcx>, Ty<'tcx>)>,
870870
op: Op,
871871
expected: Expectation<'tcx>,
872872
) -> Result<MethodCallee<'tcx>, Vec<FulfillmentError<'tcx>>> {
873-
let (lhs_expr, lhs_ty) = lhs;
874873
let span = match op {
875874
Op::Binary(op, _) => op.span,
876875
Op::Unary(_, span) => span,

tests/ui/binop/binary-op-suggest-deref.stderr

+23-23
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error[E0308]: mismatched types
2-
--> $DIR/binary-op-suggest-deref.rs:8:12
2+
--> $DIR/binary-op-suggest-deref.rs:6:12
33
|
44
LL | if i < 0 {}
55
| ^ expected `&i64`, found integer
@@ -10,7 +10,7 @@ LL | if *i < 0 {}
1010
| +
1111

1212
error[E0277]: can't compare `&&{integer}` with `{integer}`
13-
--> $DIR/binary-op-suggest-deref.rs:17:13
13+
--> $DIR/binary-op-suggest-deref.rs:15:13
1414
|
1515
LL | _ = foo == 0;
1616
| ^^ no implementation for `&&{integer} == {integer}`
@@ -32,7 +32,7 @@ LL | _ = **foo == 0;
3232
| ++
3333

3434
error[E0277]: can't compare `&{integer}` with `{integer}`
35-
--> $DIR/binary-op-suggest-deref.rs:19:13
35+
--> $DIR/binary-op-suggest-deref.rs:17:13
3636
|
3737
LL | _ = foo == &0;
3838
| ^^ no implementation for `&{integer} == {integer}`
@@ -55,7 +55,7 @@ LL | _ = *foo == &0;
5555
| +
5656

5757
error[E0277]: can't compare `&&&&&&{integer}` with `{integer}`
58-
--> $DIR/binary-op-suggest-deref.rs:21:17
58+
--> $DIR/binary-op-suggest-deref.rs:19:17
5959
|
6060
LL | _ = &&&&foo == 0;
6161
| ^^ no implementation for `&&&&&&{integer} == {integer}`
@@ -78,7 +78,7 @@ LL + _ = **foo == 0;
7878
|
7979

8080
error[E0277]: can't compare `&{integer}` with `{integer}`
81-
--> $DIR/binary-op-suggest-deref.rs:23:14
81+
--> $DIR/binary-op-suggest-deref.rs:21:14
8282
|
8383
LL | _ = *foo == 0;
8484
| ^^ no implementation for `&{integer} == {integer}`
@@ -100,7 +100,7 @@ LL | _ = **foo == 0;
100100
| +
101101

102102
error[E0277]: can't compare `&&{integer}` with `{integer}`
103-
--> $DIR/binary-op-suggest-deref.rs:25:15
103+
--> $DIR/binary-op-suggest-deref.rs:23:15
104104
|
105105
LL | _ = &&foo == &&0;
106106
| ^^ no implementation for `&&{integer} == {integer}`
@@ -126,7 +126,7 @@ LL + _ = foo == &&0;
126126
|
127127

128128
error[E0277]: can't compare `&Box<{integer}>` with `{integer}`
129-
--> $DIR/binary-op-suggest-deref.rs:27:23
129+
--> $DIR/binary-op-suggest-deref.rs:25:23
130130
|
131131
LL | _ = &Box::new(42) == 42;
132132
| ^^ no implementation for `&Box<{integer}> == {integer}`
@@ -140,7 +140,7 @@ LL + _ = *Box::new(42) == 42;
140140
|
141141

142142
error[E0277]: can't compare `&Box<&Box<&{integer}>>` with `{integer}`
143-
--> $DIR/binary-op-suggest-deref.rs:29:35
143+
--> $DIR/binary-op-suggest-deref.rs:27:35
144144
|
145145
LL | _ = &Box::new(&Box::new(&42)) == 42;
146146
| ^^ no implementation for `&Box<&Box<&{integer}>> == {integer}`
@@ -154,7 +154,7 @@ LL + _ = ****Box::new(&Box::new(&42)) == 42;
154154
|
155155

156156
error[E0277]: can't compare `{integer}` with `&&{integer}`
157-
--> $DIR/binary-op-suggest-deref.rs:33:11
157+
--> $DIR/binary-op-suggest-deref.rs:31:11
158158
|
159159
LL | _ = 0 == foo;
160160
| ^^ no implementation for `{integer} == &&{integer}`
@@ -176,7 +176,7 @@ LL | _ = 0 == **foo;
176176
| ++
177177

178178
error[E0277]: can't compare `{integer}` with `&{integer}`
179-
--> $DIR/binary-op-suggest-deref.rs:35:12
179+
--> $DIR/binary-op-suggest-deref.rs:33:12
180180
|
181181
LL | _ = &0 == foo;
182182
| ^^ no implementation for `{integer} == &{integer}`
@@ -199,7 +199,7 @@ LL | _ = &0 == *foo;
199199
| +
200200

201201
error[E0277]: can't compare `{integer}` with `&&&&&&{integer}`
202-
--> $DIR/binary-op-suggest-deref.rs:37:11
202+
--> $DIR/binary-op-suggest-deref.rs:35:11
203203
|
204204
LL | _ = 0 == &&&&foo;
205205
| ^^ no implementation for `{integer} == &&&&&&{integer}`
@@ -222,7 +222,7 @@ LL + _ = 0 == **foo;
222222
|
223223

224224
error[E0277]: can't compare `{integer}` with `&{integer}`
225-
--> $DIR/binary-op-suggest-deref.rs:39:11
225+
--> $DIR/binary-op-suggest-deref.rs:37:11
226226
|
227227
LL | _ = 0 == *foo;
228228
| ^^ no implementation for `{integer} == &{integer}`
@@ -244,7 +244,7 @@ LL | _ = 0 == **foo;
244244
| +
245245

246246
error[E0277]: can't compare `{integer}` with `&&{integer}`
247-
--> $DIR/binary-op-suggest-deref.rs:41:13
247+
--> $DIR/binary-op-suggest-deref.rs:39:13
248248
|
249249
LL | _ = &&0 == &&foo;
250250
| ^^ no implementation for `{integer} == &&{integer}`
@@ -270,7 +270,7 @@ LL + _ = &&0 == foo;
270270
|
271271

272272
error[E0277]: can't compare `Box<Box<{integer}>>` with `&&{integer}`
273-
--> $DIR/binary-op-suggest-deref.rs:45:33
273+
--> $DIR/binary-op-suggest-deref.rs:43:33
274274
|
275275
LL | _ = &Box::new(Box::new(42)) == &foo;
276276
| ^^ no implementation for `Box<Box<{integer}>> == &&{integer}`
@@ -286,7 +286,7 @@ LL + _ = **Box::new(Box::new(42)) == **foo;
286286
|
287287

288288
error[E0277]: can't compare `Box<{integer}>` with `&&{integer}`
289-
--> $DIR/binary-op-suggest-deref.rs:47:23
289+
--> $DIR/binary-op-suggest-deref.rs:45:23
290290
|
291291
LL | _ = &Box::new(42) == &foo;
292292
| ^^ no implementation for `Box<{integer}> == &&{integer}`
@@ -302,7 +302,7 @@ LL + _ = *Box::new(42) == **foo;
302302
|
303303

304304
error[E0277]: can't compare `Box<Box<Box<Box<{integer}>>>>` with `&&{integer}`
305-
--> $DIR/binary-op-suggest-deref.rs:49:53
305+
--> $DIR/binary-op-suggest-deref.rs:47:53
306306
|
307307
LL | _ = &Box::new(Box::new(Box::new(Box::new(42)))) == &foo;
308308
| ^^ no implementation for `Box<Box<Box<Box<{integer}>>>> == &&{integer}`
@@ -318,7 +318,7 @@ LL + _ = ****Box::new(Box::new(Box::new(Box::new(42)))) == **foo;
318318
|
319319

320320
error[E0277]: can't compare `&&{integer}` with `Box<Box<Box<Box<{integer}>>>>`
321-
--> $DIR/binary-op-suggest-deref.rs:51:14
321+
--> $DIR/binary-op-suggest-deref.rs:49:14
322322
|
323323
LL | _ = &foo == &Box::new(Box::new(Box::new(Box::new(42))));
324324
| ^^ no implementation for `&&{integer} == Box<Box<Box<Box<{integer}>>>>`
@@ -342,7 +342,7 @@ LL + _ = **foo == ****Box::new(Box::new(Box::new(Box::new(42))));
342342
|
343343

344344
error[E0308]: mismatched types
345-
--> $DIR/binary-op-suggest-deref.rs:55:25
345+
--> $DIR/binary-op-suggest-deref.rs:53:25
346346
|
347347
LL | _ = Box::new(42) == 42;
348348
| ------------ ^^ expected `Box<{integer}>`, found integer
@@ -358,7 +358,7 @@ LL | _ = Box::new(42) == Box::new(42);
358358
| +++++++++ +
359359

360360
error[E0277]: can't compare `&&{integer}` with `Foo`
361-
--> $DIR/binary-op-suggest-deref.rs:60:13
361+
--> $DIR/binary-op-suggest-deref.rs:58:13
362362
|
363363
LL | _ = &&0 == Foo;
364364
| ^^ no implementation for `&&{integer} == Foo`
@@ -376,15 +376,15 @@ LL | _ = &&0 == Foo;
376376
and 6 others
377377

378378
error[E0369]: binary operation `==` cannot be applied to type `Foo`
379-
--> $DIR/binary-op-suggest-deref.rs:62:13
379+
--> $DIR/binary-op-suggest-deref.rs:60:13
380380
|
381381
LL | _ = Foo == &&0;
382382
| --- ^^ --- &&{integer}
383383
| |
384384
| Foo
385385
|
386386
note: an implementation of `PartialEq<&&{integer}>` might be missing for `Foo`
387-
--> $DIR/binary-op-suggest-deref.rs:59:5
387+
--> $DIR/binary-op-suggest-deref.rs:57:5
388388
|
389389
LL | struct Foo;
390390
| ^^^^^^^^^^ must implement `PartialEq<&&{integer}>`
@@ -395,7 +395,7 @@ LL | struct Foo;
395395
|
396396

397397
error[E0277]: can't compare `&String` with `str`
398-
--> $DIR/binary-op-suggest-deref.rs:71:20
398+
--> $DIR/binary-op-suggest-deref.rs:69:20
399399
|
400400
LL | _ = string_ref == partial[..3];
401401
| ^^ no implementation for `&String == str`
@@ -412,7 +412,7 @@ LL | _ = *string_ref == partial[..3];
412412
| +
413413

414414
error[E0277]: can't compare `str` with `&String`
415-
--> $DIR/binary-op-suggest-deref.rs:73:22
415+
--> $DIR/binary-op-suggest-deref.rs:71:22
416416
|
417417
LL | _ = partial[..3] == string_ref;
418418
| ^^ no implementation for `str == &String`

tests/ui/dst/issue-113447.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error[E0277]: can't compare `&[u8; 1]` with `[{integer}; 1]`
2-
--> $DIR/issue-113447.rs:24:20
2+
--> $DIR/issue-113447.rs:22:20
33
|
44
LL | let _ = &[0u8] == [0xAA];
55
| ^^ no implementation for `&[u8; 1] == [{integer}; 1]`

0 commit comments

Comments
 (0)