From 4bd6ebcc31bc68925742d2cb21095b5c76e7976c Mon Sep 17 00:00:00 2001 From: Ayush Kumar Mishra Date: Sat, 14 Mar 2020 16:01:03 +0530 Subject: [PATCH 1/3] Add long error explanation for E0634 #61137 --- src/librustc_error_codes/error_codes.rs | 2 +- src/librustc_error_codes/error_codes/E0634.md | 20 +++++++++++++++++++ src/test/ui/conflicting-repr-hints.stderr | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/librustc_error_codes/error_codes/E0634.md diff --git a/src/librustc_error_codes/error_codes.rs b/src/librustc_error_codes/error_codes.rs index 11d1209923fb2..eba18c5a005d0 100644 --- a/src/librustc_error_codes/error_codes.rs +++ b/src/librustc_error_codes/error_codes.rs @@ -351,6 +351,7 @@ E0626: include_str!("./error_codes/E0626.md"), E0627: include_str!("./error_codes/E0627.md"), E0631: include_str!("./error_codes/E0631.md"), E0633: include_str!("./error_codes/E0633.md"), +E0634: include_str!("./error_codes/E0634.md"), E0635: include_str!("./error_codes/E0635.md"), E0636: include_str!("./error_codes/E0636.md"), E0637: include_str!("./error_codes/E0637.md"), @@ -587,7 +588,6 @@ E0748: include_str!("./error_codes/E0748.md"), E0630, E0632, // cannot provide explicit generic arguments when `impl Trait` is // used in argument position - E0634, // type has conflicting packed representaton hints E0640, // infer outlives requirements // E0645, // trait aliases not finished E0657, // `impl Trait` can only capture lifetimes bound at the fn level diff --git a/src/librustc_error_codes/error_codes/E0634.md b/src/librustc_error_codes/error_codes/E0634.md new file mode 100644 index 0000000000000..5057aa6094e1b --- /dev/null +++ b/src/librustc_error_codes/error_codes/E0634.md @@ -0,0 +1,20 @@ +A type has conflicting `packed` representation hint. + +Erroneous code examples: + +```compile_fail,E0634 +#[repr(packed, packed(2))] // error! +struct Company(i32); + +#[repr(packed(2))] // error! +#[repr(packed)] +struct Company(i32); +``` + +You cannot use conflicting `packed` hint on a same type. If you want to pack a +type to a given size, you should provide a size to packed: + +``` +#[repr(packed)] // ok! +struct Company(i32); +``` diff --git a/src/test/ui/conflicting-repr-hints.stderr b/src/test/ui/conflicting-repr-hints.stderr index 43b76bf649778..0b78532c73751 100644 --- a/src/test/ui/conflicting-repr-hints.stderr +++ b/src/test/ui/conflicting-repr-hints.stderr @@ -76,5 +76,5 @@ LL | | } error: aborting due to 10 previous errors -Some errors have detailed explanations: E0566, E0587. +Some errors have detailed explanations: E0566, E0587, E0634. For more information about an error, try `rustc --explain E0566`. From 5760db14f91352d543fe352c989faa80606e7a0a Mon Sep 17 00:00:00 2001 From: Ayush Mishra Date: Sun, 15 Mar 2020 06:49:45 +0530 Subject: [PATCH 2/3] Update src/librustc_error_codes/error_codes/E0634.md Co-Authored-By: Dylan DPC --- src/librustc_error_codes/error_codes/E0634.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librustc_error_codes/error_codes/E0634.md b/src/librustc_error_codes/error_codes/E0634.md index 5057aa6094e1b..9f61d882cb131 100644 --- a/src/librustc_error_codes/error_codes/E0634.md +++ b/src/librustc_error_codes/error_codes/E0634.md @@ -1,4 +1,4 @@ -A type has conflicting `packed` representation hint. +A type has conflicting `packed` representation hints. Erroneous code examples: From 2974685f09d7123c1605028dc1ae2422589d0f15 Mon Sep 17 00:00:00 2001 From: Ayush Mishra Date: Sun, 15 Mar 2020 06:49:54 +0530 Subject: [PATCH 3/3] Update src/librustc_error_codes/error_codes/E0634.md Co-Authored-By: Dylan DPC --- src/librustc_error_codes/error_codes/E0634.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librustc_error_codes/error_codes/E0634.md b/src/librustc_error_codes/error_codes/E0634.md index 9f61d882cb131..0c4ed2596e2aa 100644 --- a/src/librustc_error_codes/error_codes/E0634.md +++ b/src/librustc_error_codes/error_codes/E0634.md @@ -11,7 +11,7 @@ struct Company(i32); struct Company(i32); ``` -You cannot use conflicting `packed` hint on a same type. If you want to pack a +You cannot use conflicting `packed` hints on a same type. If you want to pack a type to a given size, you should provide a size to packed: ```