]> git.proxmox.com Git - rustc.git/blame - src/test/compile-fail/type-mismatch-same-crate-name.rs
Imported Upstream version 1.5.0+dfsg1
[rustc.git] / src / test / compile-fail / type-mismatch-same-crate-name.rs
CommitLineData
e9174d1e
SL
1// Copyright 2014 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// aux-build:crate_a1.rs
12// aux-build:crate_a2.rs
13
14// This tests the extra note reported when a type error deals with
15// seemingly identical types.
16// The main use case of this error is when there are two crates
17// (generally different versions of the same crate) with the same name
18// causing a type mismatch. Here, we simulate that error using block-scoped
19// aliased `extern crate` declarations.
20
21fn main() {
22 let foo2 = {extern crate crate_a2 as a; a::Foo};
23 let bar2 = {extern crate crate_a2 as a; a::bar()};
24 {
25 extern crate crate_a1 as a;
26 a::try_foo(foo2); //~ ERROR mismatched types
27 //~^ HELP run
28 //~^^ NOTE Perhaps two different versions of crate `crate_a1`
29 a::try_bar(bar2); //~ ERROR mismatched types
30 //~^ HELP run
31 //~^^ NOTE Perhaps two different versions of crate `crate_a1`
32 }
33}