Skip to content

Commit f69a6c2

Browse files
committedSep 14, 2022
jsondoclint: Fix TODO's
1 parent 6e21a28 commit f69a6c2

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed
 

‎src/tools/jsondoclint/src/validator.rs

+20-6
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ impl<'a> Validator<'a> {
6363
ItemEnum::Struct(x) => self.check_struct(x),
6464
ItemEnum::StructField(x) => self.check_struct_field(x),
6565
ItemEnum::Enum(x) => self.check_enum(x),
66-
ItemEnum::Variant(x) => self.check_variant(x),
66+
ItemEnum::Variant(x) => self.check_variant(x, id),
6767
ItemEnum::Function(x) => self.check_function(x),
6868
ItemEnum::Trait(x) => self.check_trait(x),
6969
ItemEnum::TraitAlias(x) => self.check_trait_alias(x),
@@ -135,9 +135,23 @@ impl<'a> Validator<'a> {
135135
x.impls.iter().for_each(|i| self.add_impl_id(i));
136136
}
137137

138-
fn check_variant(&mut self, x: &'a Variant) {
138+
fn check_variant(&mut self, x: &'a Variant, id: &'a Id) {
139139
match x {
140-
Variant::Plain(_discriminant) => {} // TODO: Check discriminant value parses
140+
Variant::Plain(discr) => {
141+
if let Some(discr) = discr {
142+
if let (Err(_), Err(_)) =
143+
(discr.value.parse::<i128>(), discr.value.parse::<u128>())
144+
{
145+
self.fail(
146+
id,
147+
ErrorKind::Custom(format!(
148+
"Failed to parse discriminant value `{}`",
149+
discr.value
150+
)),
151+
);
152+
}
153+
}
154+
}
141155
Variant::Tuple(tys) => tys.iter().flatten().for_each(|t| self.add_field_id(t)),
142156
Variant::Struct { fields, fields_stripped: _ } => {
143157
fields.iter().for_each(|f| self.add_field_id(f))
@@ -198,15 +212,15 @@ impl<'a> Validator<'a> {
198212
}
199213

200214
fn check_macro(&mut self, _: &'a str) {
201-
// TODO
215+
// nop
202216
}
203217

204218
fn check_proc_macro(&mut self, _: &'a ProcMacro) {
205-
// TODO
219+
// nop
206220
}
207221

208222
fn check_primitive_type(&mut self, _: &'a str) {
209-
// TODO
223+
// nop
210224
}
211225

212226
fn check_generics(&mut self, x: &'a Generics) {

0 commit comments

Comments
 (0)
Please sign in to comment.