66#![ feature( decl_macro) ]
77
88type FnF = i8 ;
9- type LetF = i16 ;
9+ type BindingF = i16 ;
1010
1111fn f_without_definition_f ( ) {
12- let f = || -> LetF { 42 } ;
13- let a: LetF = m ! ( ) ;
12+ let f = || -> BindingF { 42 } ;
13+ let a: BindingF = m ! ( ) ;
1414 macro m( ) { f ( ) }
1515}
1616
@@ -21,171 +21,75 @@ fn f_without_closure_f() {
2121}
2222
2323fn 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
9225
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 ! ( ) ;
9529 macro m( ) { f ( ) }
96- let a: FnF = m ! ( ) ;
97- let f = || -> LetF { 42 } ;
98- }
99-
100- fn f11 ( ) {
30+ let a2: BindingF = m ! ( ) ;
10131 fn f ( ) -> FnF { 42 }
102- macro m( ) { f ( ) }
103- let f = || -> LetF { 42 } ;
104- let a: FnF = m ! ( ) ;
32+ let a3: BindingF = m ! ( ) ;
10533}
10634
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
11337
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 ! ( ) ;
11741 fn f ( ) -> FnF { 42 }
42+ let a2: BindingF = m ! ( ) ;
11843 macro m( ) { f ( ) }
44+ let a3: BindingF = m ! ( ) ;
11945}
12046
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
12749
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
13251 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 ! ( ) ;
13755 macro m( ) { f ( ) }
138- fn f ( ) -> FnF { 42 }
139- let f = || -> LetF { 42 } ;
56+ let a3: BindingF = m ! ( ) ;
14057}
14158
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
14861
149- fn f18 ( ) {
150- macro m( ) { f ( ) }
151- let a: FnF = m ! ( ) ;
62+ let a0: FnF = m ! ( ) ;
15263 fn f ( ) -> FnF { 42 }
153- let f = || -> LetF { 42 } ;
154- }
155-
156- fn f19 ( ) {
64+ let a1: FnF = m ! ( ) ;
15765 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 ! ( ) ;
16169}
16270
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;
16973
170- fn f21 ( ) {
74+ let a0 : FnF = m ! ( ) ;
17175 macro m( ) { f ( ) }
172- let a: FnF = m ! ( ) ;
173- let f = || -> LetF { 42 } ;
76+ let a1: FnF = m ! ( ) ;
17477 fn f ( ) -> FnF { 42 }
78+ let a2: FnF = m ! ( ) ;
79+ let f = || -> BindingF { 42 } ;
80+ let a3: FnF = m ! ( ) ;
17581}
17682
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;
18385
184- fn f23 ( ) {
86+ let a0 : FnF = m ! ( ) ;
18587 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 ! ( ) ;
18891 fn f ( ) -> FnF { 42 }
92+ let a3: FnF = m ! ( ) ;
18993}
19094
19195fn main ( ) { }
0 commit comments