mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 11:07:42 +00:00
jsondocck: Use correct index for error message.
If you misused a count command like `@count $some.selector '"T'"`, you would panic with OOB: ``` thread 'main' panicked at src/tools/jsondocck/src/main.rs:76:92: index out of bounds: the len is 2 but the index is 2 ``` Fixing this typo, we now get. ``` Invalid command: Second argument to @count must be a valid usize (got `"T"`) on line 20 ``` As some point I want to rewrite this code to avoid indexing in general, but this is a nice small fix.
This commit is contained in:
parent
c872a1418a
commit
ccc8baf08a
@ -56,6 +56,8 @@ pub enum CommandKind {
|
|||||||
|
|
||||||
impl CommandKind {
|
impl CommandKind {
|
||||||
fn validate(&self, args: &[String], lineno: usize) -> bool {
|
fn validate(&self, args: &[String], lineno: usize) -> bool {
|
||||||
|
// FIXME(adotinthevoid): We should "parse, don't validate" here, so we avoid ad-hoc
|
||||||
|
// indexing in check_command.
|
||||||
let count = match self {
|
let count = match self {
|
||||||
CommandKind::Has => (1..=2).contains(&args.len()),
|
CommandKind::Has => (1..=2).contains(&args.len()),
|
||||||
CommandKind::IsMany => args.len() >= 2,
|
CommandKind::IsMany => args.len() >= 2,
|
||||||
@ -71,7 +73,7 @@ impl CommandKind {
|
|||||||
if let CommandKind::Count = self {
|
if let CommandKind::Count = self {
|
||||||
if args[1].parse::<usize>().is_err() {
|
if args[1].parse::<usize>().is_err() {
|
||||||
print_err(
|
print_err(
|
||||||
&format!("Second argument to @count must be a valid usize (got `{}`)", args[2]),
|
&format!("Second argument to @count must be a valid usize (got `{}`)", args[1]),
|
||||||
lineno,
|
lineno,
|
||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user