Skip to content

Commit 3da447b

Browse files
committed
Improve some jsondocck errors
1 parent bc539de commit 3da447b

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

src/tools/jsondocck/src/main.rs

+22-2
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,21 @@ fn check_command(command: Command, cache: &mut Cache) -> Result<(), CkError> {
205205
let val = cache.get_value(&command.args[0])?;
206206
let results = select(&val, &command.args[1]).unwrap();
207207
let pat = string_to_value(&command.args[2], cache);
208-
results.contains(&pat.as_ref())
208+
let has = results.contains(&pat.as_ref());
209+
// Give better error for when @has doesnt conatian
210+
if !command.negated && !has {
211+
return Err(CkError::FailedCheck(
212+
format!(
213+
"{} matched to {:?} but didnt have {:?}",
214+
&command.args[1],
215+
results,
216+
pat.as_ref()
217+
),
218+
command,
219+
));
220+
} else {
221+
has
222+
}
209223
}
210224
_ => unreachable!(),
211225
}
@@ -233,7 +247,13 @@ fn check_command(command: Command, cache: &mut Cache) -> Result<(), CkError> {
233247
assert_eq!(command.args[1], "=", "Expected an `=`");
234248
let val = cache.get_value(&command.args[2])?;
235249
let results = select(&val, &command.args[3]).unwrap();
236-
assert_eq!(results.len(), 1);
250+
assert_eq!(
251+
results.len(),
252+
1,
253+
"Didn't get 1 result for `{}`: got {:?}",
254+
command.args[3],
255+
results
256+
);
237257
match results.len() {
238258
0 => false,
239259
1 => {

0 commit comments

Comments
 (0)