]> git.lizzy.rs Git - rust.git/commitdiff
Cleanup argument parsing
authorAaron Hill <aa1ronham@gmail.com>
Tue, 9 Apr 2019 01:40:52 +0000 (21:40 -0400)
committerAaron Hill <aa1ronham@gmail.com>
Tue, 9 Apr 2019 01:40:52 +0000 (21:40 -0400)
src/bin/miri.rs

index 7f15d00e2c8abd5ab71b2080c5432d6e7665dc41..6e68f803f8584e0a6cd9cffb08d951ed9beea32b 100644 (file)
@@ -146,23 +146,22 @@ fn main() {
                 "--" => {
                     after_dashdash = true;
                 }
-                _ => {
-                    let split: Vec<String> = arg.split("-Zmiri-seed=").map(|s| s.to_owned()).collect();
-                    if split.len() == 2 {
-                        if seed.is_some() {
-                            panic!("Cannot specify -Zmiri-seed multiple times!");
-                        }
-                        let seed_raw = hex::decode(&split[1]).unwrap();
-                        if seed_raw.len() > 8 {
-                            panic!(format!("-Zmiri-seed must be at most 8 bytes, was {}", seed_raw.len()));
-                        }
-
-                        let mut bytes = [0; 8];
-                        bytes[..seed_raw.len()].copy_from_slice(&hex::decode(&split[1]).unwrap());
-                        seed = Some(u64::from_be_bytes(bytes));
-                    } else {
-                        rustc_args.push(arg);
+                arg if arg.starts_with("-Zmiri-seed=") => {
+                    if seed.is_some() {
+                        panic!("Cannot specify -Zmiri-seed multiple times!");
+                    }
+                    let seed_raw = hex::decode(arg.trim_start_matches("-Zmiri-seed=")).unwrap();
+                    if seed_raw.len() > 8 {
+                        panic!(format!("-Zmiri-seed must be at most 8 bytes, was {}", seed_raw.len()));
                     }
+
+                    let mut bytes = [0; 8];
+                    bytes[..seed_raw.len()].copy_from_slice(&seed_raw);
+                    seed = Some(u64::from_be_bytes(bytes));
+
+                },
+                _ => {
+                    rustc_args.push(arg);
                 }
             }
         }