File tree 4 files changed +113
-0
lines changed
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