about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLindsey Kuper <lindsey@rockstargirl.org>2012-06-19 17:06:05 -0700
committerLindsey Kuper <lindsey@rockstargirl.org>2012-06-19 17:06:05 -0700
commit3cf582b5291b9ab72cac6d54abb405017922475c (patch)
treeead89c558de60f721abca2db5300783ec8ba3b9d
parentb1fa8249f19eac9a2066ca6b4d1ffd438c666dc8 (diff)
downloadrust-3cf582b5291b9ab72cac6d54abb405017922475c.tar.gz
rust-3cf582b5291b9ab72cac6d54abb405017922475c.zip
Enable integer literal suffix inference.
-rw-r--r--src/rustc/middle/typeck/check.rs5
-rw-r--r--src/test/compile-fail/integer-literal-suffix-inference.rs1
-rw-r--r--src/test/run-pass/inferred-suffix-in-pattern-range.rs22
-rw-r--r--src/test/run-pass/integer-literal-suffix-inference.rs1
4 files changed, 23 insertions, 6 deletions
diff --git a/src/rustc/middle/typeck/check.rs b/src/rustc/middle/typeck/check.rs
index 9b9b92e1e01..14b7e847a2a 100644
--- a/src/rustc/middle/typeck/check.rs
+++ b/src/rustc/middle/typeck/check.rs
@@ -626,10 +626,7 @@ fn check_lit(fcx: @fn_ctxt, lit: @ast::lit) -> ty::t {
       ast::lit_int_unsuffixed(_) {
         // An unsuffixed integer literal could have any integral type,
         // so we create an integral type variable for it.
-        ty::mk_var_integral(tcx, fcx.infcx.next_ty_var_integral_id());
-
-        // FIXME: remove me when #1425 is finished.
-        ty::mk_mach_int(tcx, ty_i)
+        ty::mk_var_integral(tcx, fcx.infcx.next_ty_var_integral_id())
       }
       ast::lit_float(_, t) { ty::mk_mach_float(tcx, t) }
       ast::lit_nil { ty::mk_nil(tcx) }
diff --git a/src/test/compile-fail/integer-literal-suffix-inference.rs b/src/test/compile-fail/integer-literal-suffix-inference.rs
index 2e868e160fa..96c7983c2ba 100644
--- a/src/test/compile-fail/integer-literal-suffix-inference.rs
+++ b/src/test/compile-fail/integer-literal-suffix-inference.rs
@@ -1,4 +1,3 @@
-// xfail-test
 fn main() {
 
     // the smallest positive values that need these types
diff --git a/src/test/run-pass/inferred-suffix-in-pattern-range.rs b/src/test/run-pass/inferred-suffix-in-pattern-range.rs
new file mode 100644
index 00000000000..d0647dd1ec9
--- /dev/null
+++ b/src/test/run-pass/inferred-suffix-in-pattern-range.rs
@@ -0,0 +1,22 @@
+fn main() {
+    let x = 2;
+    let x_message = alt x {
+      0 to 1     { "not many" }
+      _          { "lots" }
+    };
+    assert x_message == "lots";
+
+    let y = 2i;
+    let y_message = alt y {
+      0 to 1     { "not many" }
+      _          { "lots" }
+    };
+    assert y_message == "lots";
+
+    let z = 1u64;
+    let z_message = alt z {
+      0 to 1     { "not many" }
+      _          { "lots" }
+    };
+    assert z_message == "not many";
+}
diff --git a/src/test/run-pass/integer-literal-suffix-inference.rs b/src/test/run-pass/integer-literal-suffix-inference.rs
index cc3b4cb150f..8fd51180477 100644
--- a/src/test/run-pass/integer-literal-suffix-inference.rs
+++ b/src/test/run-pass/integer-literal-suffix-inference.rs
@@ -1,4 +1,3 @@
-// xfail-test
 fn main() {
 
     // The commented-out lines are ones that fail currently.  I'm