From 26cca1c258a8946bfcd6d900077642d5f2be708c Mon Sep 17 00:00:00 2001 From: Alisdair Owens Date: Fri, 14 Aug 2015 21:33:40 +0100 Subject: [PATCH] Add extended diagnostics for E0248 --- src/librustc_typeck/diagnostics.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/librustc_typeck/diagnostics.rs b/src/librustc_typeck/diagnostics.rs index c24c9e9a255a..62804426df69 100644 --- a/src/librustc_typeck/diagnostics.rs +++ b/src/librustc_typeck/diagnostics.rs @@ -2365,6 +2365,25 @@ struct Bar { x: Foo } ``` "##, +E0248: r##" +This error indicates an attempt to use a value where a type is expected. For +example: + +``` +enum Foo { + Bar(u32) +} + +fn do_something(x: Foo::Bar) { } +``` + +In this example, we're attempting to take a type of `Foo::Bar` in the +do_something function. This is not legal: `Foo::Bar` is a value of type `Foo`, +not a distinct static type. Likewise, it's not legal to attempt to +`impl Foo::Bar`: instead, you must `impl Foo` and then pattern match to specify +behaviour for specific enum variants. +"##, + E0249: r##" This error indicates a constant expression for the array length was found, but it was not an integer (signed or unsigned) expression. @@ -2756,7 +2775,6 @@ register_diagnostics! { E0245, // not a trait E0246, // invalid recursive type E0247, // found module name used as a type - E0248, // found value name used as a type E0319, // trait impls for defaulted traits allowed just for structs/enums E0320, // recursive overflow during dropck E0321, // extended coherence rules for defaulted traits violated