about summary refs log tree commit diff
path: root/src/test/compile-fail/borrowck-if-with-else.rs
diff options
context:
space:
mode:
authorEdward Wang <edward.yu.wang@gmail.com>2014-03-06 22:58:34 +0800
committerEdward Wang <edward.yu.wang@gmail.com>2014-03-09 23:23:28 +0800
commitabfde39b0e904cf39d3fbf392d747f4f168017ec (patch)
tree6b21be65a51483cd0dcdf0b01931a0fa55f95526 /src/test/compile-fail/borrowck-if-with-else.rs
parent62f1d68439dcfd509eaca29887afa97f22938373 (diff)
downloadrust-abfde39b0e904cf39d3fbf392d747f4f168017ec.tar.gz
rust-abfde39b0e904cf39d3fbf392d747f4f168017ec.zip
borrowck: classify expressions as assignees, uses or both
- Repurposes `MoveData.assignee_ids` to mean only `=` but not `+=`, so
  that borrowck effectively classifies all expressions into assignees,
  uses or both.
- Removes two `span_err` in liveness analysis, which are now borrowck's
  responsibilities.

Closes #12527.
Diffstat (limited to 'src/test/compile-fail/borrowck-if-with-else.rs')
-rw-r--r--src/test/compile-fail/borrowck-if-with-else.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/compile-fail/borrowck-if-with-else.rs b/src/test/compile-fail/borrowck-if-with-else.rs
new file mode 100644
index 00000000000..55fb8222634
--- /dev/null
+++ b/src/test/compile-fail/borrowck-if-with-else.rs
@@ -0,0 +1,21 @@
+// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+fn foo(x: int) { info!("{:?}", x); }
+
+fn main() {
+    let x: int;
+    if 1 > 2 {
+        info!("whoops");
+    } else {
+        x = 10;
+    }
+    foo(x); //~ ERROR use of possibly uninitialized variable: `x`
+}