File tree Expand file tree Collapse file tree 5 files changed +130
-0
lines changed Expand file tree Collapse file tree 5 files changed +130
-0
lines changed Original file line number Diff line number Diff line change 1+ // Copyright 2017 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+ // Test that llvm generates `memcpy` for moving a value 
12+ // inside a function and moving an argument. 
13+ 
14+ struct  Foo  { 
15+     x :  Vec < i32 > , 
16+ } 
17+ 
18+ #[ inline( never) ]  
19+ #[ no_mangle]  
20+ // CHECK: memcpy 
21+ fn  interior ( x :  Vec < i32 > )  -> Vec < i32 >  { 
22+     let  Foo  {  x }  = Foo  {  x :  x } ; 
23+     x
24+ } 
25+ 
26+ #[ inline( never) ]  
27+ #[ no_mangle]  
28+ // CHECK: memcpy 
29+ fn  exterior ( x :  Vec < i32 > )  -> Vec < i32 >  { 
30+     x
31+ } 
32+ 
33+ fn  main ( )  { 
34+     let  x = interior ( Vec :: new ( ) ) ; 
35+     println ! ( "{:?}" ,  x) ; 
36+ 
37+     let  x = exterior ( Vec :: new ( ) ) ; 
38+     println ! ( "{:?}" ,  x) ; 
39+ } 
Original file line number Diff line number Diff line change 1+ // Copyright 2017 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+ // Test that name clashes between the method in an impl for the type 
12+ // and the method in the trait when both are in the same scope. 
13+ 
14+ trait  T  { 
15+     fn  foo ( & self ) ; 
16+ } 
17+ 
18+ impl < ' a >  T  + ' a  { 
19+     fn  foo ( & self )  { } 
20+ } 
21+ 
22+ impl  T  for  i32  { 
23+     fn  foo ( & self )  { } 
24+ } 
25+ 
26+ fn  main ( )  { 
27+     let  x:  & T  = & 0i32 ; 
28+     x. foo ( ) ;  //~ ERROR multiple applicable items in scope [E0034] 
29+ } 
Original file line number Diff line number Diff line change 1+ // Copyright 2017 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+ struct  Table  { 
12+     rows :  [ [ String ] ] , 
13+     //~^ ERROR the trait bound `[std::string::String]: std::marker::Sized` is not satisfied [E0277] 
14+ } 
15+ 
16+ fn  f ( table :  & Table )  -> & [ String ]  { 
17+     & table. rows [ 0 ] 
18+ } 
19+ 
20+ fn  main ( )  { } 
Original file line number Diff line number Diff line change 1+ // Copyright 2017 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+ // Test that methods in trait impls should override default methods. 
12+ 
13+ trait  T  { 
14+     fn  foo ( & self )  -> i32  {  0  } 
15+ } 
16+ 
17+ impl < ' a >  T  + ' a  { 
18+     fn  foo ( & self )  -> i32  {  1  } 
19+ } 
20+ 
21+ fn  main ( )  { } 
Original file line number Diff line number Diff line change 1+ // Copyright 2017 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+ // Test that we do not ICE when pattern matching an array against a slice. 
12+ 
13+ #![ feature( slice_patterns) ]  
14+ 
15+ fn  main ( )  { 
16+     match  "foo" . as_bytes ( )  { 
17+         b"food"  => ( ) , 
18+         & [ b'f' ,  ..]  => ( ) , 
19+         _ => ( ) 
20+     } 
21+ } 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments