File tree 5 files changed +93
-0
lines changed
5 files changed +93
-0
lines changed Original file line number Diff line number Diff line change
1
+ rustc -Zmir-opt-level=3 --emit=mir -Zdump-mir=all - 2>&1 << EOF
2
+
3
+ // run-pass
4
+
5
+ #![allow(dead_code, unused_imports)]
6
+ #![feature(no_core)]
7
+ #![no_core]
8
+ // edition:2018
9
+
10
+ extern crate std;
11
+ extern crate core;
12
+ use core::{prelude::v1::*, *};
13
+
14
+ fn foo() {
15
+ for _ in &[()] {}
16
+ }
17
+
18
+ fn bar() -> Option<()> {
19
+ None?
20
+ }
21
+
22
+ fn main() {}
23
+
24
+
25
+ fn bar2() -> Option<()> {
26
+ None?
27
+ }
28
+
29
+ fn bar3() {
30
+ match Option::<Option<()>>::None {
31
+ Some(v) => {}
32
+ None => {}
33
+ }
34
+ }
35
+
36
+ EOF
Original file line number Diff line number Diff line change
1
+ extern "C" {
2
+ static FOO : [ usize ; usize:: MAX ] ;
3
+ }
4
+
5
+ pub fn main ( ) { }
Original file line number Diff line number Diff line change
1
+ #![ recursion_limit = "1000" ]
2
+
3
+ use std:: marker:: PhantomData ;
4
+
5
+ struct Z ;
6
+ struct S < T > ( PhantomData < T > ) ;
7
+
8
+ type Nested = S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < S < Z > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ;
9
+
10
+ trait AsNum {
11
+ const NUM : u32 ;
12
+ }
13
+
14
+ impl AsNum for Z {
15
+ const NUM : u32 = 0 ;
16
+ }
17
+
18
+ impl < T : AsNum > AsNum for S < T > {
19
+ const NUM : u32 = T :: NUM + 1 ;
20
+ }
21
+
22
+ fn main ( ) {
23
+ println ! ( "{}" , Nested :: NUM ) ;
24
+ }
Original file line number Diff line number Diff line change
1
+ struct D ;
2
+
3
+ trait Tr {
4
+ type It ;
5
+ fn foo ( self ) -> Option < Self :: It > ;
6
+ }
7
+
8
+ impl < ' a > Tr for & ' a D {
9
+ type It = ( ) ;
10
+ fn foo ( self ) -> Option < ( ) > { None }
11
+ }
12
+
13
+ fn run < F > ( f : F )
14
+ where for < ' a > & ' a D : Tr ,
15
+ F : Fn ( <& D as Tr >:: It ) ,
16
+ {
17
+ let d = & D ;
18
+ while let Some ( i) = d. foo ( ) {
19
+ f ( i) ;
20
+ }
21
+ }
22
+
23
+ fn main ( ) {
24
+ run ( |_| { } ) ;
25
+ }
Original file line number Diff line number Diff line change
1
+ fn e ( ) {
2
+ p: a<p: p<e=6 >>
3
+ }
You can’t perform that action at this time.
0 commit comments