@@ -35,7 +35,7 @@ fn alloc_mut[T](uint n_elts) -> vec[mutable T] {
35
35
ret rustrt. vec_alloc_mut [ vec[ mutable T ] , T ] ( n_elts) ;
36
36
}
37
37
38
- fn refcount[ T ] ( vec[ T ] v) -> uint {
38
+ fn refcount[ T ] ( vec[ mutable? T ] v) -> uint {
39
39
auto r = rustrt. refcount [ T ] ( v) ;
40
40
if ( r == dbg. const_refcount ) {
41
41
ret r;
@@ -94,29 +94,29 @@ fn init_elt_mut[T](&T t, uint n_elts) -> vec[mutable T] {
94
94
ret v;
95
95
}
96
96
97
- fn buf[ T ] ( vec[ T ] v) -> vbuf {
97
+ fn buf[ T ] ( vec[ mutable? T ] v) -> vbuf {
98
98
ret rustrt. vec_buf [ T ] ( v, 0 u) ;
99
99
}
100
100
101
- fn len[ T ] ( vec[ T ] v) -> uint {
101
+ fn len[ T ] ( vec[ mutable? T ] v) -> uint {
102
102
ret rustrt. vec_len [ T ] ( v) ;
103
103
}
104
104
105
- fn len_set[ T ] ( vec[ T ] v, uint n) {
105
+ fn len_set[ T ] ( vec[ mutable? T ] v, uint n) {
106
106
rustrt. vec_len_set [ T ] ( v, n) ;
107
107
}
108
108
109
- fn buf_off[ T ] ( vec[ T ] v, uint offset) -> vbuf {
109
+ fn buf_off[ T ] ( vec[ mutable? T ] v, uint offset) -> vbuf {
110
110
check ( offset < len[ T ] ( v) ) ;
111
111
ret rustrt. vec_buf [ T ] ( v, offset) ;
112
112
}
113
113
114
- fn print_debug_info[ T ] ( vec[ T ] v) {
114
+ fn print_debug_info[ T ] ( vec[ mutable? T ] v) {
115
115
rustrt. vec_print_debug_info [ T ] ( v) ;
116
116
}
117
117
118
118
// Returns elements from [start..end) from v.
119
- fn slice[ T ] ( vec[ T ] v, uint start, uint end) -> vec[ T ] {
119
+ fn slice[ T ] ( vec[ mutable? T ] v, uint start, uint end) -> vec[ T ] {
120
120
check ( start <= end) ;
121
121
check ( end <= len[ T ] ( v) ) ;
122
122
auto result = alloc[ T ] ( end - start) ;
@@ -128,15 +128,15 @@ fn slice[T](vec[T] v, uint start, uint end) -> vec[T] {
128
128
ret result;
129
129
}
130
130
131
- fn shift[ T ] ( & mutable vec[ T ] v) -> T {
131
+ fn shift[ T ] ( & mutable vec[ mutable? T ] v) -> T {
132
132
auto ln = len[ T ] ( v) ;
133
133
check ( ln > 0 u) ;
134
134
auto e = v. ( 0 ) ;
135
135
v = slice[ T ] ( v, 1 u, ln) ;
136
136
ret e;
137
137
}
138
138
139
- fn pop[ T ] ( & mutable vec[ T ] v) -> T {
139
+ fn pop[ T ] ( & mutable vec[ mutable? T ] v) -> T {
140
140
auto ln = len[ T ] ( v) ;
141
141
check ( ln > 0 u) ;
142
142
ln -= 1 u;
@@ -145,34 +145,35 @@ fn pop[T](&mutable vec[T] v) -> T {
145
145
ret e;
146
146
}
147
147
148
- fn push[ T ] ( & mutable vec[ T ] v, & T t) {
148
+ fn push[ T ] ( & mutable vec[ mutable? T ] v, & T t) {
149
149
v += vec ( t) ;
150
150
}
151
151
152
- fn unshift[ T ] ( & mutable vec[ T ] v, & T t) {
152
+ fn unshift[ T ] ( & mutable vec[ mutable? T ] v, & T t) {
153
153
auto res = alloc[ T ] ( len[ T ] ( v) + 1 u) ;
154
154
res += vec ( t) ;
155
155
res += v;
156
156
v = res;
157
157
}
158
158
159
- fn grow[ T ] ( & mutable vec[ T ] v, int n, & T initval) {
159
+ fn grow[ T ] ( & mutable vec[ mutable? T ] v, int n, & T initval) {
160
160
let int i = n;
161
161
while ( i > 0 ) {
162
162
i -= 1 ;
163
163
v += vec ( initval) ;
164
164
}
165
165
}
166
166
167
- fn map[ T , U ] ( & option. operator [ T , U ] f, & vec[ T ] v) -> vec[ U ] {
167
+ fn map[ T , U ] ( & option. operator [ T , U ] f, & vec[ mutable? T ] v) -> vec[ U ] {
168
168
let vec[ U ] u = alloc[ U ] ( len[ T ] ( v) ) ;
169
169
for ( T ve in v) {
170
170
u += vec ( f ( ve) ) ;
171
171
}
172
172
ret u;
173
173
}
174
174
175
- fn map2[ T , U , V ] ( & operator2[ T , U , V ] f, & vec[ T ] v0, & vec[ U ] v1) -> vec[ V ] {
175
+ fn map2[ T , U , V ] ( & operator2[ T , U , V ] f, & vec[ mutable? T ] v0, & vec[ mutable? U ] v1)
176
+ -> vec[ V ] {
176
177
auto v0_len = len[ T ] ( v0) ;
177
178
if ( v0_len != len[ U ] ( v1) ) {
178
179
fail;
0 commit comments