Skip to content

Commit 0f3805b

Browse files
committed
added error handle for error code > 9999
1 parent 651e9cf commit 0f3805b

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

compiler/rustc_driver_impl/src/lib.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,9 @@ pub enum Compilation {
462462
fn handle_explain(early_dcx: &EarlyDiagCtxt, registry: Registry, code: &str, color: ColorConfig) {
463463
// Allow "E0123" or "0123" form.
464464
let upper_cased_code = code.to_ascii_uppercase();
465-
if let Ok(code) = upper_cased_code.strip_prefix('E').unwrap_or(&upper_cased_code).parse::<u32>()
465+
let result_code =
466+
upper_cased_code.strip_prefix('E').unwrap_or(&upper_cased_code).parse::<u32>();
467+
if let Ok(code) = result_code
466468
&& let Ok(description) = registry.try_find_description(ErrCode::from_u32(code))
467469
{
468470
let mut is_in_code_block = false;
@@ -487,6 +489,11 @@ fn handle_explain(early_dcx: &EarlyDiagCtxt, registry: Registry, code: &str, col
487489
} else {
488490
safe_print!("{text}");
489491
}
492+
} else if let Ok(code) = result_code
493+
&& code > 9999
494+
{
495+
early_dcx
496+
.early_fatal(format!("{upper_cased_code} exceeds the maximum allowed value (E9999)"));
490497
} else {
491498
early_dcx.early_fatal(format!("{code} is not a valid error code"));
492499
}

compiler/rustc_errors/src/codes.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use std::fmt;
88

99
rustc_index::newtype_index! {
10-
#[max = 9999] // Because all error codes have four digits.
1110
#[orderable]
1211
#[encodable]
1312
#[debug_format = "ErrCode({})"]

0 commit comments

Comments
 (0)