summary refs log tree commit diff
path: root/src/test/ui/coherence/coherence-overlap-downstream.rs
blob: c6ced7b80fd9d221cf4e900b371058363c7611ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Tests that we consider `T: Sugar + Fruit` to be ambiguous, even
// though no impls are found.

// revisions: old re

#![cfg_attr(re, feature(re_rebalance_coherence))]

pub trait Sugar {}
pub trait Fruit {}
pub trait Sweet {}
impl<T:Sugar> Sweet for T { }
impl<T:Fruit> Sweet for T { }
//[old]~^ ERROR E0119
//[re]~^^ ERROR E0119

pub trait Foo<X> {}
pub trait Bar<X> {}
impl<X, T> Foo<X> for T where T: Bar<X> {}
impl<X> Foo<X> for i32 {}
//[old]~^ ERROR E0119
//[re]~^^ ERROR E0119

fn main() { }