691 lines
10 KiB
Rust
691 lines
10 KiB
Rust
//! This library is used to gather all error codes into one place, to make
|
|
//! their maintenance easier.
|
|
|
|
// tidy-alphabetical-start
|
|
#![deny(rustdoc::invalid_codeblock_attributes)]
|
|
// tidy-alphabetical-end
|
|
|
|
// This higher-order macro defines the error codes that are in use. It is used
|
|
// in the `rustc_errors` crate. Removed error codes are listed in the comment
|
|
// below.
|
|
//
|
|
// /!\ IMPORTANT /!\
|
|
//
|
|
// Error code explanation are defined in `error_codes/EXXXX.md` files. They must follow the RFC
|
|
// 1567 available here:
|
|
// https://rust-lang.github.io/rfcs/1567-long-error-codes-explanation-normalization.html
|
|
//
|
|
// Also, the contents of this macro is checked by tidy (in `check_error_codes_docs`). If you change
|
|
// the macro syntax you will need to change tidy as well.
|
|
//
|
|
// Do *not* remove entries from this list. Instead, just add a note to the corresponding markdown
|
|
// file saying that this error is not emitted by the compiler any more (see E0001.md for an
|
|
// example), and remove all code examples that do not build any more by marking them
|
|
// with `ignore (no longer emitted)`.
|
|
#[macro_export]
|
|
#[rustfmt::skip]
|
|
macro_rules! error_codes {
|
|
($macro:path) => (
|
|
$macro!(
|
|
0001,
|
|
0002,
|
|
0004,
|
|
0005,
|
|
0007,
|
|
0009,
|
|
0010,
|
|
0013,
|
|
0014,
|
|
0015,
|
|
0023,
|
|
0025,
|
|
0026,
|
|
0027,
|
|
0029,
|
|
0030,
|
|
0033,
|
|
0034,
|
|
0038,
|
|
0040,
|
|
0044,
|
|
0045,
|
|
0046,
|
|
0049,
|
|
0050,
|
|
0053,
|
|
0054,
|
|
0055,
|
|
0057,
|
|
0059,
|
|
0060,
|
|
0061,
|
|
0062,
|
|
0063,
|
|
0067,
|
|
0069,
|
|
0070,
|
|
0071,
|
|
0072,
|
|
0073,
|
|
0074,
|
|
0075,
|
|
0076,
|
|
0077,
|
|
0080,
|
|
0081,
|
|
0084,
|
|
0087,
|
|
0088,
|
|
0089,
|
|
0090,
|
|
0091,
|
|
0092,
|
|
0093,
|
|
0094,
|
|
0106,
|
|
0107,
|
|
0109,
|
|
0110,
|
|
0116,
|
|
0117,
|
|
0118,
|
|
0119,
|
|
0120,
|
|
0121,
|
|
0124,
|
|
0128,
|
|
0130,
|
|
0131,
|
|
0132,
|
|
0133,
|
|
0136,
|
|
0137,
|
|
0138,
|
|
0139,
|
|
0152,
|
|
0154,
|
|
0158,
|
|
0161,
|
|
0162,
|
|
0164,
|
|
0165,
|
|
0170,
|
|
0178,
|
|
0183,
|
|
0184,
|
|
0185,
|
|
0186,
|
|
0191,
|
|
0192,
|
|
0193,
|
|
0195,
|
|
0197,
|
|
0198,
|
|
0199,
|
|
0200,
|
|
0201,
|
|
0203,
|
|
0204,
|
|
0205,
|
|
0206,
|
|
0207,
|
|
0208,
|
|
0210,
|
|
0211,
|
|
0212,
|
|
0214,
|
|
0220,
|
|
0221,
|
|
0222,
|
|
0223,
|
|
0224,
|
|
0225,
|
|
0226,
|
|
0227,
|
|
0228,
|
|
0229,
|
|
0230,
|
|
0231,
|
|
0232,
|
|
0243,
|
|
0244,
|
|
0251,
|
|
0252,
|
|
0253,
|
|
0254,
|
|
0255,
|
|
0256,
|
|
0259,
|
|
0260,
|
|
0261,
|
|
0262,
|
|
0263,
|
|
0264,
|
|
0267,
|
|
0268,
|
|
0271,
|
|
0275,
|
|
0276,
|
|
0277,
|
|
0281,
|
|
0282,
|
|
0283,
|
|
0284,
|
|
0297,
|
|
0301,
|
|
0302,
|
|
0303,
|
|
0307,
|
|
0308,
|
|
0309,
|
|
0310,
|
|
0311,
|
|
0312,
|
|
0316,
|
|
0317,
|
|
0320,
|
|
0321,
|
|
0322,
|
|
0323,
|
|
0324,
|
|
0325,
|
|
0326,
|
|
0328,
|
|
0329,
|
|
0364,
|
|
0365,
|
|
0366,
|
|
0367,
|
|
0368,
|
|
0369,
|
|
0370,
|
|
0371,
|
|
0373,
|
|
0374,
|
|
0375,
|
|
0376,
|
|
0377,
|
|
0378,
|
|
0379,
|
|
0380,
|
|
0381,
|
|
0382,
|
|
0383,
|
|
0384,
|
|
0386,
|
|
0387,
|
|
0388,
|
|
0389,
|
|
0390,
|
|
0391,
|
|
0392,
|
|
0393,
|
|
0398,
|
|
0399,
|
|
0401,
|
|
0403,
|
|
0404,
|
|
0405,
|
|
0407,
|
|
0408,
|
|
0409,
|
|
0411,
|
|
0412,
|
|
0415,
|
|
0416,
|
|
0422,
|
|
0423,
|
|
0424,
|
|
0425,
|
|
0426,
|
|
0428,
|
|
0429,
|
|
0430,
|
|
0431,
|
|
0432,
|
|
0433,
|
|
0434,
|
|
0435,
|
|
0436,
|
|
0437,
|
|
0438,
|
|
0439,
|
|
0445,
|
|
0446,
|
|
0447,
|
|
0448,
|
|
0449,
|
|
0451,
|
|
0452,
|
|
0453,
|
|
0454,
|
|
0455,
|
|
0457,
|
|
0458,
|
|
0459,
|
|
0460,
|
|
0461,
|
|
0462,
|
|
0463,
|
|
0464,
|
|
0466,
|
|
0468,
|
|
0469,
|
|
0472,
|
|
0476,
|
|
0477,
|
|
0478,
|
|
0482,
|
|
0491,
|
|
0492,
|
|
0493,
|
|
0495,
|
|
0496,
|
|
0497,
|
|
0498,
|
|
0499,
|
|
0500,
|
|
0501,
|
|
0502,
|
|
0503,
|
|
0504,
|
|
0505,
|
|
0506,
|
|
0507,
|
|
0508,
|
|
0509,
|
|
0510,
|
|
0511,
|
|
0512,
|
|
0514,
|
|
0515,
|
|
0516,
|
|
0517,
|
|
0518,
|
|
0519,
|
|
0520,
|
|
0521,
|
|
0522,
|
|
0523,
|
|
0524,
|
|
0525,
|
|
0527,
|
|
0528,
|
|
0529,
|
|
0530,
|
|
0531,
|
|
0532,
|
|
0533,
|
|
0534,
|
|
0535,
|
|
0536,
|
|
0537,
|
|
0538,
|
|
0539,
|
|
0541,
|
|
0542,
|
|
0543,
|
|
0544,
|
|
0545,
|
|
0546,
|
|
0547,
|
|
0549,
|
|
0550,
|
|
0551,
|
|
0552,
|
|
0554,
|
|
0556,
|
|
0557,
|
|
0559,
|
|
0560,
|
|
0561,
|
|
0562,
|
|
0565,
|
|
0566,
|
|
0567,
|
|
0568,
|
|
0569,
|
|
0570,
|
|
0571,
|
|
0572,
|
|
0573,
|
|
0574,
|
|
0575,
|
|
0576,
|
|
0577,
|
|
0578,
|
|
0579,
|
|
0580,
|
|
0581,
|
|
0582,
|
|
0583,
|
|
0584,
|
|
0585,
|
|
0586,
|
|
0587,
|
|
0588,
|
|
0589,
|
|
0590,
|
|
0591,
|
|
0592,
|
|
0593,
|
|
0594,
|
|
0595,
|
|
0596,
|
|
0597,
|
|
0599,
|
|
0600,
|
|
0601,
|
|
0602,
|
|
0603,
|
|
0604,
|
|
0605,
|
|
0606,
|
|
0607,
|
|
0608,
|
|
0609,
|
|
0610,
|
|
0614,
|
|
0615,
|
|
0616,
|
|
0617,
|
|
0618,
|
|
0619,
|
|
0620,
|
|
0621,
|
|
0622, // REMOVED: rustc-intrinsic ABI was removed
|
|
0623,
|
|
0624,
|
|
0625,
|
|
0626,
|
|
0627,
|
|
0628,
|
|
0631,
|
|
0632,
|
|
0633,
|
|
0634,
|
|
0635,
|
|
0636,
|
|
0637,
|
|
0638,
|
|
0639,
|
|
0640,
|
|
0641,
|
|
0642,
|
|
0643,
|
|
0644,
|
|
0646,
|
|
0647,
|
|
0648,
|
|
0657,
|
|
0658,
|
|
0659,
|
|
0660,
|
|
0661,
|
|
0662,
|
|
0663,
|
|
0664,
|
|
0665,
|
|
0666,
|
|
0667,
|
|
0668,
|
|
0669,
|
|
0670,
|
|
0671,
|
|
0687,
|
|
0688,
|
|
0689,
|
|
0690,
|
|
0691,
|
|
0692,
|
|
0693,
|
|
0695,
|
|
0696,
|
|
0697,
|
|
0698,
|
|
0699, // REMOVED: merged into generic inference var error
|
|
0700,
|
|
0701,
|
|
0703,
|
|
0704,
|
|
0705,
|
|
0706,
|
|
0708,
|
|
0710,
|
|
0712,
|
|
0713,
|
|
0714,
|
|
0715,
|
|
0716,
|
|
0711,
|
|
0717,
|
|
0718,
|
|
0719,
|
|
0720,
|
|
0722,
|
|
0724,
|
|
0725,
|
|
0726,
|
|
0727,
|
|
0728,
|
|
0729,
|
|
0730,
|
|
0731,
|
|
0732,
|
|
0733,
|
|
0734,
|
|
0735,
|
|
0736,
|
|
0737,
|
|
0739,
|
|
0740,
|
|
0741,
|
|
0742,
|
|
0743,
|
|
0744,
|
|
0745,
|
|
0746,
|
|
0747,
|
|
0748,
|
|
0749,
|
|
0750,
|
|
0751,
|
|
0752,
|
|
0753,
|
|
0754,
|
|
0755,
|
|
0756,
|
|
0757,
|
|
0758,
|
|
0759,
|
|
0760,
|
|
0761,
|
|
0762,
|
|
0763,
|
|
0764,
|
|
0765,
|
|
0766,
|
|
0767,
|
|
0768,
|
|
0769,
|
|
0770,
|
|
0771,
|
|
0772,
|
|
0773, // REMOVED: no longer an error
|
|
0774,
|
|
0775,
|
|
0776,
|
|
0777,
|
|
0778,
|
|
0779,
|
|
0780,
|
|
0781,
|
|
0782,
|
|
0783,
|
|
0784,
|
|
0785,
|
|
0786,
|
|
0787,
|
|
0788,
|
|
0789,
|
|
0790,
|
|
0791,
|
|
0792,
|
|
0793,
|
|
0794,
|
|
0795,
|
|
0796,
|
|
0797,
|
|
0798,
|
|
0799,
|
|
0800,
|
|
0801,
|
|
0802,
|
|
0803,
|
|
0804,
|
|
0805,
|
|
0806,
|
|
);
|
|
)
|
|
}
|
|
|
|
// Undocumented removed error codes. Note that many removed error codes are kept in the list above
|
|
// and marked as no-longer emitted with a note in the markdown file (see E0001 for an example).
|
|
// E0006, // merged with E0005
|
|
// E0008, // cannot bind by-move into a pattern guard
|
|
// E0019, // merged into E0015
|
|
// E0035, // merged into E0087/E0089
|
|
// E0036, // merged into E0087/E0089
|
|
// E0068,
|
|
// E0085,
|
|
// E0086,
|
|
// E0101, // replaced with E0282
|
|
// E0102, // replaced with E0282
|
|
// E0103,
|
|
// E0104,
|
|
// E0122, // bounds in type aliases are ignored, turned into proper lint
|
|
// E0123,
|
|
// E0127,
|
|
// E0129,
|
|
// E0134,
|
|
// E0135,
|
|
// E0141,
|
|
// E0153, // unused error code
|
|
// E0157, // unused error code
|
|
// E0159, // use of trait `{}` as struct constructor
|
|
// E0163, // merged into E0071
|
|
// E0167,
|
|
// E0168,
|
|
// E0172, // non-trait found in a type sum, moved to resolve
|
|
// E0173, // manual implementations of unboxed closure traits are experimental
|
|
// E0174,
|
|
// E0182, // merged into E0229
|
|
// E0187, // cannot infer the kind of the closure
|
|
// E0188, // can not cast an immutable reference to a mutable pointer
|
|
// E0189, // deprecated: can only cast a boxed pointer to a boxed object
|
|
// E0190, // deprecated: can only cast a &-pointer to an &-object
|
|
// E0194, // merged into E0403
|
|
// E0196, // cannot determine a type for this closure
|
|
// E0209, // builtin traits can only be implemented on structs or enums
|
|
// E0213, // associated types are not accepted in this context
|
|
// E0215, // angle-bracket notation is not stable with `Fn`
|
|
// E0216, // parenthetical notation is only stable with `Fn`
|
|
// E0217, // ambiguous associated type, defined in multiple supertraits
|
|
// E0218, // no associated type defined
|
|
// E0219, // associated type defined in higher-ranked supertrait
|
|
// E0233,
|
|
// E0234,
|
|
// E0235, // structure constructor specifies a structure of type but
|
|
// E0236, // no lang item for range syntax
|
|
// E0237, // no lang item for range syntax
|
|
// E0238, // parenthesized parameters may only be used with a trait
|
|
// E0239, // `next` method of `Iterator` trait has unexpected type
|
|
// E0240,
|
|
// E0241,
|
|
// E0242,
|
|
// E0245, // not a trait
|
|
// E0246, // invalid recursive type
|
|
// E0247,
|
|
// E0248, // value used as a type, now reported earlier during resolution
|
|
// // as E0412
|
|
// E0249,
|
|
// E0257,
|
|
// E0258,
|
|
// E0272, // on_unimplemented #0
|
|
// E0273, // on_unimplemented #1
|
|
// E0274, // on_unimplemented #2
|
|
// E0278, // requirement is not satisfied
|
|
// E0279,
|
|
// E0280, // changed to ICE
|
|
// E0285, // overflow evaluation builtin bounds
|
|
// E0296, // replaced with a generic attribute input check
|
|
// E0298, // cannot compare constants
|
|
// E0299, // mismatched types between arms
|
|
// E0300, // unexpanded macro
|
|
// E0304, // expected signed integer constant
|
|
// E0305, // expected constant
|
|
// E0313, // removed: found unreachable
|
|
// E0314, // closure outlives stack frame
|
|
// E0315, // cannot invoke closure outside of its lifetime
|
|
// E0319, // trait impls for defaulted traits allowed just for structs/enums
|
|
// E0372, // coherence not dyn-compatible
|
|
// E0385, // {} in an aliasable location
|
|
// E0402, // cannot use an outer type parameter in this context
|
|
// E0406, // merged into 420
|
|
// E0410, // merged into 408
|
|
// E0413, // merged into 530
|
|
// E0414, // merged into 530
|
|
// E0417, // merged into 532
|
|
// E0418, // merged into 532
|
|
// E0419, // merged into 531
|
|
// E0420, // merged into 532
|
|
// E0421, // merged into 531
|
|
// E0427, // merged into 530
|
|
// E0445, // merged into 446 and type privacy lints
|
|
// E0456, // plugin `..` is not available for triple `..`
|
|
// E0465, // removed: merged with E0464
|
|
// E0467, // removed
|
|
// E0470, // removed
|
|
// E0471, // constant evaluation error (in pattern)
|
|
// E0473, // dereference of reference outside its lifetime
|
|
// E0474, // captured variable `..` does not outlive the enclosing closure
|
|
// E0475, // index of slice outside its lifetime
|
|
// E0479, // the type `..` (provided as the value of a type parameter) is...
|
|
// E0480, // lifetime of method receiver does not outlive the method call
|
|
// E0481, // lifetime of function argument does not outlive the function call
|
|
// E0483, // lifetime of operand does not outlive the operation
|
|
// E0484, // reference is not valid at the time of borrow
|
|
// E0485, // automatically reference is not valid at the time of borrow
|
|
// E0486, // type of expression contains references that are not valid during..
|
|
// E0487, // unsafe use of destructor: destructor might be called while...
|
|
// E0488, // lifetime of variable does not enclose its declaration
|
|
// E0489, // type/lifetime parameter not in scope here
|
|
// E0490, // removed: unreachable
|
|
// E0526, // shuffle indices are not constant
|
|
// E0540, // multiple rustc_deprecated attributes
|
|
// E0548, // replaced with a generic attribute input check
|
|
// E0553, // multiple rustc_const_unstable attributes
|
|
// E0555, // replaced with a generic attribute input check
|
|
// E0558, // replaced with a generic attribute input check
|
|
// E0563, // cannot determine a type for this `impl Trait` removed in 6383de15
|
|
// E0564, // only named lifetimes are allowed in `impl Trait`,
|
|
// // but `{}` was found in the type `{}`
|
|
// E0598, // lifetime of {} is too short to guarantee its contents can be...
|
|
// E0611, // merged into E0616
|
|
// E0612, // merged into E0609
|
|
// E0613, // Removed (merged with E0609)
|
|
// E0629, // missing 'feature' (rustc_const_unstable)
|
|
// E0630, // rustc_const_unstable attribute must be paired with stable/unstable
|
|
// // attribute
|
|
// E0645, // trait aliases not finished
|
|
// E0694, // an unknown tool name found in scoped attributes
|
|
// E0702, // replaced with a generic attribute input check
|
|
// E0707, // multiple elided lifetimes used in arguments of `async fn`
|
|
// E0709, // multiple different lifetimes used in arguments of `async fn`
|
|
// E0721, // `await` keyword
|
|
// E0722, // replaced with a generic attribute input check
|
|
// E0723, // unstable feature in `const` context
|
|
// E0738, // Removed; errored on `#[track_caller] fn`s in `extern "Rust" { ... }`.
|
|
// E0744, // merged into E0728
|
|
// E0776, // Removed; `#[cmse_nonsecure_entry]` is now `extern "cmse-nonsecure-entry"`
|
|
// E0796, // unused error code. We use `static_mut_refs` lint instead.
|