mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 23:34:48 +00:00
731c0e59a4
Do not ICE when encountering a lifetime error involving an argument with an immutable reference of a method that differs from the trait definition. Fix #123414.
25 lines
966 B
Plaintext
25 lines
966 B
Plaintext
error[E0185]: method `example` has a `&self` declaration in the impl, but not in the trait
|
|
--> $DIR/argument_number_mismatch_ice.rs:8:5
|
|
|
|
|
LL | fn example(val: ());
|
|
| -------------------- trait method declared without `&self`
|
|
...
|
|
LL | fn example(&self, input: &i32) {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&self` used in impl
|
|
|
|
error[E0594]: cannot assign to `*input`, which is behind a `&` reference
|
|
--> $DIR/argument_number_mismatch_ice.rs:10:9
|
|
|
|
|
LL | *input = self.0;
|
|
| ^^^^^^^^^^^^^^^ `input` is a `&` reference, so the data it refers to cannot be written
|
|
|
|
|
help: consider changing this to be a mutable reference in the `impl` method and the `trait` definition
|
|
|
|
|
LL | fn example(&self, input: &mut i32) {
|
|
| +++
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
Some errors have detailed explanations: E0185, E0594.
|
|
For more information about an error, try `rustc --explain E0185`.
|