Correctly populate trait impl map when checking for impl overlaps

Also fix an existing compile-fail test which was intended to cover
this case.

This closes issue #17593
This commit is contained in:
Brian Koropoff 2014-09-28 14:17:22 -07:00
parent 34dfa45718
commit cab84be812
2 changed files with 5 additions and 3 deletions

View File

@ -49,8 +49,8 @@ impl<'cx, 'tcx> OverlapChecker<'cx, 'tcx> {
// FIXME -- it seems like this method actually pushes
// duplicate impls onto the list
ty::populate_implementations_for_type_if_necessary(self.tcx,
trait_def_id);
ty::populate_implementations_for_trait_if_necessary(self.tcx,
trait_def_id);
let mut impls = Vec::new();
self.push_impls_of_trait(trait_def_id, &mut impls);

View File

@ -15,7 +15,9 @@
extern crate trait_impl_conflict;
use trait_impl_conflict::Foo;
impl<A> Foo for A { //~ ERROR E0117
impl<A> Foo for A {
//~^ ERROR E0117
//~^^ ERROR E0119
}
fn main() {