From 7b75c346d56e07634effc56acebac8c0698773b1 Mon Sep 17 00:00:00 2001 From: Ayush Kumar Mishra Date: Tue, 10 Mar 2020 02:04:48 +0530 Subject: [PATCH 1/5] Add long error explanation for E0628 #61137 --- src/librustc_error_codes/error_codes.rs | 2 +- src/librustc_error_codes/error_codes/E0628.md | 30 +++++++++++++++++++ .../ui/generator/too-many-parameters.stderr | 1 + 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/librustc_error_codes/error_codes/E0628.md diff --git a/src/librustc_error_codes/error_codes.rs b/src/librustc_error_codes/error_codes.rs index 11d1209923fb2..57fb236d9d6f5 100644 --- a/src/librustc_error_codes/error_codes.rs +++ b/src/librustc_error_codes/error_codes.rs @@ -349,6 +349,7 @@ E0623: include_str!("./error_codes/E0623.md"), E0624: include_str!("./error_codes/E0624.md"), E0626: include_str!("./error_codes/E0626.md"), E0627: include_str!("./error_codes/E0627.md"), +E0628: include_str!("./error_codes/E0628.md"), E0631: include_str!("./error_codes/E0631.md"), E0633: include_str!("./error_codes/E0633.md"), E0635: include_str!("./error_codes/E0635.md"), @@ -580,7 +581,6 @@ E0748: include_str!("./error_codes/E0748.md"), // E0612, // merged into E0609 // E0613, // Removed (merged with E0609) E0625, // thread-local statics cannot be accessed at compile-time - E0628, // generators cannot have explicit parameters E0629, // missing 'feature' (rustc_const_unstable) // rustc_const_unstable attribute must be paired with stable/unstable // attribute diff --git a/src/librustc_error_codes/error_codes/E0628.md b/src/librustc_error_codes/error_codes/E0628.md new file mode 100644 index 0000000000000..8aa0724bac7e5 --- /dev/null +++ b/src/librustc_error_codes/error_codes/E0628.md @@ -0,0 +1,30 @@ +More than one parameter was used for a generator. + +Erroneous code example: + +```compile_fail,E0628 +#![feature(generators, generator_trait)] + +fn main() { + let generator = |a: i32, b: i32| { + // error: too many parameters for a generator + // Allowed only 0 or 1 parameter + yield a; + }; +} +``` + +At present, it is not permitted to pass more than one explicit +parameter for a generator.This can be fixed by using only +0 or 1 parameter for generator. So, for example, we might resolve +the previous example by passing only one parameter. + +``` +#![feature(generators, generator_trait)] + +fn main() { + let generator = |a: i32| { + yield a; + }; +} +``` diff --git a/src/test/ui/generator/too-many-parameters.stderr b/src/test/ui/generator/too-many-parameters.stderr index a297ee43de969..22d40db3f2678 100644 --- a/src/test/ui/generator/too-many-parameters.stderr +++ b/src/test/ui/generator/too-many-parameters.stderr @@ -6,3 +6,4 @@ LL | |(), ()| { error: aborting due to previous error +For more information about this error, try `rustc --explain E0628`. From 1305ae6813d66a5c2898f67224d20d00604f37a7 Mon Sep 17 00:00:00 2001 From: Ayush Mishra Date: Fri, 13 Mar 2020 08:14:32 +0530 Subject: [PATCH 2/5] Update src/librustc_error_codes/error_codes/E0628.md Co-Authored-By: Dylan DPC --- src/librustc_error_codes/error_codes/E0628.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librustc_error_codes/error_codes/E0628.md b/src/librustc_error_codes/error_codes/E0628.md index 8aa0724bac7e5..75214d69b8859 100644 --- a/src/librustc_error_codes/error_codes/E0628.md +++ b/src/librustc_error_codes/error_codes/E0628.md @@ -15,7 +15,7 @@ fn main() { ``` At present, it is not permitted to pass more than one explicit -parameter for a generator.This can be fixed by using only +parameter for a generator.This can be fixed by using 0 or 1 parameter for generator. So, for example, we might resolve the previous example by passing only one parameter. From f7fcb589cf88bdd10f8573554de065142f9e5e70 Mon Sep 17 00:00:00 2001 From: Ayush Mishra Date: Fri, 13 Mar 2020 08:14:45 +0530 Subject: [PATCH 3/5] Update src/librustc_error_codes/error_codes/E0628.md Co-Authored-By: Dylan DPC --- src/librustc_error_codes/error_codes/E0628.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librustc_error_codes/error_codes/E0628.md b/src/librustc_error_codes/error_codes/E0628.md index 75214d69b8859..40040c9a56aac 100644 --- a/src/librustc_error_codes/error_codes/E0628.md +++ b/src/librustc_error_codes/error_codes/E0628.md @@ -16,7 +16,7 @@ fn main() { At present, it is not permitted to pass more than one explicit parameter for a generator.This can be fixed by using -0 or 1 parameter for generator. So, for example, we might resolve +at most 1 parameter for the generator. For example, we might resolve the previous example by passing only one parameter. ``` From 00c6abe92fdde4d2385413b656ad34e883c54fbc Mon Sep 17 00:00:00 2001 From: Ayush Kumar Mishra Date: Fri, 13 Mar 2020 10:49:49 +0530 Subject: [PATCH 4/5] Minor change --- src/librustc_error_codes/error_codes/E0628.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librustc_error_codes/error_codes/E0628.md b/src/librustc_error_codes/error_codes/E0628.md index 40040c9a56aac..2ae4d833fd5a2 100644 --- a/src/librustc_error_codes/error_codes/E0628.md +++ b/src/librustc_error_codes/error_codes/E0628.md @@ -16,7 +16,7 @@ fn main() { At present, it is not permitted to pass more than one explicit parameter for a generator.This can be fixed by using -at most 1 parameter for the generator. For example, we might resolve +at most one parameter for the generator. For example, we might resolve the previous example by passing only one parameter. ``` From c33c88bcbd5d9d41262f23d637fcad1ec3ab7c53 Mon Sep 17 00:00:00 2001 From: Ayush Kumar Mishra Date: Fri, 13 Mar 2020 10:52:41 +0530 Subject: [PATCH 5/5] Minor change --- src/librustc_error_codes/error_codes/E0628.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librustc_error_codes/error_codes/E0628.md b/src/librustc_error_codes/error_codes/E0628.md index 2ae4d833fd5a2..40040c9a56aac 100644 --- a/src/librustc_error_codes/error_codes/E0628.md +++ b/src/librustc_error_codes/error_codes/E0628.md @@ -16,7 +16,7 @@ fn main() { At present, it is not permitted to pass more than one explicit parameter for a generator.This can be fixed by using -at most one parameter for the generator. For example, we might resolve +at most 1 parameter for the generator. For example, we might resolve the previous example by passing only one parameter. ```