| enum Enum { | 
 |     //~^ ERROR discriminant value `3` assigned more than once | 
 |     P = 3, | 
 |     //~^ NOTE `3` assigned here | 
 |     X = 3, | 
 |     //~^ NOTE `3` assigned here | 
 |     Y = 5 | 
 | } | 
 |  | 
 | #[repr(u8)] | 
 | enum EnumOverflowRepr { | 
 |     //~^ ERROR discriminant value `1` assigned more than once | 
 |     P = 257, | 
 |     //~^ NOTE `1` (overflowed from `257`) assigned here | 
 |     X = 513, | 
 |     //~^ NOTE `1` (overflowed from `513`) assigned here | 
 | } | 
 |  | 
 | #[repr(i8)] | 
 | enum NegDisEnum { | 
 |     //~^ ERROR discriminant value `-1` assigned more than once | 
 |     First = -1, | 
 |     //~^ NOTE `-1` assigned here | 
 |     Second = -2, | 
 |     //~^ NOTE discriminant for `Last` incremented from this startpoint (`Second` + 1 variant later => `Last` = -1) | 
 |     Last, | 
 |     //~^ NOTE `-1` assigned here | 
 | } | 
 |  | 
 | enum MultipleDuplicates { | 
 |     //~^ ERROR discriminant value `0` assigned more than once | 
 |     //~^^ ERROR discriminant value `-2` assigned more than once | 
 |     V0, | 
 |     //~^ NOTE `0` assigned here | 
 |     V1 = 0, | 
 |     //~^ NOTE `0` assigned here | 
 |     V2, | 
 |     V3, | 
 |     V4 = 0, | 
 |     //~^ NOTE `0` assigned here | 
 |     V5 = -2, | 
 |     //~^ NOTE discriminant for `V7` incremented from this startpoint (`V5` + 2 variants later => `V7` = 0) | 
 |     //~^^ NOTE `-2` assigned here | 
 |     V6, | 
 |     V7, | 
 |     //~^ NOTE `0` assigned here | 
 |     V8 = -3, | 
 |     //~^ NOTE discriminant for `V9` incremented from this startpoint (`V8` + 1 variant later => `V9` = -2) | 
 |     V9, | 
 |     //~^ NOTE `-2` assigned here | 
 | } | 
 |  | 
 | // Test for #131902 | 
 | // Ensure that casting an enum with too many variants for its repr | 
 | // does not ICE | 
 | #[repr(u8)] | 
 | enum TooManyVariants { | 
 |     //~^ ERROR discriminant value `0` assigned more than once | 
 |     X000, X001, X002, X003, X004, X005, X006, X007, X008, X009, | 
 |     //~^ NOTE `0` assigned here | 
 |     //~| NOTE discriminant for `X256` incremented from this startpoint | 
 |     X010, X011, X012, X013, X014, X015, X016, X017, X018, X019, | 
 |     X020, X021, X022, X023, X024, X025, X026, X027, X028, X029, | 
 |     X030, X031, X032, X033, X034, X035, X036, X037, X038, X039, | 
 |     X040, X041, X042, X043, X044, X045, X046, X047, X048, X049, | 
 |     X050, X051, X052, X053, X054, X055, X056, X057, X058, X059, | 
 |     X060, X061, X062, X063, X064, X065, X066, X067, X068, X069, | 
 |     X070, X071, X072, X073, X074, X075, X076, X077, X078, X079, | 
 |     X080, X081, X082, X083, X084, X085, X086, X087, X088, X089, | 
 |     X090, X091, X092, X093, X094, X095, X096, X097, X098, X099, | 
 |     X100, X101, X102, X103, X104, X105, X106, X107, X108, X109, | 
 |     X110, X111, X112, X113, X114, X115, X116, X117, X118, X119, | 
 |     X120, X121, X122, X123, X124, X125, X126, X127, X128, X129, | 
 |     X130, X131, X132, X133, X134, X135, X136, X137, X138, X139, | 
 |     X140, X141, X142, X143, X144, X145, X146, X147, X148, X149, | 
 |     X150, X151, X152, X153, X154, X155, X156, X157, X158, X159, | 
 |     X160, X161, X162, X163, X164, X165, X166, X167, X168, X169, | 
 |     X170, X171, X172, X173, X174, X175, X176, X177, X178, X179, | 
 |     X180, X181, X182, X183, X184, X185, X186, X187, X188, X189, | 
 |     X190, X191, X192, X193, X194, X195, X196, X197, X198, X199, | 
 |     X200, X201, X202, X203, X204, X205, X206, X207, X208, X209, | 
 |     X210, X211, X212, X213, X214, X215, X216, X217, X218, X219, | 
 |     X220, X221, X222, X223, X224, X225, X226, X227, X228, X229, | 
 |     X230, X231, X232, X233, X234, X235, X236, X237, X238, X239, | 
 |     X240, X241, X242, X243, X244, X245, X246, X247, X248, X249, | 
 |     X250, X251, X252, X253, X254, X255, | 
 |     X256, | 
 |     //~^ ERROR enum discriminant overflowed | 
 |     //~| NOTE overflowed on value after 255 | 
 |     //~| NOTE explicitly set `X256 = 0` | 
 |     //~| NOTE `0` assigned here | 
 | } | 
 |  | 
 | fn main() { | 
 |     TooManyVariants::X256 as u8; | 
 | } |