From 1a3c8c8964ec44c81fee69fbe25cbd8910909284 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 15 Nov 2019 13:20:17 +0100 Subject: [PATCH] Clean up E0050 --- src/librustc_error_codes/error_codes/E0050.md | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/librustc_error_codes/error_codes/E0050.md b/src/librustc_error_codes/error_codes/E0050.md index 79d070802d3..7b84c480073 100644 --- a/src/librustc_error_codes/error_codes/E0050.md +++ b/src/librustc_error_codes/error_codes/E0050.md @@ -1,9 +1,7 @@ -This error indicates that an attempted implementation of a trait method -has the wrong number of function parameters. +An attempted implementation of a trait method has the wrong number of function +parameters. -For example, the trait below has a method `foo` with two function parameters -(`&self` and `u8`), but the implementation of `foo` for the type `Bar` omits -the `u8` parameter: +Erroneous code example: ```compile_fail,E0050 trait Foo { @@ -18,3 +16,21 @@ 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 + } +} +``` -- 2.44.0