File tree Expand file tree Collapse file tree 4 files changed +113
-0
lines changed Expand file tree Collapse file tree 4 files changed +113
-0
lines changed Original file line number Diff line number Diff line change 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+ //! "compile-fail/svh-uta-trait.rs" is checking that we detect a
12+ //! change from `use foo::TraitB` to use `foo::TraitB` in the hash
13+ //! (SVH) computation (#14132), since that will affect method
14+ //! resolution.
15+ //!
16+ //! This is the upstream crate.
17+
18+ #![ crate_id = "uta" ]
19+
20+ mod traits {
21+ pub trait TraitA { fn val ( & self ) -> int { 2 } }
22+ pub trait TraitB { fn val ( & self ) -> int { 3 } }
23+ }
24+
25+ impl traits:: TraitA for ( ) { }
26+ impl traits:: TraitB for ( ) { }
27+
28+ pub fn foo < T > ( _: int ) -> int {
29+ use traits:: TraitA ;
30+ let v = ( ) ;
31+ v. val ( )
32+ }
Original file line number Diff line number Diff line change 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+ //! "compile-fail/svh-uta-trait.rs" is checking that we detect a
12+ //! change from `use foo::TraitB` to use `foo::TraitB` in the hash
13+ //! (SVH) computation (#14132), since that will affect method
14+ //! resolution.
15+ //!
16+ //! This is the upstream crate.
17+
18+ #![ crate_id = "uta" ]
19+
20+ mod traits {
21+ pub trait TraitA { fn val ( & self ) -> int { 2 } }
22+ pub trait TraitB { fn val ( & self ) -> int { 3 } }
23+ }
24+
25+ impl traits:: TraitA for ( ) { }
26+ impl traits:: TraitB for ( ) { }
27+
28+ pub fn foo < T > ( _: int ) -> int {
29+ use traits:: TraitB ;
30+ let v = ( ) ;
31+ v. val ( )
32+ }
Original file line number Diff line number Diff line change 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+ //! "compile-fail/svh-uta-trait.rs" is checking that we detect a
12+ //! change from `use foo::TraitB` to use `foo::TraitB` in the hash
13+ //! (SVH) computation (#14132), since that will affect method
14+ //! resolution.
15+ //!
16+ //! This is the downstream crate.
17+
18+ #![ crate_id = "utb" ]
19+
20+ extern crate uta;
21+
22+ pub fn foo ( ) { assert_eq ! ( uta:: foo:: <( ) >( 0 ) , 3 ) ; }
Original file line number Diff line number Diff line change 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+ // note that these aux-build directives must be in this order
12+ // aux-build:svh-uta-base.rs
13+ // aux-build:svh-utb.rs
14+ // aux-build:svh-uta-change-use-trait.rs
15+
16+ //! "compile-fail/svh-uta-trait.rs" is checking that we detect a
17+ //! change from `use foo::TraitB` to use `foo::TraitB` in the hash
18+ //! (SVH) computation (#14132), since that will affect method
19+ //! resolution.
20+
21+ extern crate uta;
22+ extern crate utb; //~ ERROR: found possibly newer version of crate `uta` which `utb` depends
23+ //~^ NOTE: perhaps this crate needs to be recompiled
24+
25+ fn main ( ) {
26+ utb:: foo ( )
27+ }
You can’t perform that action at this time.
0 commit comments