rust/tests/ui/borrowck/argument_number_mismatch_ice.stderr
Esteban Küber 731c0e59a4 Account for trait/impl difference when suggesting changing argument from ref to mut ref
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.
2024-04-06 16:23:10 +00:00

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`.