blob: 373320539ef646611ee80d7bd457c9bab5e113a0 [file] [log] [blame] [view]
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 {}
```