From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- .../rustc_error_codes/src/error_codes/E0050.md | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 compiler/rustc_error_codes/src/error_codes/E0050.md (limited to 'compiler/rustc_error_codes/src/error_codes/E0050.md') diff --git a/compiler/rustc_error_codes/src/error_codes/E0050.md b/compiler/rustc_error_codes/src/error_codes/E0050.md new file mode 100644 index 000000000..7b84c4800 --- /dev/null +++ b/compiler/rustc_error_codes/src/error_codes/E0050.md @@ -0,0 +1,36 @@ +An attempted implementation of a trait method has the wrong number of function +parameters. + +Erroneous code example: + +```compile_fail,E0050 +trait Foo { + fn foo(&self, x: u8) -> bool; +} + +struct Bar; + +// error: method `foo` has 1 parameter but the declaration in trait `Foo::foo` +// has 2 +impl Foo for Bar { + fn foo(&self) -> bool { true } +} +``` + +For example, the `Foo` trait has a method `foo` with two function parameters +(`&self` and `u8`), but the implementation of `foo` for the type `Bar` omits +the `u8` parameter. To fix this error, they must have the same parameters: + +``` +trait Foo { + fn foo(&self, x: u8) -> bool; +} + +struct Bar; + +impl Foo for Bar { + fn foo(&self, x: u8) -> bool { // ok! + true + } +} +``` -- cgit v1.2.3