From 5f2099d4af1a88c616fc2fae74c6429461de49fc Mon Sep 17 00:00:00 2001 From: ggomez Date: Thu, 12 May 2016 14:38:07 +0200 Subject: [PATCH] Add more details and examples in error code --- src/librustc_const_eval/diagnostics.rs | 13 +++++++++---- src/librustc_typeck/diagnostics.rs | 8 ++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/librustc_const_eval/diagnostics.rs b/src/librustc_const_eval/diagnostics.rs index c86c22b1e0f..457d25923c6 100644 --- a/src/librustc_const_eval/diagnostics.rs +++ b/src/librustc_const_eval/diagnostics.rs @@ -62,8 +62,6 @@ fn foo(x: Empty) { However, this won't: ```compile_fail -enum Empty {} - fn foo(x: Option) { match x { // empty @@ -191,7 +189,7 @@ enum Terminator { let x = Some("s".to_string()); match x { - op_string @ Some(s) => {}, + op_string @ Some(s) => {}, // error: cannot bind by-move with sub-bindings None => {}, } ``` @@ -288,7 +286,8 @@ struct X { x: (), } let x = Some((X { x: () }, X { x: () })); match x { - Some((y, ref z)) => {}, + Some((y, ref z)) => {}, // error: cannot bind by-move and by-ref in the + // same pattern None => panic!() } ``` @@ -574,6 +573,12 @@ enum Method { GET, POST } let x = [0i32; len]; // error: expected constant integer for repeat count, // found variable ``` + +Working example: + +``` +let x = [0i32; 10]; +``` "##, } diff --git a/src/librustc_typeck/diagnostics.rs b/src/librustc_typeck/diagnostics.rs index 05e4c79a7e8..ac23d6f57ea 100644 --- a/src/librustc_typeck/diagnostics.rs +++ b/src/librustc_typeck/diagnostics.rs @@ -45,8 +45,8 @@ enum Fruit { ```compile_fail enum Fruit { - Apple(String, String), - Pear(u32), + Fruit::Apple(String, String), + Fruit::Pear(u32), } let x = Fruit::Apple(String::new(), String::new()); @@ -77,8 +77,8 @@ enum Number { // Assuming x is a Number we can pattern match on its contents. match x { - Zero(inside) => {}, - One(inside) => {}, + Number::Zero(inside) => {}, + Number::One(inside) => {}, } ```