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 3b97e5e49e30..86466bb8de12 100644 --- a/src/libcore/extfmt.rs +++ b/src/libcore/extfmt.rs @@ -112,7 +112,7 @@ fn flush_buf(buf: str, &pieces: [piece]) -> str { } } 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 b95b10fc33e8..63dc85e865d0 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 51b26373c367..32bafac535b5 100644 --- a/src/librustsyntax/parse/parser.rs +++ b/src/librustsyntax/parse/parser.rs @@ -90,7 +90,7 @@ enum class_contents { ctor_decl(fn_decl, blk, codemap::span), 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 @@ fn permits_call() -> bool { 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 @@ fn parse_dot_or_call_expr_with(e0: pexpr) -> pexpr { 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 2fe247150830..97fb2de4f987 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 e330ae93b49d..ba42f0e633b3 100644 --- a/src/libstd/rope.rs +++ b/src/libstd/rope.rs @@ -753,7 +753,7 @@ fn of_substr_unsafer(str: @str, byte_start: uint, byte_len: uint, 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 @@ fn cmp(a: @node, b: @node) -> int { 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 @@ fn cmp(a: @node, b: @node) -> int { result = -1; } } - pos += 1u; } ret result; } diff --git a/src/rustc/back/link.rs b/src/rustc/back/link.rs index 5541bbd8451c..365d77522398 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 0cb99af21417..fa60fa5934a9 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 c60a6446fc45..aece631bf5d3 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 ecd6b43a7f06..7749ec07e802 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 20a1c7bff85e..fd8e9ddaf22e 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 abfe2989f780..c6f927e6efaf 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 f3c10547708f..60e69d2cb059 100644 --- a/src/rustc/middle/typeck/check.rs +++ b/src/rustc/middle/typeck/check.rs @@ -1481,7 +1481,7 @@ fn get_node(f: spanned) -> field { f.node } } 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 268777f5aaf2..67e498880d31 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 8c5dd361baed..9e83fd4be355 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 zcmeHOeQaA-6~DHV)v&b5x=EBlSGTyMo7OmS?AX;-&FSj#%F$Ck_d-Iq4 zk){)cjEpIs70H850)(LdfQGa`DnP7k1@%j9C8m*q1{M54sW#1iszPp8GrJo^yR~b>7YI-h1nVHH?`ojLn!CW9yMmS{eHmv!TVc=bLw=CT0FJm zl|F^VU}%meAralfo4o8{GtHzdXLI>rw%*l_w_zj4vkMNL)+bm6-gTmbnvH zYsb4w;EfA@qRH;{v`oKHDw%C8xE-$~@D2z7qFdHm2j&e~R-e}!7IzV$M%mkvDvuY*nsE*ttCN|UkMjmO-r(z&ZLe&FL_GIz#X0Nwh4aP zAKlk^B-OCma=dMrPy0ldPjvG-$)CDU(S$z9xSTzf2&Uq4I+t0d-w@^#p1xe7+wo}4 zdXnY1(hbjN<9I`20@2NQg!KtAMwKjwm7LP(Xt!V5#_@cDh3M|~Yu|UR{yi!1<^&$m z-SL9i#;j8!p_*0=%LI>H$3?F(+k zYUsQk?Eo^RwIb8mya~D4?;u;!9On18^l)MwDjRYivLm0(IO4IOBYZ3#22JTR$fU=y zw|}znn_t~|{V#hH$FCgv>%Z;jqjj(~pQKVdi%+2@Kiy6p|Kp^e_p7Nv>z0sdjm`VY zmq{zRC|M(v%Bb7JPLJyHcsz=GBs8MBhqez5ItO8pk$85l8$UnIifl>FOx!{6`2~#(&SAGd5+1fn#nqn2_=_R9*$)lQy^oh zq#AY**7jgLuR1;^(X>vVE?3)^sgM%?@Os~hxwJp4PVN&ljbvEBuz+C!!vcl{3=0?* zFf3qLz_5T}0mA}@1^(|X@DP&*&pUo)sf4^*y`W-nMDJTG1H6DX64{+iTFaV4qX zuT`!^`Zw)ntVN#{@S+Vo)&Z%C6|THK3b;{f(r<%~C(SO}G!<>I600z2{&-cIpDaU2 znba*K;6OT8rP-P(XRY*9ZmO)Wyf4k8r=i{O-IU&tSj z3X?UdaJ&i-GS&c$MFKBr5l5-Gw$bw*tO*Rs5QCwtTk+ZaOQ?{_O+J zFSlKmc9N$3Po0~&W+E--1}ZQ1Z))|=3i2)^#<|*hXdwk_<*oirzE->y{4?EzSN9J& zo;FUgS4GUe0238^@53*mXf5nrgs#QCi#sl7&6StQkrj55J!6{lSMpmb>SXz3*|L&Y0o_)gqrpxq73?<$kS6=(m+c4a%3{7&z5u-{ zl}PLFe+4{m3*LP1*PxL!zgC6$u+xBkN%MChUzG|MvEpjEh8cYG(Xk;tx_F8@3U}G1 zLe6fL3j6KYr{newL_CQAH9}BvC~YRU}bpK~zc;mC{6|G*Kx{R7w+- z(nY0oQ7Iwn(F?SW@#3U)&(b-maA9oe_flaoP^RGdfd|hoZQX)j`O;RqR^Fg%f~Uy3fyd4Ftku7P5#Mg)s~>_d4!)Y; z`yxk!x0mCQcWv)+xrD8y75GkLKoWd8!L}0Ks~9^W_#WuO*N1gq5qya*d@k_W{>Akh z@4|Noe3Ib1)`jme@D04r@g}gvPCFS-0wBoBow zEtyIz>FC99HoVJEw#mCe8zmehQLN*WpH2 zJat6Q9ZRd!9c^?c)uVL;W|mnW7n5YYGTWI@VoCOEi?%i;7?Z`@M|RFKabPTSguQ4{ zlT)z_ULIeyu%1K|O4H*^6;J*ZTGc}bCs{AhsL|c_LoU@iVitqk!kkBOS+1n_V5pE}AWD!9fcdLa{)_iD48~ zDi-jF*-Sx8njQ=)-l2#)thn7lchJdIDp|XS&_5USg0L_B zEfDFa#}{7(Z87nFSIy0mf>WmHM49wy@zId5l~4E9t$6H@CPY3)yS#66Hmh3OU$Q^B4)7FM$% zx2D^$OaDm0KU?g;$*ld7ahb^4xf&Anl*aFjbUxK+t`yPnO& z;OctHX&hY-I^tOMgol&pkD|2u1O8fe)hxS#>*u5H6S~V}{l0>Gh+KBF@!O9yTIJeb iCa?32&#&_4OMLnDt@mgbw@%crY`vp#Sugt!#D4&LC6DR= 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 a9ff80637a1d..34adff6f0ae0 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 @@ 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); }