9
9
// except according to those terms.
10
10
11
11
#![ crate_name = "test" ]
12
- #![ allow( unstable) ]
13
- #![ feature( box_syntax, rustc_private, core, zero_one) ]
12
+ #![ feature( box_syntax) ]
13
+ #![ feature( rustc_private) ]
14
+
14
15
15
16
extern crate graphviz;
16
17
// A simple rust project
17
18
19
+ extern crate krate2;
20
+ extern crate krate2 as krate3;
18
21
extern crate flate as myflate;
19
22
23
+ use graphviz:: RenderOption ;
20
24
use std:: collections:: { HashMap , HashSet } ;
21
25
use std:: cell:: RefCell ;
26
+ use std:: io:: Write ;
22
27
23
28
24
29
use sub:: sub2 as msalias;
25
30
use sub:: sub2;
26
31
use sub:: sub2:: nested_struct as sub_struct;
27
- use std:: num:: One ;
28
32
29
33
use std:: mem:: size_of;
30
34
35
+ use std:: char:: from_u32;
36
+
31
37
static uni: & ' static str = "Les Miséééééééérables" ;
32
38
static yy: usize = 25 ;
33
39
34
- static bob: Option < & ' static [ isize ] > = None ;
40
+ static bob: Option < graphviz :: RenderOption > = None ;
35
41
36
42
// buglink test - see issue #1337.
37
43
38
44
fn test_alias < I : Iterator > ( i : Option < <I as Iterator >:: Item > ) {
39
- let s = sub_struct { field2 : 45 , } ;
45
+ let s = sub_struct { field2 : 45u32 , } ;
40
46
41
47
// import tests
42
- fn foo ( x : & One ) { }
48
+ fn foo ( x : & Write ) { }
49
+ let _: Option < _ > = from_u32 ( 45 ) ;
43
50
44
- let x = 42 ;
51
+ let x = 42usize ;
45
52
53
+ krate2:: hello ( ) ;
54
+ krate3:: hello ( ) ;
46
55
myflate:: deflate_bytes ( & [ ] ) ;
47
56
48
- let x = ( 3 , 4 ) ;
57
+ let x = ( 3isize , 4usize ) ;
49
58
let y = x. 1 ;
50
59
}
51
60
@@ -55,15 +64,21 @@ fn test_tup_struct(x: TupStruct) -> isize {
55
64
x. 1
56
65
}
57
66
67
+ fn println ( s : & str ) {
68
+ std:: io:: stdout ( ) . write_all ( s. as_bytes ( ) ) ;
69
+ }
70
+
58
71
mod sub {
59
72
pub mod sub2 {
73
+ use std:: io:: Write ;
60
74
pub mod sub3 {
75
+ use std:: io:: Write ;
61
76
pub fn hello ( ) {
62
- println ! ( "hello from module 3" ) ;
77
+ :: println ( "hello from module 3" ) ;
63
78
}
64
79
}
65
80
pub fn hello ( ) {
66
- println ! ( "hello from a module" ) ;
81
+ :: println ( "hello from a module" ) ;
67
82
}
68
83
69
84
pub struct nested_struct {
@@ -93,14 +108,14 @@ struct some_fields {
93
108
type SF = some_fields ;
94
109
95
110
trait SuperTrait {
96
- fn dummy ( & self ) { }
111
+ fn qux ( & self ) { panic ! ( ) ; }
97
112
}
98
113
99
114
trait SomeTrait : SuperTrait {
100
115
fn Method ( & self , x : u32 ) -> u32 ;
101
116
102
117
fn prov ( & self , x : u32 ) -> u32 {
103
- println ! ( "{}" , & x. to_string( ) ) ;
118
+ println ( & x. to_string ( ) ) ;
104
119
42
105
120
}
106
121
fn provided_method ( & self ) -> u32 {
@@ -116,7 +131,7 @@ trait SubTrait: SomeTrait {
116
131
117
132
impl SomeTrait for some_fields {
118
133
fn Method ( & self , x : u32 ) -> u32 {
119
- println ! ( "{}" , & x. to_string( ) ) ;
134
+ println ( & x. to_string ( ) ) ;
120
135
self . field1
121
136
}
122
137
}
@@ -128,14 +143,15 @@ impl SubTrait for some_fields {}
128
143
129
144
impl some_fields {
130
145
fn stat ( x : u32 ) -> u32 {
131
- println ! ( "{}" , & x. to_string( ) ) ;
146
+ println ( & x. to_string ( ) ) ;
132
147
42
133
148
}
134
149
fn stat2 ( x : & some_fields ) -> u32 {
135
150
42
136
151
}
137
152
138
153
fn align_to < T > ( & mut self ) {
154
+
139
155
}
140
156
141
157
fn test ( & mut self ) {
@@ -188,61 +204,58 @@ enum SomeStructEnum {
188
204
189
205
fn matchSomeEnum ( val : SomeEnum ) {
190
206
match val {
191
- SomeEnum :: Ints ( int1, int2) => { println ! ( "{}" , & ( int1+int2) . to_string( ) ) ; }
192
- SomeEnum :: Floats ( float1, float2) => { println ! ( "{}" , & ( float2* float1) . to_string( ) ) ; }
193
- SomeEnum :: Strings ( _, _, s3) => { println ! ( "{}" , s3) ; }
194
- SomeEnum :: MyTypes ( mt1, mt2) => {
195
- println ! ( "{}" , & ( mt1. field1 - mt2. field1) . to_string( ) ) ;
196
- }
207
+ SomeEnum :: Ints ( int1, int2) => { println ( & ( int1+int2) . to_string ( ) ) ; }
208
+ SomeEnum :: Floats ( float1, float2) => { println ( & ( float2* float1) . to_string ( ) ) ; }
209
+ SomeEnum :: Strings ( _, _, s3) => { println ( s3) ; }
210
+ SomeEnum :: MyTypes ( mt1, mt2) => { println ( & ( mt1. field1 - mt2. field1 ) . to_string ( ) ) ; }
197
211
}
198
212
}
199
213
200
214
fn matchSomeStructEnum ( se : SomeStructEnum ) {
201
215
match se {
202
- SomeStructEnum :: EnumStruct { a : a, ..} => println ! ( "{}" , & a. to_string( ) ) ,
203
- SomeStructEnum :: EnumStruct2 { f1 : f1, f2 : f_2} => println ! ( "{}" , & f_2. field1. to_string( ) ) ,
204
- SomeStructEnum :: EnumStruct3 { f1, ..} => println ! ( "{}" , & f1. field1. to_string( ) ) ,
216
+ SomeStructEnum :: EnumStruct { a : a, ..} => println ( & a. to_string ( ) ) ,
217
+ SomeStructEnum :: EnumStruct2 { f1 : f1, f2 : f_2} => println ( & f_2. field1 . to_string ( ) ) ,
218
+ SomeStructEnum :: EnumStruct3 { f1, ..} => println ( & f1. field1 . to_string ( ) ) ,
205
219
}
206
220
}
207
221
208
222
209
223
fn matchSomeStructEnum2 ( se : SomeStructEnum ) {
210
224
use SomeStructEnum :: * ;
211
225
match se {
212
- EnumStruct { a : ref aaa, ..} => println ! ( "{}" , & aaa. to_string( ) ) ,
213
- EnumStruct2 { f1, f2 : f2} => println ! ( "{}" , & f1. field1. to_string( ) ) ,
214
- EnumStruct3 { f1, f3 : SomeEnum :: Ints ( _, _) , f2} => println ! ( "{}" , & f1. field1. to_string( ) ) ,
226
+ EnumStruct { a : ref aaa, ..} => println ( & aaa. to_string ( ) ) ,
227
+ EnumStruct2 { f1, f2 : f2} => println ( & f1. field1 . to_string ( ) ) ,
228
+ EnumStruct3 { f1, f3 : SomeEnum :: Ints ( _, _) , f2} => println ( & f1. field1 . to_string ( ) ) ,
215
229
_ => { } ,
216
230
}
217
231
}
218
232
219
233
fn matchSomeOtherEnum ( val : SomeOtherEnum ) {
220
234
use SomeOtherEnum :: { SomeConst2 , SomeConst3 } ;
221
235
match val {
222
- SomeOtherEnum :: SomeConst1 => { println ! ( "I'm const1." ) ; }
223
- SomeConst2 | SomeConst3 => { println ! ( "I'm const2 or const3." ) ; }
236
+ SomeOtherEnum :: SomeConst1 => { println ( "I'm const1." ) ; }
237
+ SomeConst2 | SomeConst3 => { println ( "I'm const2 or const3." ) ; }
224
238
}
225
239
}
226
240
227
241
fn hello < X : SomeTrait > ( ( z, a) : ( u32 , String ) , ex : X ) {
228
242
SameDir2 :: hello ( 43 ) ;
229
243
230
- println ! ( "{}" , & yy. to_string( ) ) ;
244
+ println ( & yy. to_string ( ) ) ;
231
245
let ( x, y) : ( u32 , u32 ) = ( 5 , 3 ) ;
232
- println ! ( "{}" , & x. to_string( ) ) ;
233
- println ! ( "{}" , & z. to_string( ) ) ;
246
+ println ( & x. to_string ( ) ) ;
247
+ println ( & z. to_string ( ) ) ;
234
248
let x: u32 = x;
235
- println ! ( "{}" , & x. to_string( ) ) ;
249
+ println ( & x. to_string ( ) ) ;
236
250
let x = "hello" ;
237
- println ! ( "{}" , x) ;
251
+ println ( x) ;
238
252
239
253
let x = 32.0f32 ;
240
254
let _ = ( x + ( ( x * x) + 1.0 ) . sqrt ( ) ) . ln ( ) ;
241
255
242
- // FIXME (#22405): Replace `Box::new` with `box` here when/if possible.
243
- let s: Box < SomeTrait > = Box :: new ( some_fields { field1 : 43 } ) ;
256
+ let s: Box < SomeTrait > = box some_fields { field1 : 43 } ;
244
257
let s2: Box < some_fields > = box some_fields { field1 : 43 } ;
245
- let s3: Box < _ > = box nofields;
258
+ let s3 = box nofields;
246
259
247
260
s. Method ( 43 ) ;
248
261
s3. Method ( 43 ) ;
@@ -253,8 +266,6 @@ fn hello<X: SomeTrait>((z, a) : (u32, String), ex: X) {
253
266
let y: u32 = 56 ;
254
267
// static method on struct
255
268
let r = some_fields:: stat ( y) ;
256
- // trait static method, calls override
257
- let r = SubTrait :: stat2 ( & * s2) ;
258
269
// trait static method, calls default
259
270
let r = SubTrait :: stat2 ( & * s3) ;
260
271
@@ -277,7 +288,7 @@ pub struct blah {
277
288
}
278
289
279
290
fn main ( ) { // foo
280
- let s: Box < _ > = box some_fields { field1 : 43 } ;
291
+ let s = box some_fields { field1 : 43 } ;
281
292
hello ( ( 43 , "a" . to_string ( ) ) , * s) ;
282
293
sub:: sub2:: hello ( ) ;
283
294
sub2:: sub3:: hello ( ) ;
@@ -306,7 +317,7 @@ fn main() { // foo
306
317
let s3: some_fields = some_fields { field1 : 55 } ;
307
318
let s4: msalias:: nested_struct = sub:: sub2:: nested_struct { field2 : 55 } ;
308
319
let s4: msalias:: nested_struct = sub2:: nested_struct { field2 : 55 } ;
309
- println ! ( "{}" , & s2. field1. to_string( ) ) ;
320
+ println ( & s2. field1 . to_string ( ) ) ;
310
321
let s5: MyType = box some_fields { field1 : 55 } ;
311
322
let s = SameDir :: SameStruct { name : "Bob" . to_string ( ) } ;
312
323
let s = SubDir :: SubStruct { name : "Bob" . to_string ( ) } ;
@@ -316,9 +327,18 @@ fn main() { // foo
316
327
matchSomeEnum ( s7) ;
317
328
let s8: SomeOtherEnum = SomeOtherEnum :: SomeConst2 ;
318
329
matchSomeOtherEnum ( s8) ;
319
- let s9: SomeStructEnum =
320
- SomeStructEnum :: EnumStruct2 { f1 : box some_fields { field1 : 10 } , f2 : box s2} ;
330
+ let s9: SomeStructEnum = SomeStructEnum :: EnumStruct2 { f1 : box some_fields { field1 : 10 } ,
331
+ f2 : box s2 } ;
321
332
matchSomeStructEnum ( s9) ;
333
+
334
+ for x in & vec ! [ 1 , 2 , 3 ] {
335
+ let _y = x;
336
+ }
337
+
338
+ let s7: SomeEnum = SomeEnum :: Strings ( "one" , "two" , "three" ) ;
339
+ if let SomeEnum :: Strings ( ..) = s7 {
340
+ println ! ( "hello!" ) ;
341
+ }
322
342
}
323
343
324
344
impl Iterator for nofields {
0 commit comments