about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2015-02-25 03:20:58 +0530
committerManish Goregaokar <manishsmail@gmail.com>2015-02-25 03:20:58 +0530
commitad73cb0e18da41d020c70efeadac32969d01716c (patch)
tree7eca2b3fe3aad01e16acd2844e32cc73de92a9ab /src
parent5af3d660defc3f53995a32e7e8b7847a902745dc (diff)
parenta9f6f4b73e838e83538d4544141d8354b4633aed (diff)
downloadrust-ad73cb0e18da41d020c70efeadac32969d01716c.tar.gz
rust-ad73cb0e18da41d020c70efeadac32969d01716c.zip
Rollup merge of #22747 - krdln:fix-parsing-minus, r=alexcrichton
 Makes Rust less amusing by fixing [#22745](https://github.com/rust-lang/rust/issues/22745)
Diffstat (limited to 'src')
-rw-r--r--src/libcore/num/mod.rs1
-rw-r--r--src/libcoretest/num/mod.rs5
2 files changed, 6 insertions, 0 deletions
diff --git a/src/libcore/num/mod.rs b/src/libcore/num/mod.rs
index 7612469c808..b1039f79f23 100644
--- a/src/libcore/num/mod.rs
+++ b/src/libcore/num/mod.rs
@@ -1672,6 +1672,7 @@ macro_rules! from_str_radix_int_impl {
                 let is_signed_ty = (0 as $T) > Int::min_value();
 
                 match src.slice_shift_char() {
+                    Some(('-', "")) => Err(PIE { kind: Empty }),
                     Some(('-', src)) if is_signed_ty => {
                         // The number is negative
                         let mut result = 0;
diff --git a/src/libcoretest/num/mod.rs b/src/libcoretest/num/mod.rs
index 2c6efc0040f..03f6e51a349 100644
--- a/src/libcoretest/num/mod.rs
+++ b/src/libcoretest/num/mod.rs
@@ -122,4 +122,9 @@ mod test {
         assert_eq!("-9223372036854775808".parse::<i64>().ok(), Some(i64_val));
         assert_eq!("-9223372036854775809".parse::<i64>().ok(), None);
     }
+
+    #[test]
+    fn test_int_from_minus_sign() {
+        assert_eq!("-".parse::<i32>().ok(), None);
+    }
 }