Skip to content

Commit a3a2737

Browse files
committed
Don't descend into functions from relax_precond_block
Closes rust-lang#913
1 parent 759fc10 commit a3a2737

File tree

3 files changed

+7
-11
lines changed

3 files changed

+7
-11
lines changed

src/comp/middle/trans.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4091,7 +4091,7 @@ fn trans_rec(bcx: @block_ctxt, fields: [ast::field],
40914091
for tf in ty_fields {
40924092
let dst = GEP_tup_like_1(bcx, t, addr, [0, i]);
40934093
bcx = dst.bcx;
4094-
// FIXME make this {|f| str::eq(f.node.ident, tf.ident)} again when
4094+
// FIXME make this again when
40954095
// bug #913 is fixed
40964096
fn test(n: str, f: ast::field) -> bool { str::eq(f.node.ident, n) }
40974097
alt vec::find(bind test(tf.ident, _), fields) {

src/comp/middle/tstate/bitvectors.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,8 @@ fn relax_precond_block(fcx: fn_ctxt, i: node_id, b: blk) {
150150
visit_expr: relax_precond_expr,
151151
visit_stmt: relax_precond_stmt,
152152
visit_item:
153-
fn (_i: @item, _cx: relax_ctxt, _vt: visit::vt<relax_ctxt>) { }
153+
fn (_i: @item, _cx: relax_ctxt, _vt: visit::vt<relax_ctxt>) { },
154+
visit_fn: do_nothing
154155
with *visitor};
155156
let v1 = visit::mk_vt(visitor);
156157
v1.visit_block(b, cx, v1);

src/comp/middle/tstate/collect_locals.rs

+4-9
Original file line numberDiff line numberDiff line change
@@ -130,19 +130,14 @@ fn mk_fn_info(ccx: crate_ctxt, f: _fn, tp: [ty_param], f_sp: span,
130130
// "diverges" constraint
131131
let diverges_id = ccx.tcx.sess.next_node_id();
132132
let diverges_name = name + "!";
133-
add_constraint(cx.tcx, respan(f_sp, ninit(diverges_id, diverges_name)),
134-
next, res_map);
133+
next = add_constraint(cx.tcx, respan(f_sp, ninit(diverges_id,
134+
diverges_name)),
135+
next, res_map);
135136

136137
let v: @mutable [node_id] = @mutable [];
137138
let rslt =
138139
{constrs: res_map,
139-
140-
// add 2 to account for the i_return and i_diverge constraints
141-
// FIXME the 1u here is a kludge to make bug #913's impact somewhat
142-
// smaller. it should be removed once the bug is really fixed
143-
num_constraints:
144-
vec::len(*cx.cs) + vec::len(f.decl.constraints) +
145-
vec::len(f.decl.inputs) + 2u + 1u,
140+
num_constraints: next,
146141
cf: f.decl.cf,
147142
i_return: ninit(id, name),
148143
i_diverge: ninit(diverges_id, diverges_name),

0 commit comments

Comments
 (0)