6
6
#![ feature( decl_macro) ]
7
7
8
8
type FnF = i8 ;
9
- type LetF = i16 ;
9
+ type BindingF = i16 ;
10
10
11
11
fn f_without_definition_f ( ) {
12
- let f = || -> LetF { 42 } ;
13
- let a: LetF = m ! ( ) ;
12
+ let f = || -> BindingF { 42 } ;
13
+ let a: BindingF = m ! ( ) ;
14
14
macro m( ) { f ( ) }
15
15
}
16
16
@@ -21,171 +21,75 @@ fn f_without_closure_f() {
21
21
}
22
22
23
23
fn f0 ( ) {
24
- let f = || -> LetF { 42 } ;
25
- fn f ( ) -> FnF { 42 }
26
- let a: LetF = m ! ( ) ;
27
- macro m( ) { f ( ) }
28
- }
29
-
30
- fn f1 ( ) {
31
- let f = || -> LetF { 42 } ;
32
- let a: LetF = m ! ( ) ;
33
- fn f ( ) -> FnF { 42 }
34
- macro m( ) { f ( ) }
35
- }
36
-
37
- fn f2 ( ) {
38
- let f = || -> LetF { 42 } ;
39
- let a: LetF = m ! ( ) ;
40
- macro m( ) { f ( ) }
41
- fn f ( ) -> FnF { 42 }
42
- }
43
-
44
- fn f3 ( ) {
45
- let f = || -> LetF { 42 } ;
46
- macro m( ) { f ( ) }
47
- let a: LetF = m ! ( ) ;
48
- fn f ( ) -> FnF { 42 }
49
- }
50
-
51
- fn f4 ( ) {
52
- let f = || -> LetF { 42 } ;
53
- macro m( ) { f ( ) }
54
- fn f ( ) -> FnF { 42 }
55
- let a: LetF = m ! ( ) ;
56
- }
57
-
58
- fn f5 ( ) {
59
- let f = || -> LetF { 42 } ;
60
- fn f ( ) -> FnF { 42 }
61
- macro m( ) { f ( ) }
62
- let a: LetF = m ! ( ) ;
63
- }
64
-
65
- fn f6 ( ) {
66
- fn f ( ) -> FnF { 42 }
67
- let f = || -> LetF { 42 } ;
68
- let a: LetF = m ! ( ) ;
69
- macro m( ) { f ( ) }
70
- }
71
-
72
- fn f7 ( ) {
73
- fn f ( ) -> FnF { 42 }
74
- let f = || -> LetF { 42 } ;
75
- macro m( ) { f ( ) }
76
- let a: LetF = m ! ( ) ;
77
- }
78
-
79
- fn f8 ( ) {
80
- fn f ( ) -> FnF { 42 }
81
- let a: FnF = m ! ( ) ;
82
- let f = || -> LetF { 42 } ;
83
- macro m( ) { f ( ) }
84
- }
85
-
86
- fn f9 ( ) {
87
- fn f ( ) -> FnF { 42 }
88
- let a: FnF = m ! ( ) ;
89
- macro m( ) { f ( ) }
90
- let f = || -> LetF { 42 } ;
91
- }
24
+ // let f -> macro m -> fn f
92
25
93
- fn f10 ( ) {
94
- fn f ( ) -> FnF { 42 }
26
+ let a0: BindingF = m ! ( ) ; // TODO: ERROR: defined later
27
+ let f = || -> BindingF { 42 } ;
28
+ let a1: BindingF = m ! ( ) ;
95
29
macro m( ) { f ( ) }
96
- let a: FnF = m ! ( ) ;
97
- let f = || -> LetF { 42 } ;
98
- }
99
-
100
- fn f11 ( ) {
30
+ let a2: BindingF = m ! ( ) ;
101
31
fn f ( ) -> FnF { 42 }
102
- macro m( ) { f ( ) }
103
- let f = || -> LetF { 42 } ;
104
- let a: FnF = m ! ( ) ;
32
+ let a3: BindingF = m ! ( ) ;
105
33
}
106
34
107
- fn f12 ( ) {
108
- let a: FnF = m ! ( ) ;
109
- fn f ( ) -> FnF { 42 }
110
- let f = || -> LetF { 42 } ;
111
- macro m( ) { f ( ) }
112
- }
35
+ fn f1 ( ) {
36
+ // let f -> fn f -> macro m
113
37
114
- fn f13 ( ) {
115
- let a : FnF = m ! ( ) ;
116
- let f = || -> LetF { 42 } ;
38
+ let a0 : BindingF = m ! ( ) ; // TODO: ERROR: defined later
39
+ let f = || -> BindingF { 42 } ;
40
+ let a1 : BindingF = m ! ( ) ;
117
41
fn f ( ) -> FnF { 42 }
42
+ let a2: BindingF = m ! ( ) ;
118
43
macro m( ) { f ( ) }
44
+ let a3: BindingF = m ! ( ) ;
119
45
}
120
46
121
- fn f14 ( ) {
122
- let a: FnF = m ! ( ) ;
123
- let f = || -> LetF { 42 } ;
124
- macro m( ) { f ( ) }
125
- fn f ( ) -> FnF { 42 }
126
- }
47
+ fn f2 ( ) {
48
+ // fn f -> let f -> macro m
127
49
128
- fn f15 ( ) {
129
- let a: FnF = m ! ( ) ;
130
- macro m( ) { f ( ) }
131
- let f = || -> LetF { 42 } ;
50
+ let a0: BindingF = m ! ( ) ; // TODO: ERROR: defined later
132
51
fn f ( ) -> FnF { 42 }
133
- }
134
-
135
- fn f16 ( ) {
136
- let a: FnF = m ! ( ) ;
52
+ let a1: BindingF = m ! ( ) ; // TODO: ERROR: defined later
53
+ let f = || -> BindingF { 42 } ;
54
+ let a2: BindingF = m ! ( ) ;
137
55
macro m( ) { f ( ) }
138
- fn f ( ) -> FnF { 42 }
139
- let f = || -> LetF { 42 } ;
56
+ let a3: BindingF = m ! ( ) ;
140
57
}
141
58
142
- fn f17 ( ) {
143
- let a: FnF = m ! ( ) ;
144
- fn f ( ) -> FnF { 42 }
145
- macro m( ) { f ( ) }
146
- let f = || -> LetF { 42 } ;
147
- }
59
+ fn f3 ( ) {
60
+ // fn f -> macro m -> let f
148
61
149
- fn f18 ( ) {
150
- macro m( ) { f ( ) }
151
- let a: FnF = m ! ( ) ;
62
+ let a0: FnF = m ! ( ) ;
152
63
fn f ( ) -> FnF { 42 }
153
- let f = || -> LetF { 42 } ;
154
- }
155
-
156
- fn f19 ( ) {
64
+ let a1: FnF = m ! ( ) ;
157
65
macro m( ) { f ( ) }
158
- fn f ( ) -> FnF { 42 }
159
- let a : FnF = m ! ( ) ;
160
- let f = || -> LetF { 42 } ;
66
+ let a2 : FnF = m ! ( ) ;
67
+ let f = || -> BindingF { 42 } ;
68
+ let a3 : FnF = m ! ( ) ;
161
69
}
162
70
163
- fn f20 ( ) {
164
- macro m( ) { f ( ) }
165
- fn f ( ) -> FnF { 42 }
166
- let f = || -> LetF { 42 } ;
167
- let a: FnF = m ! ( ) ;
168
- }
71
+ fn f4 ( ) {
72
+ // macro m -> fn f -> let f;
169
73
170
- fn f21 ( ) {
74
+ let a0 : FnF = m ! ( ) ;
171
75
macro m( ) { f ( ) }
172
- let a: FnF = m ! ( ) ;
173
- let f = || -> LetF { 42 } ;
76
+ let a1: FnF = m ! ( ) ;
174
77
fn f ( ) -> FnF { 42 }
78
+ let a2: FnF = m ! ( ) ;
79
+ let f = || -> BindingF { 42 } ;
80
+ let a3: FnF = m ! ( ) ;
175
81
}
176
82
177
- fn f22 ( ) {
178
- macro m( ) { f ( ) }
179
- let f = || -> LetF { 42 } ;
180
- fn f ( ) -> FnF { 42 }
181
- let a: FnF = m ! ( ) ;
182
- }
83
+ fn f5 ( ) {
84
+ // macro m -> let f -> fn f;
183
85
184
- fn f23 ( ) {
86
+ let a0 : FnF = m ! ( ) ;
185
87
macro m( ) { f ( ) }
186
- let f = || -> LetF { 42 } ;
187
- let a: FnF = m ! ( ) ;
88
+ let a1: FnF = m ! ( ) ;
89
+ let f = || -> BindingF { 42 } ;
90
+ let a2: FnF = m ! ( ) ;
188
91
fn f ( ) -> FnF { 42 }
92
+ let a3: FnF = m ! ( ) ;
189
93
}
190
94
191
95
fn main ( ) { }
0 commit comments