Skip to content

Commit b87cdd8

Browse files
committed
rustc: Infer regions of variant arguments to the caller region
1 parent 5c23d21 commit b87cdd8

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/rustc/middle/region.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,8 @@ fn resolve_expr(expr: @ast::expr, cx: ctxt, visitor: visit::vt<ctxt>) {
244244
fn resolve_item(item: @ast::item, cx: ctxt, visitor: visit::vt<ctxt>) {
245245
// Items create a new outer block scope as far as we're concerned.
246246
let parent = alt item.node {
247-
ast::item_fn(_, _, _) { pa_fn_item(item.id) }
248-
_ { pa_item(item.id) }
247+
ast::item_fn(_, _, _) | ast::item_enum(_, _) { pa_fn_item(item.id) }
248+
_ { pa_item(item.id) }
249249
};
250250
let new_cx: ctxt = {bindings: @list::nil,
251251
parent: parent,

src/rustc/middle/ty.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1925,6 +1925,10 @@ mod unify {
19251925
}
19261926
}
19271927

1928+
if sub == ty::re_inferred || super == ty::re_inferred {
1929+
ret if sub == super { some(super) } else { none };
1930+
}
1931+
19281932
// Outer regions are subtypes of inner regions. (This is somewhat
19291933
// surprising!)
19301934
let superscope = region::region_to_scope(cx.tcx.region_map, super);

0 commit comments

Comments
 (0)