From ccd8d5573ea41fbcdd2b8212f7ec28876e15fd32 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 24 May 2012 13:35:57 -0700 Subject: [PATCH] remove dead assignments --- src/libcore/extfmt.rs | 2 +- src/librustsyntax/parse/lexer.rs | 2 +- src/librustsyntax/parse/parser.rs | 6 ++--- src/libstd/net_tcp.rs | 3 +-- src/libstd/rope.rs | 4 +-- src/rustc/back/link.rs | 7 +++-- src/rustc/driver/driver.rs | 4 +-- src/rustc/middle/trans/base.rs | 2 +- src/rustc/middle/tstate/auxiliary.rs | 3 ++- .../middle/tstate/pre_post_conditions.rs | 4 +-- src/rustc/middle/tstate/states.rs | 25 ------------------ src/rustc/middle/typeck/check.rs | 2 +- src/rustc/middle/typeck/check/alt.rs | 2 +- .../borrowck-pure-scope-in-call.rs | 2 ++ src/test/compile-fail/liveness-unused | Bin 0 -> 14524 bytes src/test/compile-fail/no-reuse-move-arc.rs | 7 +++-- 16 files changed, 24 insertions(+), 51 deletions(-) create mode 100755 src/test/compile-fail/liveness-unused diff --git a/src/libcore/extfmt.rs b/src/libcore/extfmt.rs index 3b97e5e49e3..86466bb8de1 100644 --- a/src/libcore/extfmt.rs +++ b/src/libcore/extfmt.rs @@ -112,7 +112,7 @@ mod ct { } } else { buf += curr; i += 1u; } } - buf = flush_buf(buf, pieces); + flush_buf(buf, pieces); ret pieces; } fn peek_num(s: str, i: uint, lim: uint) -> diff --git a/src/librustsyntax/parse/lexer.rs b/src/librustsyntax/parse/lexer.rs index b95b10fc33e..63dc85e865d 100644 --- a/src/librustsyntax/parse/lexer.rs +++ b/src/librustsyntax/parse/lexer.rs @@ -199,7 +199,7 @@ fn scan_number(c: char, rdr: reader) -> token::token { } num_str = scan_digits(rdr, base); c = rdr.curr; - n = rdr.next(); + rdr.next(); if c == 'u' || c == 'i' { let signed = c == 'i'; let mut tp = { diff --git a/src/librustsyntax/parse/parser.rs b/src/librustsyntax/parse/parser.rs index 51b26373c36..32bafac535b 100644 --- a/src/librustsyntax/parse/parser.rs +++ b/src/librustsyntax/parse/parser.rs @@ -90,7 +90,7 @@ class parser { self.span = span0; self.last_span = span0; self.buffer = dvec::dvec(); - self.restriction == UNRESTRICTED; + self.restriction = UNRESTRICTED; self.reader = rdr; self.keywords = token::keyword_table(); self.restricted_keywords = token::restricted_keyword_table(); @@ -949,7 +949,7 @@ class parser { fn parse_dot_or_call_expr_with(e0: pexpr) -> pexpr { let mut e = e0; let lo = e.span.lo; - let mut hi = e.span.hi; + let mut hi; loop { // expr.f if eat(self, token::DOT) { @@ -1025,7 +1025,7 @@ class parser { fn parse_prefix_expr() -> pexpr { let lo = self.span.lo; - let mut hi = self.span.hi; + let mut hi; let mut ex; alt self.token { diff --git a/src/libstd/net_tcp.rs b/src/libstd/net_tcp.rs index 2fe24715083..97fb2de4f98 100644 --- a/src/libstd/net_tcp.rs +++ b/src/libstd/net_tcp.rs @@ -734,7 +734,6 @@ fn listen_for_conn(host_ip: ip::ip_addr, port: uint, backlog: uint, } } }; - let mut kill_result: option = none; alt comm::recv(setup_po) { some(err_data) { // we failed to bind/list w/ libuv @@ -742,7 +741,7 @@ fn listen_for_conn(host_ip: ip::ip_addr, port: uint, backlog: uint, } none { on_establish_cb(kill_ch); - kill_result = comm::recv(kill_po); + let kill_result = comm::recv(kill_po); uv::hl::interact(hl_loop) {|loop_ptr| log(debug, #fmt("tcp::listen post-kill recv hl interact %?", loop_ptr)); diff --git a/src/libstd/rope.rs b/src/libstd/rope.rs index e330ae93b49..ba42f0e633b 100644 --- a/src/libstd/rope.rs +++ b/src/libstd/rope.rs @@ -753,7 +753,7 @@ mod node { execution and should be discarded as meaningless afterwards. "] fn tree_from_forest_destructive(forest: [mut @node]) -> @node { - let mut i = 0u; + let mut i; let mut len = vec::len(forest); while len > 1u { i = 0u; @@ -1020,7 +1020,6 @@ mod node { let ita = char_iterator::start(a); let itb = char_iterator::start(b); let mut result = 0; - let mut pos = 0u; while result == 0 { alt((char_iterator::next(ita), char_iterator::next(itb))) { (option::none, option::none) { @@ -1036,7 +1035,6 @@ mod node { result = -1; } } - pos += 1u; } ret result; } diff --git a/src/rustc/back/link.rs b/src/rustc/back/link.rs index 5541bbd8451..365d7752239 100644 --- a/src/rustc/back/link.rs +++ b/src/rustc/back/link.rs @@ -429,15 +429,14 @@ fn symbol_hash(tcx: ty::ctxt, sha: sha1, t: ty::t, } fn get_symbol_hash(ccx: @crate_ctxt, t: ty::t) -> str { - let mut hash = ""; alt ccx.type_sha1s.find(t) { - some(h) { hash = h; } + some(h) { ret h; } none { - hash = symbol_hash(ccx.tcx, ccx.sha, t, ccx.link_meta); + let hash = symbol_hash(ccx.tcx, ccx.sha, t, ccx.link_meta); ccx.type_sha1s.insert(t, hash); + ret hash; } } - ret hash; } diff --git a/src/rustc/driver/driver.rs b/src/rustc/driver/driver.rs index 0cb99af2141..fa60fa5934a 100644 --- a/src/rustc/driver/driver.rs +++ b/src/rustc/driver/driver.rs @@ -587,8 +587,8 @@ fn build_output_filenames(input: input, ofile: option, sess: session) -> output_filenames { - let mut obj_path = ""; - let mut out_path: str = ""; + let mut obj_path; // FIXME remove mut after snapshot + let mut out_path; // FIXME remove mut after snapshot let sopts = sess.opts; let stop_after_codegen = sopts.output_type != link::output_type_exe || diff --git a/src/rustc/middle/trans/base.rs b/src/rustc/middle/trans/base.rs index c60a6446fc4..aece631bf5d 100644 --- a/src/rustc/middle/trans/base.rs +++ b/src/rustc/middle/trans/base.rs @@ -3855,7 +3855,7 @@ fn trans_break_cont(bcx: block, to_end: bool) let _icx = bcx.insn_ctxt("trans_break_cont"); // Locate closest loop block, outputting cleanup as we go. let mut unwind = bcx; - let mut target = bcx; + let mut target = bcx; // FIXME---not necc. but tstate thinks it is loop { alt unwind.kind { block_scope({loop_break: some(brk), _}) { diff --git a/src/rustc/middle/tstate/auxiliary.rs b/src/rustc/middle/tstate/auxiliary.rs index ecd6b43a7f0..7749ec07e80 100644 --- a/src/rustc/middle/tstate/auxiliary.rs +++ b/src/rustc/middle/tstate/auxiliary.rs @@ -472,7 +472,8 @@ fn node_id_to_def(ccx: crate_ctxt, id: node_id) -> option { fn norm_a_constraint(id: def_id, c: constraint) -> [norm_constraint] { let mut rslt: [norm_constraint] = []; - for vec::each(*c.descs) {|pd| + let descs = *c.descs; + for vec::each(descs) {|pd| rslt += [{bit_num: pd.node.bit_num, c: respan(pd.span, {path: c.path, diff --git a/src/rustc/middle/tstate/pre_post_conditions.rs b/src/rustc/middle/tstate/pre_post_conditions.rs index 20a1c7bff85..fd8e9ddaf22 100644 --- a/src/rustc/middle/tstate/pre_post_conditions.rs +++ b/src/rustc/middle/tstate/pre_post_conditions.rs @@ -167,7 +167,7 @@ fn join_then_else(fcx: fn_ctxt, antec: @expr, conseq: blk, } fn gen_if_local(fcx: fn_ctxt, lhs: @expr, rhs: @expr, larger_id: node_id, - new_var: node_id, pth: @path) { + new_var: node_id) { alt node_id_to_def(fcx.ccx, new_var) { some(d) { alt d { @@ -206,7 +206,7 @@ fn handle_update(fcx: fn_ctxt, parent: @expr, lhs: @expr, rhs: @expr, _ { } } - gen_if_local(fcx, lhs, rhs, parent.id, lhs.id, p); + gen_if_local(fcx, lhs, rhs, parent.id, lhs.id); alt rhs.node { expr_path(p1) { let d = local_node_id_to_local_def_id(fcx, lhs.id); diff --git a/src/rustc/middle/tstate/states.rs b/src/rustc/middle/tstate/states.rs index abfe2989f78..c6f927e6efa 100644 --- a/src/rustc/middle/tstate/states.rs +++ b/src/rustc/middle/tstate/states.rs @@ -197,30 +197,6 @@ fn find_pre_post_state_exprs(fcx: fn_ctxt, pres: prestate, id: node_id, ret changed; } -fn find_pre_post_state_loop(fcx: fn_ctxt, pres: prestate, l: @local, - index: @expr, body: blk, id: node_id) -> bool { - // I'm confused about this -- how does the poststate for the body - // ever grow larger? It seems like it can't? - let loop_pres = intersect_states(pres, block_poststate(fcx.ccx, body)); - - let mut changed = - set_prestate_ann(fcx.ccx, id, loop_pres) | - find_pre_post_state_expr(fcx, pres, index); - - let index_post = tritv_clone(expr_poststate(fcx.ccx, index)); - changed |= find_pre_post_state_block(fcx, index_post, body); - - if has_nonlocal_exits(body) { - // See [Break-unsound] - ret changed | set_poststate_ann(fcx.ccx, id, pres); - } else { - let res_p = - intersect_states(expr_poststate(fcx.ccx, index), - block_poststate(fcx.ccx, body)); - ret changed | set_poststate_ann(fcx.ccx, id, res_p); - } -} - fn join_then_else(fcx: fn_ctxt, antec: @expr, conseq: blk, maybe_alt: option<@expr>, id: node_id, chk: if_ty, pres: prestate) -> bool { @@ -664,7 +640,6 @@ fn find_pre_post_state_block(fcx: fn_ctxt, pres0: prestate, b: blk) -> bool { fn find_pre_post_state_fn(fcx: fn_ctxt, f_decl: fn_decl, f_body: blk) -> bool { - let num_constrs = num_constraints(fcx.enclosing); // All constraints are considered false until proven otherwise. // This ensures that intersect works correctly. kill_all_prestate(fcx, f_body.node.id); diff --git a/src/rustc/middle/typeck/check.rs b/src/rustc/middle/typeck/check.rs index f3c10547708..60e69d2cb05 100644 --- a/src/rustc/middle/typeck/check.rs +++ b/src/rustc/middle/typeck/check.rs @@ -1481,7 +1481,7 @@ fn check_expr_with_unifier(fcx: @fn_ctxt, } some(bexpr) { let bexpr_t = fcx.expr_ty(bexpr); - let mut base_fields: [field] = []; + let mut base_fields; // FIXME remove mut after snapshot alt structure_of(fcx, expr.span, bexpr_t) { ty::ty_rec(flds) { base_fields = flds; } _ { diff --git a/src/rustc/middle/typeck/check/alt.rs b/src/rustc/middle/typeck/check/alt.rs index 268777f5aaf..67e498880d3 100644 --- a/src/rustc/middle/typeck/check/alt.rs +++ b/src/rustc/middle/typeck/check/alt.rs @@ -5,7 +5,7 @@ fn check_alt(fcx: @fn_ctxt, discrim: @ast::expr, arms: [ast::arm]) -> bool { let tcx = fcx.ccx.tcx; - let mut bot = false; + let mut bot; let pattern_ty = fcx.infcx.next_ty_var(); bot = check_expr_with(fcx, discrim, pattern_ty); diff --git a/src/test/compile-fail/borrowck-pure-scope-in-call.rs b/src/test/compile-fail/borrowck-pure-scope-in-call.rs index 8c5dd361bae..9e83fd4be35 100644 --- a/src/test/compile-fail/borrowck-pure-scope-in-call.rs +++ b/src/test/compile-fail/borrowck-pure-scope-in-call.rs @@ -18,6 +18,8 @@ fn test2() { pure_borrow(x, x = ~5); //! ERROR assigning to mutable local variable prohibited due to outstanding loan //!^ NOTE loan of mutable local variable granted here + + copy x; } fn main() { diff --git a/src/test/compile-fail/liveness-unused b/src/test/compile-fail/liveness-unused new file mode 100755 index 0000000000000000000000000000000000000000..35ec482f6c7b8fe4aa7986b7de6849802f815f50 GIT binary patch literal 14524 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 literal 0 HcmV?d00001 diff --git a/src/test/compile-fail/no-reuse-move-arc.rs b/src/test/compile-fail/no-reuse-move-arc.rs index a9ff80637a1..34adff6f0ae 100644 --- a/src/test/compile-fail/no-reuse-move-arc.rs +++ b/src/test/compile-fail/no-reuse-move-arc.rs @@ -1,4 +1,3 @@ -// error-pattern: unsatisfied precondition constraint use std; import std::arc; import comm::*; @@ -6,13 +5,13 @@ import comm::*; fn main() { let v = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let arc_v = arc::arc(v); - - task::spawn() {|move arc_v| + + task::spawn() {|move arc_v| //! NOTE move of variable occurred here let v = *arc::get(&arc_v); assert v[3] == 4; }; - assert (*arc::get(&arc_v))[2] == 3; + assert (*arc::get(&arc_v))[2] == 3; //! ERROR use of moved variable: `arc_v` log(info, arc_v); }