@@ -333,19 +333,12 @@ fn run_compiler(
333
333
expanded_args: args,
334
334
} ;
335
335
336
- let has_input = match make_input( & default_early_dcx, & matches. free) {
337
- Err ( reported) => return Err ( reported) ,
338
- Ok ( Some ( input) ) => {
336
+ let has_input = match make_input( & default_early_dcx, & matches. free) ? {
337
+ Some ( input) => {
339
338
config. input = input;
340
339
true // has input: normal compilation
341
340
}
342
- Ok ( None ) => match matches. free. as_slice( ) {
343
- [ ] => false , // no input: we will exit early
344
- [ _] => panic!( "make_input should have provided valid inputs" ) ,
345
- [ fst, snd, ..] => default_early_dcx. early_fatal( format!(
346
- "multiple input filenames provided (first two filenames are `{fst}` and `{snd}`)"
347
- ) ) ,
348
- } ,
341
+ None => false , // no input: we will exit early
349
342
} ;
350
343
351
344
drop( default_early_dcx) ;
@@ -490,37 +483,40 @@ fn make_input(
490
483
early_dcx: & EarlyDiagCtxt ,
491
484
free_matches: & [ String ] ,
492
485
) -> Result <Option <Input >, ErrorGuaranteed > {
493
- let [ input_file] = free_matches else { return Ok ( None ) } ;
494
-
495
- if input_file != "-" {
496
- // Normal `Input::File`
497
- return Ok ( Some ( Input :: File ( PathBuf :: from( input_file) ) ) ) ;
498
- }
499
-
500
- // read from stdin as `Input::Str`
501
- let mut input = String :: new( ) ;
502
- if io:: stdin( ) . read_to_string( & mut input) . is_err( ) {
503
- // Immediately stop compilation if there was an issue reading
504
- // the input (for example if the input stream is not UTF-8).
505
- let reported =
506
- early_dcx. early_err( "couldn't read from stdin, as it did not contain valid UTF-8" ) ;
507
- return Err ( reported) ;
508
- }
486
+ match free_matches {
487
+ [ ] => Ok ( None ) , // no input: we will exit early,
488
+ [ ifile] if ifile == "-" => {
489
+ // read from stdin as `Input::Str`
490
+ let mut input = String :: new( ) ;
491
+ if io:: stdin( ) . read_to_string( & mut input) . is_err( ) {
492
+ // Immediately stop compilation if there was an issue reading
493
+ // the input (for example if the input stream is not UTF-8).
494
+ let reported = early_dcx
495
+ . early_err( "couldn't read from stdin, as it did not contain valid UTF-8" ) ;
496
+ return Err ( reported) ;
497
+ }
509
498
510
- let name = match env:: var( "UNSTABLE_RUSTDOC_TEST_PATH" ) {
511
- Ok ( path) => {
512
- let line = env:: var( "UNSTABLE_RUSTDOC_TEST_LINE" ) . expect(
513
- "when UNSTABLE_RUSTDOC_TEST_PATH is set \
499
+ let name = match env:: var( "UNSTABLE_RUSTDOC_TEST_PATH" ) {
500
+ Ok ( path) => {
501
+ let line = env:: var( "UNSTABLE_RUSTDOC_TEST_LINE" ) . expect(
502
+ "when UNSTABLE_RUSTDOC_TEST_PATH is set \
514
503
UNSTABLE_RUSTDOC_TEST_LINE also needs to be set",
515
- ) ;
516
- let line = isize :: from_str_radix( & line, 10 )
517
- . expect( "UNSTABLE_RUSTDOC_TEST_LINE needs to be an number" ) ;
518
- FileName :: doc_test_source_code( PathBuf :: from( path) , line)
519
- }
520
- Err ( _) => FileName :: anon_source_code( & input) ,
521
- } ;
504
+ ) ;
505
+ let line = isize :: from_str_radix( & line, 10 )
506
+ . expect( "UNSTABLE_RUSTDOC_TEST_LINE needs to be an number" ) ;
507
+ FileName :: doc_test_source_code( PathBuf :: from( path) , line)
508
+ }
509
+ Err ( _) => FileName :: anon_source_code( & input) ,
510
+ } ;
522
511
523
- Ok ( Some ( Input :: Str { name, input } ) )
512
+ Ok ( Some ( Input :: Str { name, input } ) )
513
+ }
514
+ [ ifile] => Ok ( Some ( Input :: File ( PathBuf :: from( ifile) ) ) ) ,
515
+ _ => early_dcx. early_fatal( format!(
516
+ "multiple input filenames provided (first two filenames are `{}` and `{}`)" ,
517
+ free_matches[ 0 ] , free_matches[ 1 ] ,
518
+ ) ) ,
519
+ }
524
520
}
525
521
526
522
/// Whether to stop or continue compilation.
0 commit comments