diff options
| author | bors <bors@rust-lang.org> | 2021-09-01 09:06:24 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-09-01 09:06:24 +0000 |
| commit | 3ed6c1d23fd40f4367259a531465e809eb00ec27 (patch) | |
| tree | e2bba4bf1319aca82d661cee190109aa018f7603 /compiler/rustc_error_codes | |
| parent | 608b5e1c209ffb4d6d0cf83817c823b12bbb7659 (diff) | |
| parent | d31352961c30a123f2ccdb07d843d23943cf0bc4 (diff) | |
| download | rust-3ed6c1d23fd40f4367259a531465e809eb00ec27.tar.gz rust-3ed6c1d23fd40f4367259a531465e809eb00ec27.zip | |
Auto merge of #88556 - m-ou-se:rollup-q636wyd, r=m-ou-se
Rollup of 9 pull requests Successful merges: - #86376 (Emit specific warning to clarify that `#[no_mangle]` should not be applied on foreign statics or functions) - #88040 (BTree: remove Ord bound from new) - #88053 (Fix the flock fallback implementation) - #88350 (add support for clobbering xer, cr, and cr[0-7] for asm! on OpenPower/PowerPC) - #88410 (Remove bolding on associated constants) - #88525 (fix(rustc_typeck): produce better errors for dyn auto trait) - #88542 (Use the return value of readdir_r() instead of errno) - #88548 (Stabilize `Iterator::intersperse()`) - #88551 (Stabilize `UnsafeCell::raw_get()`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_error_codes')
| -rw-r--r-- | compiler/rustc_error_codes/src/error_codes.rs | 1 | ||||
| -rw-r--r-- | compiler/rustc_error_codes/src/error_codes/E0785.md | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes.rs b/compiler/rustc_error_codes/src/error_codes.rs index c2e62328cb1..45d91c2047d 100644 --- a/compiler/rustc_error_codes/src/error_codes.rs +++ b/compiler/rustc_error_codes/src/error_codes.rs @@ -480,6 +480,7 @@ E0781: include_str!("./error_codes/E0781.md"), E0782: include_str!("./error_codes/E0782.md"), E0783: include_str!("./error_codes/E0783.md"), E0784: include_str!("./error_codes/E0784.md"), +E0785: include_str!("./error_codes/E0785.md"), ; // E0006, // merged with E0005 // E0008, // cannot bind by-move into a pattern guard diff --git a/compiler/rustc_error_codes/src/error_codes/E0785.md b/compiler/rustc_error_codes/src/error_codes/E0785.md new file mode 100644 index 00000000000..373320539ef --- /dev/null +++ b/compiler/rustc_error_codes/src/error_codes/E0785.md @@ -0,0 +1,30 @@ +An inherent `impl` was written on a dyn auto trait. + +Erroneous code example: + +```compile_fail,E0785 +#![feature(auto_traits)] + +auto trait AutoTrait {} + +impl dyn AutoTrait {} +``` + +Dyn objects allow any number of auto traits, plus at most one non-auto trait. +The non-auto trait becomes the "principal trait". + +When checking if an impl on a dyn trait is coherent, the principal trait is +normally the only one considered. Since the erroneous code has no principal +trait, it cannot be implemented at all. + +Working example: + +``` +#![feature(auto_traits)] + +trait PrincipalTrait {} + +auto trait AutoTrait {} + +impl dyn PrincipalTrait + AutoTrait + Send {} +``` |
