Skip to content

Commit c8798fd

Browse files
committed
---
yaml --- r: 47066 b: refs/heads/try c: 6956e81 h: refs/heads/master v: v3
1 parent ffb127d commit c8798fd

File tree

8 files changed

+180
-187
lines changed

8 files changed

+180
-187
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 3bbcac322669cff3abde5be937cc4ec3860f3985
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: a6d9689399d091c3265f00434a69c551a61c28dc
5-
refs/heads/try: baeac2f9ac0e64eefe22779d28a421c5f5eadb58
5+
refs/heads/try: 6956e81c9bda11ec480e63b217efd44b83974fd3
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/src/libcore/vec.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1865,6 +1865,7 @@ pub trait OwnedVector<T> {
18651865
fn consume(self, f: fn(uint, v: T));
18661866
fn filter(self, f: fn(t: &T) -> bool) -> ~[T];
18671867
fn partition(self, f: pure fn(&T) -> bool) -> (~[T], ~[T]);
1868+
fn grow_fn(&mut self, n: uint, op: iter::InitOp<T>);
18681869
}
18691870

18701871
impl<T> OwnedVector<T> for ~[T] {
@@ -1936,6 +1937,11 @@ impl<T> OwnedVector<T> for ~[T] {
19361937
fn partition(self, f: fn(&T) -> bool) -> (~[T], ~[T]) {
19371938
partition(self, f)
19381939
}
1940+
1941+
#[inline]
1942+
fn grow_fn(&mut self, n: uint, op: iter::InitOp<T>) {
1943+
grow_fn(self, n, op);
1944+
}
19391945
}
19401946

19411947
impl<T> Mutable for ~[T] {
@@ -1946,7 +1952,6 @@ impl<T> Mutable for ~[T] {
19461952
pub trait OwnedCopyableVector<T: Copy> {
19471953
fn push_all(&mut self, rhs: &[const T]);
19481954
fn grow(&mut self, n: uint, initval: &T);
1949-
fn grow_fn(&mut self, n: uint, op: iter::InitOp<T>);
19501955
fn grow_set(&mut self, index: uint, initval: &T, val: T);
19511956
}
19521957

@@ -1961,11 +1966,6 @@ impl<T: Copy> OwnedCopyableVector<T> for ~[T] {
19611966
grow(self, n, initval);
19621967
}
19631968

1964-
#[inline]
1965-
fn grow_fn(&mut self, n: uint, op: iter::InitOp<T>) {
1966-
grow_fn(self, n, op);
1967-
}
1968-
19691969
#[inline]
19701970
fn grow_set(&mut self, index: uint, initval: &T, val: T) {
19711971
grow_set(self, index, initval, val);

branches/try/src/libstd/deque.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ fn grow<T>(nelts: uint, lo: uint, elts: &mut [Option<T>]) -> ~[Option<T>] {
100100
assert nelts == elts.len();
101101
let mut rv = ~[];
102102

103-
do vec::grow_fn(&mut rv, nelts + 1) |i| {
103+
do rv.grow_fn(nelts + 1) |i| {
104104
let mut element = None;
105105
element <-> elts[(lo + i) % nelts];
106106
element

branches/try/src/libsyntax/ext/pipes/ast_builder.rs

Lines changed: 79 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -67,68 +67,61 @@ pub impl append_types for @ast::path {
6767
}
6868

6969
pub trait ext_ctxt_ast_builder {
70-
fn ty_param(&self, id: ast::ident, +bounds: ~[ast::ty_param_bound])
70+
fn ty_param(id: ast::ident, +bounds: ~[ast::ty_param_bound])
7171
-> ast::ty_param;
72-
fn arg(&self, name: ident, ty: @ast::Ty) -> ast::arg;
73-
fn expr_block(&self, e: @ast::expr) -> ast::blk;
74-
fn fn_decl(&self, +inputs: ~[ast::arg], output: @ast::Ty) -> ast::fn_decl;
75-
fn item(&self, name: ident, span: span, +node: ast::item_) -> @ast::item;
76-
fn item_fn_poly(&self, name: ident,
72+
fn arg(name: ident, ty: @ast::Ty) -> ast::arg;
73+
fn expr_block(e: @ast::expr) -> ast::blk;
74+
fn fn_decl(+inputs: ~[ast::arg], output: @ast::Ty) -> ast::fn_decl;
75+
fn item(name: ident, span: span, +node: ast::item_) -> @ast::item;
76+
fn item_fn_poly(name: ident,
7777
+inputs: ~[ast::arg],
7878
output: @ast::Ty,
7979
+ty_params: ~[ast::ty_param],
8080
+body: ast::blk) -> @ast::item;
81-
fn item_fn(&self, name: ident,
81+
fn item_fn(name: ident,
8282
+inputs: ~[ast::arg],
8383
output: @ast::Ty,
8484
+body: ast::blk) -> @ast::item;
85-
fn item_enum_poly(&self, name: ident,
85+
fn item_enum_poly(name: ident,
8686
span: span,
8787
+enum_definition: ast::enum_def,
8888
+ty_params: ~[ast::ty_param]) -> @ast::item;
89-
fn item_enum(&self, name: ident, span: span,
89+
fn item_enum(name: ident, span: span,
9090
+enum_definition: ast::enum_def) -> @ast::item;
91-
fn item_struct_poly(&self, name: ident, span: span,
92-
struct_def: ast::struct_def,
93-
ty_params: ~[ast::ty_param]) -> @ast::item;
94-
fn item_struct(&self, name: ident, span: span,
95-
struct_def: ast::struct_def) -> @ast::item;
96-
fn struct_expr(&self, path: @ast::path,
97-
fields: ~[ast::field]) -> @ast::expr;
98-
fn variant(&self, name: ident, span: span,
99-
+tys: ~[@ast::Ty]) -> ast::variant;
100-
fn item_mod(&self, name: ident, span: span,
101-
+items: ~[@ast::item]) -> @ast::item;
102-
fn ty_path_ast_builder(&self, path: @ast::path) -> @ast::Ty;
103-
fn item_ty_poly(&self, name: ident,
91+
fn variant(name: ident, span: span, +tys: ~[@ast::Ty]) -> ast::variant;
92+
fn item_mod(name: ident, span: span, +items: ~[@ast::item]) -> @ast::item;
93+
fn ty_path_ast_builder(path: @ast::path) -> @ast::Ty;
94+
fn item_ty_poly(name: ident,
10495
span: span,
10596
ty: @ast::Ty,
10697
+params: ~[ast::ty_param]) -> @ast::item;
107-
fn item_ty(&self, name: ident, span: span, ty: @ast::Ty) -> @ast::item;
108-
fn ty_vars(&self, +ty_params: ~[ast::ty_param]) -> ~[@ast::Ty];
109-
fn ty_vars_global(&self, +ty_params: ~[ast::ty_param]) -> ~[@ast::Ty];
110-
fn ty_field_imm(&self, name: ident, ty: @ast::Ty) -> ast::ty_field;
111-
fn field_imm(&self, name: ident, e: @ast::expr) -> ast::field;
112-
fn block(&self, +stmts: ~[@ast::stmt], e: @ast::expr) -> ast::blk;
113-
fn stmt_let(&self, ident: ident, e: @ast::expr) -> @ast::stmt;
114-
fn stmt_expr(&self, e: @ast::expr) -> @ast::stmt;
115-
fn block_expr(&self, b: ast::blk) -> @ast::expr;
116-
fn ty_option(&self, ty: @ast::Ty) -> @ast::Ty;
117-
fn ty_infer(&self) -> @ast::Ty;
118-
fn ty_nil_ast_builder(&self) -> @ast::Ty;
119-
fn strip_bounds(&self, bounds: &[ast::ty_param]) -> ~[ast::ty_param];
98+
fn item_ty(name: ident, span: span, ty: @ast::Ty) -> @ast::item;
99+
fn ty_vars(+ty_params: ~[ast::ty_param]) -> ~[@ast::Ty];
100+
fn ty_vars_global(+ty_params: ~[ast::ty_param]) -> ~[@ast::Ty];
101+
fn ty_field_imm(name: ident, ty: @ast::Ty) -> ast::ty_field;
102+
fn ty_rec(+v: ~[ast::ty_field]) -> @ast::Ty;
103+
fn field_imm(name: ident, e: @ast::expr) -> ast::field;
104+
fn rec(+v: ~[ast::field]) -> @ast::expr;
105+
fn block(+stmts: ~[@ast::stmt], e: @ast::expr) -> ast::blk;
106+
fn stmt_let(ident: ident, e: @ast::expr) -> @ast::stmt;
107+
fn stmt_expr(e: @ast::expr) -> @ast::stmt;
108+
fn block_expr(b: ast::blk) -> @ast::expr;
109+
fn ty_option(ty: @ast::Ty) -> @ast::Ty;
110+
fn ty_infer() -> @ast::Ty;
111+
fn ty_nil_ast_builder() -> @ast::Ty;
112+
fn strip_bounds(bounds: &[ast::ty_param]) -> ~[ast::ty_param];
120113
}
121114

122115
pub impl ext_ctxt_ast_builder for ext_ctxt {
123-
fn ty_option(&self, ty: @ast::Ty) -> @ast::Ty {
116+
fn ty_option(ty: @ast::Ty) -> @ast::Ty {
124117
self.ty_path_ast_builder(path_global(~[
125118
self.ident_of(~"core"),
126119
self.ident_of(~"option"),
127120
self.ident_of(~"Option")
128121
], dummy_sp()).add_ty(ty))
129122
}
130123

131-
fn block_expr(&self, b: ast::blk) -> @ast::expr {
124+
fn block_expr(b: ast::blk) -> @ast::expr {
132125
@expr {
133126
id: self.next_id(),
134127
callee_id: self.next_id(),
@@ -137,24 +130,33 @@ pub impl ext_ctxt_ast_builder for ext_ctxt {
137130
}
138131
}
139132

140-
fn stmt_expr(&self, e: @ast::expr) -> @ast::stmt {
133+
fn stmt_expr(e: @ast::expr) -> @ast::stmt {
141134
@spanned { node: ast::stmt_expr(e, self.next_id()),
142135
span: dummy_sp()}
143136
}
144137

145-
fn stmt_let(&self, ident: ident, e: @ast::expr) -> @ast::stmt {
146-
let ext_cx = *self;
138+
fn stmt_let(ident: ident, e: @ast::expr) -> @ast::stmt {
139+
let ext_cx = self;
147140
quote_stmt!( let $ident = $e; )
148141
}
149142

150-
fn field_imm(&self, name: ident, e: @ast::expr) -> ast::field {
143+
fn field_imm(name: ident, e: @ast::expr) -> ast::field {
151144
spanned {
152145
node: ast::field_ { mutbl: ast::m_imm, ident: name, expr: e },
153146
span: dummy_sp(),
154147
}
155148
}
156149

157-
fn ty_field_imm(&self, name: ident, ty: @ast::Ty) -> ast::ty_field {
150+
fn rec(+fields: ~[ast::field]) -> @ast::expr {
151+
@expr {
152+
id: self.next_id(),
153+
callee_id: self.next_id(),
154+
node: ast::expr_rec(fields, None),
155+
span: dummy_sp(),
156+
}
157+
}
158+
159+
fn ty_field_imm(name: ident, ty: @ast::Ty) -> ast::ty_field {
158160
spanned {
159161
node: ast::ty_field_ {
160162
ident: name,
@@ -164,21 +166,29 @@ pub impl ext_ctxt_ast_builder for ext_ctxt {
164166
}
165167
}
166168

167-
fn ty_infer(&self) -> @ast::Ty {
169+
fn ty_rec(+fields: ~[ast::ty_field]) -> @ast::Ty {
170+
@ast::Ty {
171+
id: self.next_id(),
172+
node: ast::ty_rec(fields),
173+
span: dummy_sp(),
174+
}
175+
}
176+
177+
fn ty_infer() -> @ast::Ty {
168178
@ast::Ty {
169179
id: self.next_id(),
170180
node: ast::ty_infer,
171181
span: dummy_sp(),
172182
}
173183
}
174184

175-
fn ty_param(&self, id: ast::ident, +bounds: ~[ast::ty_param_bound])
185+
fn ty_param(id: ast::ident, +bounds: ~[ast::ty_param_bound])
176186
-> ast::ty_param
177187
{
178188
ast::ty_param { ident: id, id: self.next_id(), bounds: @bounds }
179189
}
180190

181-
fn arg(&self, name: ident, ty: @ast::Ty) -> ast::arg {
191+
fn arg(name: ident, ty: @ast::Ty) -> ast::arg {
182192
ast::arg {
183193
mode: ast::infer(self.next_id()),
184194
is_mutbl: false,
@@ -195,7 +205,7 @@ pub impl ext_ctxt_ast_builder for ext_ctxt {
195205
}
196206
}
197207

198-
fn block(&self, +stmts: ~[@ast::stmt], e: @ast::expr) -> ast::blk {
208+
fn block(+stmts: ~[@ast::stmt], e: @ast::expr) -> ast::blk {
199209
let blk = ast::blk_ {
200210
view_items: ~[],
201211
stmts: stmts,
@@ -207,11 +217,11 @@ pub impl ext_ctxt_ast_builder for ext_ctxt {
207217
spanned { node: blk, span: dummy_sp() }
208218
}
209219

210-
fn expr_block(&self, e: @ast::expr) -> ast::blk {
220+
fn expr_block(e: @ast::expr) -> ast::blk {
211221
self.block(~[], e)
212222
}
213223

214-
fn fn_decl(&self, +inputs: ~[ast::arg],
224+
fn fn_decl(+inputs: ~[ast::arg],
215225
output: @ast::Ty) -> ast::fn_decl {
216226
ast::fn_decl {
217227
inputs: inputs,
@@ -220,7 +230,8 @@ pub impl ext_ctxt_ast_builder for ext_ctxt {
220230
}
221231
}
222232

223-
fn item(&self, name: ident, span: span,
233+
fn item(name: ident,
234+
span: span,
224235
+node: ast::item_) -> @ast::item {
225236

226237
// XXX: Would be nice if our generated code didn't violate
@@ -243,7 +254,7 @@ pub impl ext_ctxt_ast_builder for ext_ctxt {
243254
span: span }
244255
}
245256

246-
fn item_fn_poly(&self, name: ident,
257+
fn item_fn_poly(name: ident,
247258
+inputs: ~[ast::arg],
248259
output: @ast::Ty,
249260
+ty_params: ~[ast::ty_param],
@@ -256,46 +267,27 @@ pub impl ext_ctxt_ast_builder for ext_ctxt {
256267
body))
257268
}
258269

259-
fn item_fn(&self, name: ident,
270+
fn item_fn(name: ident,
260271
+inputs: ~[ast::arg],
261272
output: @ast::Ty,
262273
+body: ast::blk) -> @ast::item {
263274
self.item_fn_poly(name, inputs, output, ~[], body)
264275
}
265276

266-
fn item_enum_poly(&self, name: ident, span: span,
277+
fn item_enum_poly(name: ident,
278+
span: span,
267279
+enum_definition: ast::enum_def,
268280
+ty_params: ~[ast::ty_param]) -> @ast::item {
269281
self.item(name, span, ast::item_enum(enum_definition, ty_params))
270282
}
271283

272-
fn item_enum(&self, name: ident, span: span,
284+
fn item_enum(name: ident, span: span,
273285
+enum_definition: ast::enum_def) -> @ast::item {
274286
self.item_enum_poly(name, span, enum_definition, ~[])
275287
}
276288

277-
fn item_struct(&self, name: ident, span: span,
278-
struct_def: ast::struct_def) -> @ast::item {
279-
self.item_struct_poly(name, span, struct_def, ~[])
280-
}
281-
282-
fn item_struct_poly(&self, name: ident, span: span,
283-
struct_def: ast::struct_def,
284-
ty_params: ~[ast::ty_param]) -> @ast::item {
285-
self.item(name, span, ast::item_struct(@struct_def, ty_params))
286-
}
287-
288-
fn struct_expr(&self, path: @ast::path,
289-
fields: ~[ast::field]) -> @ast::expr {
290-
@ast::expr {
291-
id: self.next_id(),
292-
callee_id: self.next_id(),
293-
node: ast::expr_struct(path, fields, None),
294-
span: dummy_sp()
295-
}
296-
}
297-
298-
fn variant(&self, name: ident, span: span,
289+
fn variant(name: ident,
290+
span: span,
299291
+tys: ~[@ast::Ty]) -> ast::variant {
300292
let args = do tys.map |ty| {
301293
ast::variant_arg { ty: *ty, id: self.next_id() }
@@ -308,15 +300,14 @@ pub impl ext_ctxt_ast_builder for ext_ctxt {
308300
kind: ast::tuple_variant_kind(args),
309301
id: self.next_id(),
310302
disr_expr: None,
311-
vis: ast::public
312-
},
303+
vis: ast::public},
313304
span: span,
314305
}
315306
}
316307

317-
fn item_mod(&self, name: ident, span: span,
308+
fn item_mod(name: ident,
309+
span: span,
318310
+items: ~[@ast::item]) -> @ast::item {
319-
320311
// XXX: Total hack: import `core::kinds::Owned` to work around a
321312
// parser bug whereby `fn f<T: ::kinds::Owned>` doesn't parse.
322313
let vi = ast::view_item_import(~[
@@ -354,43 +345,45 @@ pub impl ext_ctxt_ast_builder for ext_ctxt {
354345
)
355346
}
356347

357-
fn ty_path_ast_builder(&self, path: @ast::path) -> @ast::Ty {
348+
fn ty_path_ast_builder(path: @ast::path) -> @ast::Ty {
358349
@ast::Ty {
359350
id: self.next_id(),
360351
node: ast::ty_path(path, self.next_id()),
361352
span: path.span,
362353
}
363354
}
364355

365-
fn ty_nil_ast_builder(&self) -> @ast::Ty {
356+
fn ty_nil_ast_builder() -> @ast::Ty {
366357
@ast::Ty {
367358
id: self.next_id(),
368359
node: ast::ty_nil,
369360
span: dummy_sp(),
370361
}
371362
}
372363

373-
fn strip_bounds(&self, bounds: &[ast::ty_param]) -> ~[ast::ty_param] {
364+
fn strip_bounds(bounds: &[ast::ty_param]) -> ~[ast::ty_param] {
374365
do bounds.map |ty_param| {
375366
ast::ty_param { bounds: @~[], ..copy *ty_param }
376367
}
377368
}
378369

379-
fn item_ty_poly(&self, name: ident, span: span, ty: @ast::Ty,
370+
fn item_ty_poly(name: ident,
371+
span: span,
372+
ty: @ast::Ty,
380373
+params: ~[ast::ty_param]) -> @ast::item {
381374
self.item(name, span, ast::item_ty(ty, params))
382375
}
383376

384-
fn item_ty(&self, name: ident, span: span, ty: @ast::Ty) -> @ast::item {
377+
fn item_ty(name: ident, span: span, ty: @ast::Ty) -> @ast::item {
385378
self.item_ty_poly(name, span, ty, ~[])
386379
}
387380

388-
fn ty_vars(&self, +ty_params: ~[ast::ty_param]) -> ~[@ast::Ty] {
381+
fn ty_vars(+ty_params: ~[ast::ty_param]) -> ~[@ast::Ty] {
389382
ty_params.map(|p| self.ty_path_ast_builder(
390383
path(~[p.ident], dummy_sp())))
391384
}
392385

393-
fn ty_vars_global(&self, +ty_params: ~[ast::ty_param]) -> ~[@ast::Ty] {
386+
fn ty_vars_global(+ty_params: ~[ast::ty_param]) -> ~[@ast::Ty] {
394387
ty_params.map(|p| self.ty_path_ast_builder(
395388
path(~[p.ident], dummy_sp())))
396389
}

0 commit comments

Comments
 (0)