File tree Expand file tree Collapse file tree 2 files changed +58
-0
lines changed Expand file tree Collapse file tree 2 files changed +58
-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
+ // Issue 33903:
12
+ // Built-in indexing should be used even when the index is not
13
+ // trivially an integer
14
+ // Only built-in indexing can be used in constant expresssions
15
+
16
+ const FOO : i32 = [ 12 , 34 ] [ 0 + 1 ] ;
17
+
18
+ fn main ( ) { }
19
+
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 A ;
12
+
13
+ impl A {
14
+ fn take_mutably ( & mut self ) { }
15
+ }
16
+
17
+ fn identity < T > ( t : T ) -> T {
18
+ t
19
+ }
20
+
21
+ // Issue 46095
22
+ // Built-in indexing should be used even when the index is not
23
+ // trivially an integer
24
+ // Overloaded indexing would cause wrapped to be borrowed mutably
25
+
26
+ fn main ( ) {
27
+ let mut a1 = A ;
28
+ let mut a2 = A ;
29
+
30
+ let wrapped = [ & mut a1, & mut a2] ;
31
+
32
+ {
33
+ wrapped[ 0 + 1 - 1 ] . take_mutably ( ) ;
34
+ }
35
+
36
+ {
37
+ wrapped[ identity ( 0 ) ] . take_mutably ( ) ;
38
+ }
39
+ }
You can’t perform that action at this time.
0 commit comments