File tree Expand file tree Collapse file tree 3 files changed +78
-1
lines changed
branches/beta/src/test/compile-fail Expand file tree Collapse file tree 3 files changed +78
-1
lines changed Original file line number Diff line number Diff line change @@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
23
23
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
24
24
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
25
25
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26
- refs/heads/beta: 09af5036da4087569a033eea91c8b9dd63a079a0
26
+ refs/heads/beta: 8762fc31db55c641083bf31539da3f079877c8b1
27
27
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
28
28
refs/heads/tmp: e06d2ad9fcd5027bcaac5b08fc9aa39a49d0ecd3
29
29
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
Original file line number Diff line number Diff line change
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
+ // Check we do not select a private method or field when computing autoderefs
12
+
13
+ #![ feature( rustc_attrs) ]
14
+ #![ allow( unused) ]
15
+
16
+ pub struct Bar2 { i : i32 }
17
+ pub struct Baz2 ( i32 ) ;
18
+
19
+ impl Bar2 {
20
+ fn f ( & self ) { }
21
+ }
22
+
23
+ mod foo {
24
+ pub struct Bar { i : i32 }
25
+ pub struct Baz ( i32 ) ;
26
+
27
+ impl Bar {
28
+ fn f ( & self ) { }
29
+ }
30
+
31
+ impl :: std:: ops:: Deref for Bar {
32
+ type Target = :: Bar2 ;
33
+ fn deref ( & self ) -> & :: Bar2 { unimplemented ! ( ) }
34
+ }
35
+
36
+ impl :: std:: ops:: Deref for Baz {
37
+ type Target = :: Baz2 ;
38
+ fn deref ( & self ) -> & :: Baz2 { unimplemented ! ( ) }
39
+ }
40
+ }
41
+
42
+ fn f ( bar : foo:: Bar , baz : foo:: Baz ) {
43
+ let _ = bar. i ;
44
+ let _ = baz. 0 ;
45
+ let _ = bar. f ( ) ;
46
+ }
47
+
48
+ #[ rustc_error]
49
+ fn main ( ) { } //~ ERROR compilation successful
Original file line number Diff line number Diff line change
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
+ mod foo {
12
+ pub struct Foo ;
13
+ impl Foo {
14
+ fn bar ( & self ) { }
15
+ }
16
+
17
+ pub trait Baz {
18
+ fn bar ( & self ) -> bool { }
19
+ }
20
+ impl Baz for Foo { }
21
+ }
22
+
23
+ fn main ( ) {
24
+ use foo:: Baz ;
25
+
26
+ // Check that `bar` resolves to the trait method, not the inherent impl method.
27
+ let _: ( ) = foo:: Foo . bar ( ) ; //~ ERROR mismatched types
28
+ }
You can’t perform that action at this time.
0 commit comments