• Home
  • Raw
  • Download

Lines Matching refs:errors

6     crate::errors::Errors,
62 pub fn parse(errors: &Errors, field: &syn::Field) -> Self { in parse()
67 parse_attr_doc(errors, attr, &mut this.description); in parse()
71 let ml = if let Some(ml) = argh_attr_to_meta_list(errors, attr) { in parse()
78 let meta = if let Some(m) = errors.expect_nested_meta(meta) { m } else { continue }; in parse()
82 if let Some(m) = errors.expect_meta_name_value(&meta) { in parse()
83 this.parse_attr_arg_name(errors, m); in parse()
86 if let Some(m) = errors.expect_meta_name_value(&meta) { in parse()
87 this.parse_attr_default(errors, m); in parse()
90 if let Some(m) = errors.expect_meta_name_value(&meta) { in parse()
91 parse_attr_description(errors, m, &mut this.description); in parse()
94 if let Some(m) = errors.expect_meta_list(&meta) { in parse()
95 this.parse_attr_from_str_fn(errors, m); in parse()
98 if let Some(m) = errors.expect_meta_name_value(&meta) { in parse()
99 this.parse_attr_long(errors, m); in parse()
102 parse_attr_field_type(errors, meta, FieldKind::Option, &mut this.field_type); in parse()
104 if let Some(m) = errors.expect_meta_name_value(&meta) { in parse()
105 this.parse_attr_short(errors, m); in parse()
109 errors, in parse()
115 parse_attr_field_type(errors, meta, FieldKind::Switch, &mut this.field_type); in parse()
118 errors, in parse()
124 errors.err( in parse()
139 FieldKind::SubCommand | FieldKind::Switch => errors.err( in parse()
148 check_option_description(errors, d.content.value().trim(), d.content.span()); in parse()
154 fn parse_attr_from_str_fn(&mut self, errors: &Errors, m: &syn::MetaList) { in parse_attr_from_str_fn()
155 parse_attr_fn_name(errors, m, "from_str_fn", &mut self.from_str_fn) in parse_attr_from_str_fn()
158 fn parse_attr_default(&mut self, errors: &Errors, m: &syn::MetaNameValue) { in parse_attr_default()
159 parse_attr_single_string(errors, m, "default", &mut self.default); in parse_attr_default()
162 fn parse_attr_arg_name(&mut self, errors: &Errors, m: &syn::MetaNameValue) { in parse_attr_arg_name()
163 parse_attr_single_string(errors, m, "arg_name", &mut self.arg_name); in parse_attr_arg_name()
166 fn parse_attr_long(&mut self, errors: &Errors, m: &syn::MetaNameValue) { in parse_attr_long()
167 parse_attr_single_string(errors, m, "long", &mut self.long); in parse_attr_long()
171 errors.err(long, "Long names must be ASCII"); in parse_attr_long()
174 errors.err(long, "Long names must be lowercase"); in parse_attr_long()
178 fn parse_attr_short(&mut self, errors: &Errors, m: &syn::MetaNameValue) { in parse_attr_short()
180 errors.duplicate_attrs("short", first, m); in parse_attr_short()
181 } else if let Some(lit_char) = errors.expect_lit_char(&m.lit) { in parse_attr_short()
184 errors.err(lit_char, "Short names must be ASCII"); in parse_attr_short()
191 errors: &Errors, in parse_attr_fn_name()
197 errors.duplicate_attrs(attr_name, first, m); in parse_attr_fn_name()
201 errors.err(&m.nested, "Expected a single argument containing the function name"); in parse_attr_fn_name()
207 if let Some(path) = errors.expect_nested_meta(nested).and_then(|m| errors.expect_meta_word(m)) { in parse_attr_fn_name()
213 errors: &Errors, in parse_attr_field_type()
218 if let Some(path) = errors.expect_meta_word(meta) { in parse_attr_field_type()
220 errors.duplicate_attrs("field kind", &first.ident, path); in parse_attr_field_type()
245 errors: &Errors, in attr_to_meta_subtype()
252 errors.push(e); in attr_to_meta_subtype()
258 fn attr_to_meta_list(errors: &Errors, attr: &syn::Attribute) -> Option<syn::MetaList> { in attr_to_meta_list()
259 attr_to_meta_subtype(errors, attr, |m| errors.expect_meta_list(m)) in attr_to_meta_list()
262 fn attr_to_meta_name_value(errors: &Errors, attr: &syn::Attribute) -> Option<syn::MetaNameValue> { in attr_to_meta_name_value()
263 attr_to_meta_subtype(errors, attr, |m| errors.expect_meta_name_value(m)) in attr_to_meta_name_value()
267 fn argh_attr_to_meta_list(errors: &Errors, attr: &syn::Attribute) -> Option<syn::MetaList> { in argh_attr_to_meta_list()
271 attr_to_meta_list(errors, attr) in argh_attr_to_meta_list()
287 pub fn parse(errors: &Errors, derive_input: &syn::DeriveInput) -> Self { in parse()
292 parse_attr_doc(errors, attr, &mut this.description); in parse()
296 let ml = if let Some(ml) = argh_attr_to_meta_list(errors, attr) { in parse()
303 let meta = if let Some(m) = errors.expect_nested_meta(meta) { m } else { continue }; in parse()
307 if let Some(m) = errors.expect_meta_name_value(&meta) { in parse()
308 parse_attr_description(errors, m, &mut this.description); in parse()
311 if let Some(m) = errors.expect_meta_list(&meta) { in parse()
312 this.parse_attr_error_code(errors, m); in parse()
315 if let Some(m) = errors.expect_meta_name_value(&meta) { in parse()
316 this.parse_attr_example(errors, m); in parse()
319 if let Some(m) = errors.expect_meta_name_value(&meta) { in parse()
320 this.parse_attr_name(errors, m); in parse()
323 if let Some(m) = errors.expect_meta_name_value(&meta) { in parse()
324 this.parse_attr_note(errors, m); in parse()
327 if let Some(ident) = errors.expect_meta_word(&meta).and_then(|p| p.get_ident()) in parse()
329 this.parse_attr_subcommand(errors, ident); in parse()
332 errors.err( in parse()
344 this.check_error_codes(errors); in parse()
350 fn check_error_codes(&self, errors: &Errors) { in check_error_codes()
357 errors.push(e); in check_error_codes()
362 errors.err(lit_int, "Error code out of range for `i32`"); in check_error_codes()
368 errors.err(lit_int, &format!("Duplicate error code {}", value)); in check_error_codes()
369 errors.err( in check_error_codes()
381 fn parse_attr_error_code(&mut self, errors: &Errors, ml: &syn::MetaList) { in parse_attr_error_code()
383 errors.err(&ml, "Expected two arguments, an error number and a string description"); in parse_attr_error_code()
390 let err_code = errors.expect_nested_lit(err_code).and_then(|l| errors.expect_lit_int(l)); in parse_attr_error_code()
391 let err_msg = errors.expect_nested_lit(err_msg).and_then(|l| errors.expect_lit_str(l)); in parse_attr_error_code()
398 fn parse_attr_example(&mut self, errors: &Errors, m: &syn::MetaNameValue) { in parse_attr_example()
399 parse_attr_multi_string(errors, m, &mut self.examples) in parse_attr_example()
402 fn parse_attr_name(&mut self, errors: &Errors, m: &syn::MetaNameValue) { in parse_attr_name()
403 parse_attr_single_string(errors, m, "name", &mut self.name); in parse_attr_name()
406 errors.err(name, "Custom `help` commands are not supported."); in parse_attr_name()
411 fn parse_attr_note(&mut self, errors: &Errors, m: &syn::MetaNameValue) { in parse_attr_note()
412 parse_attr_multi_string(errors, m, &mut self.notes) in parse_attr_note()
415 fn parse_attr_subcommand(&mut self, errors: &Errors, ident: &syn::Ident) { in parse_attr_subcommand()
417 errors.duplicate_attrs("subcommand", first, ident); in parse_attr_subcommand()
424 fn check_option_description(errors: &Errors, desc: &str, span: Span) { in check_option_description()
432 errors.err_span(span, "Descriptions must begin with a lowercase letter"); in check_option_description()
438 errors: &Errors, in parse_attr_single_string()
444 errors.duplicate_attrs(name, first, m); in parse_attr_single_string()
445 } else if let Some(lit_str) = errors.expect_lit_str(&m.lit) { in parse_attr_single_string()
450 fn parse_attr_multi_string(errors: &Errors, m: &syn::MetaNameValue, list: &mut Vec<syn::LitStr>) { in parse_attr_multi_string()
451 if let Some(lit_str) = errors.expect_lit_str(&m.lit) { in parse_attr_multi_string()
456 fn parse_attr_doc(errors: &Errors, attr: &syn::Attribute, slot: &mut Option<Description>) { in parse_attr_doc()
457 let nv = if let Some(nv) = attr_to_meta_name_value(errors, attr) { in parse_attr_doc()
468 if let Some(lit_str) = errors.expect_lit_str(&nv.lit) { in parse_attr_doc()
480 fn parse_attr_description(errors: &Errors, m: &syn::MetaNameValue, slot: &mut Option<Description>) { in parse_attr_description()
481 let lit_str = if let Some(lit_str) = errors.expect_lit_str(&m.lit) { lit_str } else { return }; in parse_attr_description()
486 errors.duplicate_attrs("description", &description.content, lit_str); in parse_attr_description()
495 pub fn check_enum_type_attrs(errors: &Errors, type_attrs: &TypeAttrs, type_span: &Span) { in check_enum_type_attrs()
500 errors.err_span( in check_enum_type_attrs()
511 err_unused_enum_attr(errors, name); in check_enum_type_attrs()
515 err_unused_enum_attr(errors, &description.content); in check_enum_type_attrs()
519 err_unused_enum_attr(errors, example); in check_enum_type_attrs()
522 err_unused_enum_attr(errors, note); in check_enum_type_attrs()
525 err_unused_enum_attr(errors, &err_code.0); in check_enum_type_attrs()
530 pub fn check_enum_variant_attrs(errors: &Errors, variant: &syn::Variant) { in check_enum_variant_attrs()
533 err_unused_enum_attr(errors, attr); in check_enum_variant_attrs()
546 err_unused_enum_attr(errors, attr); in check_enum_variant_attrs()
552 fn err_unused_enum_attr(errors: &Errors, location: &impl syn::spanned::Spanned) { in err_unused_enum_attr()
553 errors.err( in err_unused_enum_attr()