@@ -64,7 +64,7 @@ pub struct RustHasher {
64
64
parsed_args : ParsedArguments ,
65
65
}
66
66
67
- #[ derive( Debug , Clone ) ]
67
+ #[ derive( Debug , Clone , PartialEq ) ]
68
68
pub struct ParsedArguments {
69
69
/// The full commandline, with arguments and their values as pairs.
70
70
arguments : Vec < ( OsString , Option < OsString > ) > ,
@@ -323,7 +323,7 @@ static ARGS: [(ArgInfo, RustArgAttribute); 33] = [
323
323
take_arg ! ( "--cap-lints" , Path , CanBeSeparated ( '=' ) , PassThrough ) ,
324
324
take_arg ! ( "--cfg" , Path , CanBeSeparated ( '=' ) , PassThrough ) ,
325
325
take_arg ! ( "--codegen" , Path , CanBeSeparated ( '=' ) , CodeGen ) ,
326
- take_arg ! ( "--color" , Path , CanBeSeparated ( '=' ) , CodeGen ) ,
326
+ take_arg ! ( "--color" , Path , CanBeSeparated ( '=' ) , PassThrough ) ,
327
327
take_arg ! ( "--crate-name" , String , CanBeSeparated ( '=' ) , CrateName ) ,
328
328
take_arg ! ( "--crate-type" , String , CanBeSeparated ( '=' ) , CrateType ) ,
329
329
take_arg ! ( "--deny" , Path , CanBeSeparated ( '=' ) , PassThrough ) ,
@@ -341,16 +341,16 @@ static ARGS: [(ArgInfo, RustArgAttribute); 33] = [
341
341
take_arg ! ( "--unpretty" , String , CanBeSeparated ( '=' ) , NotCompilation ) ,
342
342
flag ! ( "--version" , NotCompilation ) ,
343
343
take_arg ! ( "--warn" , Path , CanBeSeparated ( '=' ) , PassThrough ) ,
344
- take_arg ! ( "-A" , Path , CanBeSeparated ( '=' ) , LinkPath ) ,
345
- take_arg ! ( "-C" , Path , CanBeSeparated ( '=' ) , CodeGen ) ,
346
- take_arg ! ( "-D" , Path , CanBeSeparated ( '=' ) , CodeGen ) ,
347
- take_arg ! ( "-F" , Path , CanBeSeparated ( '=' ) , CodeGen ) ,
348
- take_arg ! ( "-L" , Path , CanBeSeparated ( '=' ) , LinkPath ) ,
344
+ take_arg ! ( "-A" , String , CanBeSeparated , PassThrough ) ,
345
+ take_arg ! ( "-C" , String , CanBeSeparated , CodeGen ) ,
346
+ take_arg ! ( "-D" , String , CanBeSeparated , PassThrough ) ,
347
+ take_arg ! ( "-F" , String , CanBeSeparated , PassThrough ) ,
348
+ take_arg ! ( "-L" , Path , CanBeSeparated , LinkPath ) ,
349
349
flag ! ( "-V" , NotCompilation ) ,
350
- take_arg ! ( "-W" , Path , CanBeSeparated ( '=' ) , LinkPath ) ,
351
- take_arg ! ( "-Z" , Path , CanBeSeparated ( '=' ) , LinkPath ) ,
352
- take_arg ! ( "-l" , Path , CanBeSeparated ( '=' ) , LinkLibrary ) ,
353
- take_arg ! ( "-o" , Path , CanBeSeparated ( '=' ) , TooHard ) ,
350
+ take_arg ! ( "-W" , String , CanBeSeparated , PassThrough ) ,
351
+ take_arg ! ( "-Z" , String , CanBeSeparated , PassThrough ) ,
352
+ take_arg ! ( "-l" , Path , CanBeSeparated , LinkLibrary ) ,
353
+ take_arg ! ( "-o" , Path , CanBeSeparated , TooHard ) ,
354
354
] ;
355
355
356
356
fn parse_arguments ( arguments : & [ OsString ] , cwd : & Path ) -> CompilerArguments < ParsedArguments >
@@ -759,6 +759,10 @@ mod test {
759
759
assert ! ( h. dep_info. is_none( ) ) ;
760
760
let h = parses ! ( "--emit" , "link" , "foo.rs" , "--out-dir=out" , "--crate-name=foo" ) ;
761
761
assert_eq ! ( h. output_dir. to_str( ) , Some ( "out" ) ) ;
762
+ assert_eq ! ( parses!( "--emit" , "link" , "-C" , "opt-level=1" , "foo.rs" ,
763
+ "--out-dir" , "out" , "--crate-name" , "foo" ) ,
764
+ parses!( "--emit=link" , "-Copt-level=1" , "foo.rs" ,
765
+ "--out-dir=out" , "--crate-name=foo" ) ) ;
762
766
let h = parses ! ( "--emit" , "link,dep-info" , "foo.rs" , "--out-dir" , "out" ,
763
767
"--crate-name" , "my_crate" ,
764
768
"-C" , "extra-filename=-abcxyz" ) ;
0 commit comments