-
Notifications
You must be signed in to change notification settings - Fork 32
/
no-method-suggested-traits.rs
131 lines (115 loc) · 3.42 KB
/
no-method-suggested-traits.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//@ aux-build:no_method_suggested_traits.rs
extern crate no_method_suggested_traits;
struct Foo;
enum Bar { X }
mod foo {
pub trait Bar {
fn method(&self) {}
fn method2(&self) {}
}
impl Bar for u32 {}
impl Bar for char {}
}
fn main() {
// test the values themselves, and autoderef.
1u32.method();
//~^ ERROR no method named
//~|items from traits can only be used if the trait is in scope
std::rc::Rc::new(&mut Box::new(&1u32)).method();
//~^items from traits can only be used if the trait is in scope
//~| ERROR no method named `method` found for struct
'a'.method();
//~^ ERROR no method named
std::rc::Rc::new(&mut Box::new(&'a')).method();
//~^ ERROR no method named
1i32.method();
//~^ ERROR no method named
std::rc::Rc::new(&mut Box::new(&1i32)).method();
//~^ ERROR no method named
Foo.method();
//~^ ERROR no method named
std::rc::Rc::new(&mut Box::new(&Foo)).method();
//~^ ERROR no method named
1u64.method2();
//~^ ERROR no method named
std::rc::Rc::new(&mut Box::new(&1u64)).method2();
//~^ ERROR no method named
no_method_suggested_traits::Foo.method2();
//~^ ERROR no method named
std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Foo)).method2();
//~^ ERROR no method named
no_method_suggested_traits::Bar::X.method2();
//~^ ERROR no method named
std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Bar::X)).method2();
//~^ ERROR no method named
Foo.method3();
//~^ ERROR no method named
std::rc::Rc::new(&mut Box::new(&Foo)).method3();
//~^ ERROR no method named
Bar::X.method3();
//~^ ERROR no method named
std::rc::Rc::new(&mut Box::new(&Bar::X)).method3();
//~^ ERROR no method named
// should have no help:
1_usize.method3(); //~ ERROR no method named
std::rc::Rc::new(&mut Box::new(&1_usize)).method3(); //~ ERROR no method named
no_method_suggested_traits::Foo.method3(); //~ ERROR no method named
std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Foo)).method3();
//~^ ERROR no method named
no_method_suggested_traits::Bar::X.method3(); //~ ERROR no method named
std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Bar::X)).method3();
//~^ ERROR no method named
}
// ferrocene-annotations: fls_z7q8kbjwdc7g
// Method Call Expressions
//
// ferrocene-annotations: fls_9i5msiuuyihf
// Paths
//
// ferrocene-annotations: fls_wqazkzle0ix9
// Method Resolution
//
// ferrocene-annotations: fls_151r19d7xbgz
// Entities
//
// ferrocene-annotations: fls_izl8iuhoz9e0
// Scopes
//
// ferrocene-annotations: fls_6ozthochxz1i
// Binding Scopes
//
// ferrocene-annotations: fls_ftphlagzd2te
// Generic Parameter Scope
//
// ferrocene-annotations: fls_m0z7omni9hp0
// Item Scope
//
// ferrocene-annotations: fls_769b4p8v3cwu
// Label Scope
//
// ferrocene-annotations: fls_kgbi26212eof
// Self Scope
//
// ferrocene-annotations: fls_octf6sf7yso
// Textual Macro Scope
//
// ferrocene-annotations: fls_lnpyb285qdiy
// Scope Hierarchy
//
// ferrocene-annotations: fls_dq403wq5yrs
// Namespaces
//
// ferrocene-annotations: fls_ld0ize96cm6m
// Preludes
//
// ferrocene-annotations: fls_ydmnb7qnmzzq
// Shadowing
//
// ferrocene-annotations: fls_40xoego2thsp
// Resolution
//
// ferrocene-annotations: fls_i6qzga6dyaee
// Path Resolution
//
// ferrocene-annotations: fls_o9u2h5m17kpz
// Path Expression Resolution