1
- use intrinsic:: { tydesc, get_tydesc, visit_tydesc, ty_visitor} ;
1
+ // xfail-test
2
+ use intrinsic:: { TyDesc , get_tydesc, visit_tydesc, TyVisitor } ;
2
3
enum my_visitor = @{ mut types: ~[ str ] } ;
3
4
4
- impl of ty_visitor for my_visitor {
5
+ impl my_visitor : TyVisitor {
5
6
fn visit_bot ( ) -> bool {
6
- self . types += [ "bot" ] ;
7
+ self . types += ~ [ "bot" ] ;
7
8
error ! ( "visited bot type" ) ;
8
9
true
9
10
}
10
11
fn visit_nil ( ) -> bool {
11
- self . types += [ "nil" ] ;
12
+ self . types += ~ [ "nil" ] ;
12
13
error ! ( "visited nil type" ) ;
13
14
true
14
15
}
15
16
fn visit_bool ( ) -> bool {
16
- self . types += [ "bool" ] ;
17
+ self . types += ~ [ "bool" ] ;
17
18
error ! ( "visited bool type" ) ;
18
19
true
19
20
}
20
21
fn visit_int ( ) -> bool {
21
- self . types += [ "int" ] ;
22
+ self . types += ~ [ "int" ] ;
22
23
error ! ( "visited int type" ) ;
23
24
true
24
25
}
25
26
fn visit_i8 ( ) -> bool {
26
- self . types += [ "i8" ] ;
27
+ self . types += ~ [ "i8" ] ;
27
28
error ! ( "visited i8 type" ) ;
28
29
true
29
30
}
30
31
fn visit_i16 ( ) -> bool {
31
- self . types += [ "i16" ] ;
32
+ self . types += ~ [ "i16" ] ;
32
33
error ! ( "visited i16 type" ) ;
33
34
true
34
35
}
@@ -54,41 +55,41 @@ impl of ty_visitor for my_visitor {
54
55
fn visit_estr_fixed ( _sz : uint , _sz : uint ,
55
56
_align : uint ) -> bool { true }
56
57
57
- fn visit_box ( _mtbl : uint , _inner : * tydesc ) -> bool { true }
58
- fn visit_uniq ( _mtbl : uint , _inner : * tydesc ) -> bool { true }
59
- fn visit_ptr ( _mtbl : uint , _inner : * tydesc ) -> bool { true }
60
- fn visit_rptr ( _mtbl : uint , _inner : * tydesc ) -> bool { true }
58
+ fn visit_box ( _mtbl : uint , _inner : * TyDesc ) -> bool { true }
59
+ fn visit_uniq ( _mtbl : uint , _inner : * TyDesc ) -> bool { true }
60
+ fn visit_ptr ( _mtbl : uint , _inner : * TyDesc ) -> bool { true }
61
+ fn visit_rptr ( _mtbl : uint , _inner : * TyDesc ) -> bool { true }
61
62
62
- fn visit_vec ( _mtbl : uint , inner : * tydesc ) -> bool {
63
- self . types += [ "[" ] ;
64
- visit_tydesc ( inner, my_visitor ( * self ) as ty_visitor ) ;
65
- self . types += [ "]" ] ;
63
+ fn visit_vec ( _mtbl : uint , inner : * TyDesc ) -> bool {
64
+ self . types += ~ [ "[" ] ;
65
+ visit_tydesc ( inner, my_visitor ( * self ) as TyVisitor ) ;
66
+ self . types += ~ [ "]" ] ;
66
67
true
67
68
}
68
- fn visit_unboxed_vec ( _mtbl : uint , _inner : * tydesc ) -> bool { true }
69
- fn visit_evec_box ( _mtbl : uint , _inner : * tydesc ) -> bool { true }
70
- fn visit_evec_uniq ( _mtbl : uint , _inner : * tydesc ) -> bool { true }
71
- fn visit_evec_slice ( _mtbl : uint , _inner : * tydesc ) -> bool { true }
69
+ fn visit_unboxed_vec ( _mtbl : uint , _inner : * TyDesc ) -> bool { true }
70
+ fn visit_evec_box ( _mtbl : uint , _inner : * TyDesc ) -> bool { true }
71
+ fn visit_evec_uniq ( _mtbl : uint , _inner : * TyDesc ) -> bool { true }
72
+ fn visit_evec_slice ( _mtbl : uint , _inner : * TyDesc ) -> bool { true }
72
73
fn visit_evec_fixed ( _n : uint , _sz : uint , _align : uint ,
73
- _mtbl : uint , _inner : * tydesc ) -> bool { true }
74
+ _mtbl : uint , _inner : * TyDesc ) -> bool { true }
74
75
75
76
fn visit_enter_rec ( _n_fields : uint ,
76
77
_sz : uint , _align : uint ) -> bool { true }
77
78
fn visit_rec_field ( _i : uint , _name : & str ,
78
- _mtbl : uint , _inner : * tydesc ) -> bool { true }
79
+ _mtbl : uint , _inner : * TyDesc ) -> bool { true }
79
80
fn visit_leave_rec ( _n_fields : uint ,
80
81
_sz : uint , _align : uint ) -> bool { true }
81
82
82
83
fn visit_enter_class ( _n_fields : uint ,
83
84
_sz : uint , _align : uint ) -> bool { true }
84
85
fn visit_class_field ( _i : uint , _name : & str ,
85
- _mtbl : uint , _inner : * tydesc ) -> bool { true }
86
+ _mtbl : uint , _inner : * TyDesc ) -> bool { true }
86
87
fn visit_leave_class ( _n_fields : uint ,
87
88
_sz : uint , _align : uint ) -> bool { true }
88
89
89
90
fn visit_enter_tup ( _n_fields : uint ,
90
91
_sz : uint , _align : uint ) -> bool { true }
91
- fn visit_tup_field ( _i : uint , _inner : * tydesc ) -> bool { true }
92
+ fn visit_tup_field ( _i : uint , _inner : * TyDesc ) -> bool { true }
92
93
fn visit_leave_tup ( _n_fields : uint ,
93
94
_sz : uint , _align : uint ) -> bool { true }
94
95
@@ -98,7 +99,7 @@ impl of ty_visitor for my_visitor {
98
99
_disr_val : int ,
99
100
_n_fields : uint ,
100
101
_name : & str ) -> bool { true }
101
- fn visit_enum_variant_field ( _i : uint , _inner : * tydesc ) -> bool { true }
102
+ fn visit_enum_variant_field ( _i : uint , _inner : * TyDesc ) -> bool { true }
102
103
fn visit_leave_enum_variant ( _variant : uint ,
103
104
_disr_val : int ,
104
105
_n_fields : uint ,
@@ -108,8 +109,8 @@ impl of ty_visitor for my_visitor {
108
109
109
110
fn visit_enter_fn ( _purity : uint , _proto : uint ,
110
111
_n_inputs : uint , _retstyle : uint ) -> bool { true }
111
- fn visit_fn_input ( _i : uint , _mode : uint , _inner : * tydesc ) -> bool { true }
112
- fn visit_fn_output ( _retstyle : uint , _inner : * tydesc ) -> bool { true }
112
+ fn visit_fn_input ( _i : uint , _mode : uint , _inner : * TyDesc ) -> bool { true }
113
+ fn visit_fn_output ( _retstyle : uint , _inner : * TyDesc ) -> bool { true }
113
114
fn visit_leave_fn ( _purity : uint , _proto : uint ,
114
115
_n_inputs : uint , _retstyle : uint ) -> bool { true }
115
116
@@ -121,17 +122,17 @@ impl of ty_visitor for my_visitor {
121
122
fn visit_self ( ) -> bool { true }
122
123
fn visit_type ( ) -> bool { true }
123
124
fn visit_opaque_box ( ) -> bool { true }
124
- fn visit_constr ( _inner : * tydesc ) -> bool { true }
125
+ fn visit_constr ( _inner : * TyDesc ) -> bool { true }
125
126
fn visit_closure_ptr ( _ck : uint ) -> bool { true }
126
127
}
127
128
128
- fn visit_ty < T > ( v : ty_visitor ) {
129
+ fn visit_ty < T > ( v : TyVisitor ) {
129
130
visit_tydesc ( get_tydesc :: < T > ( ) , v) ;
130
131
}
131
132
132
133
fn main ( ) {
133
134
let v = my_visitor ( @{ mut types: ~[ ] } ) ;
134
- let vv = v as ty_visitor ;
135
+ let vv = v as TyVisitor ;
135
136
136
137
visit_ty :: < bool > ( vv) ;
137
138
visit_ty :: < int > ( vv) ;
0 commit comments