about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorAaron Turon <aturon@mozilla.com>2015-12-01 11:26:47 -0800
committerAaron Turon <aturon@mozilla.com>2015-12-16 09:47:23 -0800
commitbc33dd7ac4d4fdc2d14c6da4cce62e82a4f94f86 (patch)
tree34efcc5e77c2680caaf8b706dee43e52297654ca /src/rustllvm/RustWrapper.cpp
parented121aa89780d1495e6a6a215b8e0cf7894a2d24 (diff)
downloadrust-bc33dd7ac4d4fdc2d14c6da4cce62e82a4f94f86.tar.gz
rust-bc33dd7ac4d4fdc2d14c6da4cce62e82a4f94f86.zip
Provide overlapping types for coherence errors
Currently, a coherence error based on overlapping impls simply mentions
the trait, and points to the two conflicting impls:

```
error: conflicting implementations for trait `Foo`
```

With this commit, the error will include all input types to the
trait (including the `Self` type) after unification between the
overlapping impls. In other words, the error message will provide
feedback with full type details, like:

```
error: conflicting implementations of trait `Foo<u32>` for type `u8`:
```

When the `Self` type for the two impls unify to an inference variable,
it is elided in the output, since "for type `_`" is just noise in that
case.

Closes #23980
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions