mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-29 02:03:53 +00:00
Add some extended errors.
This commit is contained in:
parent
9f59f7e052
commit
9a4401fe82
@ -10,21 +10,49 @@
|
|||||||
|
|
||||||
#![allow(non_snake_case)]
|
#![allow(non_snake_case)]
|
||||||
|
|
||||||
register_diagnostic! { E0001, r##"
|
register_long_diagnostics! {
|
||||||
|
E0001: r##"
|
||||||
This error suggests that the expression arm corresponding to the noted pattern
|
This error suggests that the expression arm corresponding to the noted pattern
|
||||||
will never be reached as for all possible values of the expression being matched,
|
will never be reached as for all possible values of the expression being matched,
|
||||||
one of the preceeding patterns will match.
|
one of the preceeding patterns will match.
|
||||||
|
|
||||||
This means that perhaps some of the preceeding patterns are too general, this
|
This means that perhaps some of the preceeding patterns are too general, this
|
||||||
one is too specific or the ordering is incorrect.
|
one is too specific or the ordering is incorrect.
|
||||||
"## }
|
"##,
|
||||||
|
|
||||||
|
E0003: r##"
|
||||||
|
Not-a-Number (NaN) values can not be compared for equality and hence can never match
|
||||||
|
the input to a match expression. To match against NaN values, you should instead use
|
||||||
|
the `is_nan` method in a guard, as in: x if x.is_nan() => ...
|
||||||
|
"##,
|
||||||
|
|
||||||
|
E0004: r##"
|
||||||
|
This error indicates that the compiler can not guarantee a matching pattern for one
|
||||||
|
or more possible inputs to a match expression. Guaranteed matches are required in order
|
||||||
|
to assign values to match expressions, or alternatively, determine the flow of execution.
|
||||||
|
|
||||||
|
If you encounter this error you must alter your patterns so that every possible value of
|
||||||
|
the input type is matched. For types with a small number of variants (like enums) you
|
||||||
|
should probably cover all cases explicitly. Alternatively, the underscore `_` wildcard
|
||||||
|
pattern can be added after all other patterns to match "anything else".
|
||||||
|
"##,
|
||||||
|
|
||||||
|
// FIXME: Remove duplication here?
|
||||||
|
E0005: r##"
|
||||||
|
Patterns used to bind names must be irrefutable, that is, they must guarantee that a
|
||||||
|
name will be extracted in all cases. If you encounter this error you probably need
|
||||||
|
to use a `match` or `if let` to deal with the possibility of failure.
|
||||||
|
"##,
|
||||||
|
|
||||||
|
E0006: r##"
|
||||||
|
Patterns used to bind names must be irrefutable, that is, they must guarantee that a
|
||||||
|
name will be extracted in all cases. If you encounter this error you probably need
|
||||||
|
to use a `match` or `if let` to deal with the possibility of failure.
|
||||||
|
"##
|
||||||
|
}
|
||||||
|
|
||||||
register_diagnostics! {
|
register_diagnostics! {
|
||||||
E0002,
|
E0002,
|
||||||
E0003,
|
|
||||||
E0004,
|
|
||||||
E0005,
|
|
||||||
E0006,
|
|
||||||
E0007,
|
E0007,
|
||||||
E0008,
|
E0008,
|
||||||
E0009,
|
E0009,
|
||||||
|
@ -59,3 +59,9 @@ macro_rules! register_diagnostics {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[macro_export]
|
||||||
|
macro_rules! register_long_diagnostics {
|
||||||
|
($($code:tt: $description:tt),*) => (
|
||||||
|
$(register_diagnostic! { $code, $description })*
|
||||||
|
)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user