]> git.proxmox.com Git - rustc.git/blame - src/test/compile-fail/coherence-projection-conflict-orphan.rs
Imported Upstream version 1.9.0+dfsg1
[rustc.git] / src / test / compile-fail / coherence-projection-conflict-orphan.rs
CommitLineData
9cc50fc6
SL
1// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2// file at the top-level directory of this distribution and at
3// http://rust-lang.org/COPYRIGHT.
4//
5// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8// option. This file may not be copied, modified, or distributed
9// except according to those terms.
10
11#![feature(rustc_attrs)]
12
13// Here we expect a coherence conflict because, even though `i32` does
14// not implement `Iterator`, we cannot rely on that negative reasoning
15// due to the orphan rules. Therefore, `A::Item` may yet turn out to
16// be `i32`.
17
18pub trait Foo<P> {}
19
20pub trait Bar {
21 type Output: 'static;
22}
23
54a0048b 24impl Foo<i32> for i32 { }
9cc50fc6 25
54a0048b 26impl<A:Iterator> Foo<A::Item> for A { } //~ ERROR E0119
9cc50fc6
SL
27
28fn main() {}