Skip to content

Commit 87ef37d

Browse files
committed
rustc_parse: migrate more to diagnostic structs
1 parent ac9c66b commit 87ef37d

File tree

9 files changed

+967
-481
lines changed

9 files changed

+967
-481
lines changed

compiler/rustc_error_messages/locales/en-US/parse.ftl

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,3 +390,152 @@ parse_where_clause_before_tuple_struct_body = where clauses are not allowed befo
390390
.name_label = while parsing this tuple struct
391391
.body_label = the struct body
392392
.suggestion = move the body before the where clause
393+
394+
parse_async_fn_in_2015 = `async fn` is not permitted in Rust 2015
395+
.label = to use `async fn`, switch to Rust 2018 or later
396+
397+
parse_async_block_in_2015 = `async` blocks are only allowed in Rust 2018 or later
398+
399+
parse_self_argument_pointer = cannot pass `self` by raw pointer
400+
.label = cannot pass `self` by raw pointer
401+
402+
parse_visibility_not_followed_by_item = visibility `{$vis}` is not followed by an item
403+
.label = the visibility
404+
.help = you likely meant to define an item, e.g., `{$vis} fn foo() {"{}"}`
405+
406+
parse_default_not_followed_by_item = `default` is not followed by an item
407+
.label = the `default` qualifier
408+
.note = only `fn`, `const`, `type`, or `impl` items may be prefixed by `default`
409+
410+
parse_missing_struct_for_struct_definition = missing `struct` for struct definition
411+
.suggestion = add `struct` here to parse `{$ident}` as a public struct
412+
413+
parse_missing_fn_for_function_definition = missing `fn` for function definition
414+
.suggestion = add `fn` here to parse `{$ident}` as a public function
415+
416+
parse_missing_fn_for_method_definition = missing `fn` for method definition
417+
.suggestion = add `fn` here to parse `{$ident}` as a public method
418+
419+
parse_ambiguous_missing_keyword_for_item_definition = missing `fn` or `struct` for function or struct definition
420+
.suggestion = if you meant to call a macro, try
421+
.help = if you meant to call a macro, remove the `pub` and add a trailing `!` after the identifier
422+
423+
parse_missing_trait_in_trait_impl = missing trait in a trait impl
424+
.suggestion_add_trait = add a trait here
425+
.suggestion_remove_for = for an inherent impl, drop this `for`
426+
427+
parse_missing_for_in_trait_impl = missing `for` in a trait impl
428+
.suggestion = add `for` here
429+
430+
parse_expected_trait_in_trait_impl_found_type = expected a trait, found type
431+
432+
parse_non_item_in_item_list = non-item in item list
433+
.suggestion_use_const_not_let = consider using `const` instead of `let` for associated const
434+
.label_list_start = item list starts here
435+
.label_non_item = non-item starts here
436+
.label_list_end = item list ends here
437+
.suggestion_remove_semicolon = consider removing this semicolon
438+
439+
parse_bounds_not_allowed_on_trait_aliases = bounds are not allowed on trait aliases
440+
441+
parse_trait_alias_cannot_be_auto = trait aliases cannot be `auto`
442+
parse_trait_alias_cannot_be_unsafe = trait aliases cannot be `unsafe`
443+
444+
parse_associated_static_item_not_allowed = associated `static` items are not allowed
445+
446+
parse_extern_crate_name_with_dashes = crate name using dashes are not valid in `extern crate` statements
447+
.label = dash-separated idents are not valid
448+
.suggestion = if the original crate name uses dashes you need to use underscores in the code
449+
450+
parse_extern_item_cannot_be_const = extern items cannot be `const`
451+
.suggestion = try using a static value
452+
.note = for more information, visit https://doc.rust-lang.org/std/keyword.extern.html
453+
454+
parse_const_global_cannot_be_mutable = const globals cannot be mutable
455+
.label = cannot be mutable
456+
.suggestion = you might want to declare a static instead
457+
458+
parse_missing_const_type = missing type for `{$kind}` item
459+
.suggestion = provide a type for the item
460+
461+
parse_enum_struct_mutually_exclusive = `enum` and `struct` are mutually exclusive
462+
.suggestion = replace `enum struct` with
463+
464+
parse_unexpected_token_after_struct_name = expected `where`, `{"{"}`, `(`, or `;` after struct name
465+
parse_unexpected_token_after_struct_name_found_reserved_identifier = expected `where`, `{"{"}`, `(`, or `;` after struct name, found reserved identifier `{$token}`
466+
parse_unexpected_token_after_struct_name_found_keyword = expected `where`, `{"{"}`, `(`, or `;` after struct name, found keyword `{$token}`
467+
parse_unexpected_token_after_struct_name_found_reserved_keyword = expected `where`, `{"{"}`, `(`, or `;` after struct name, found reserved keyword `{$token}`
468+
parse_unexpected_token_after_struct_name_found_doc_comment = expected `where`, `{"{"}`, `(`, or `;` after struct name, found doc comment `{$token}`
469+
parse_unexpected_token_after_struct_name_found_other = expected `where`, `{"{"}`, `(`, or `;` after struct name, found `{$token}`
470+
471+
parse_unexpected_self_in_generic_parameters = unexpected keyword `Self` in generic parameters
472+
.note = you cannot use `Self` as a generic parameter because it is reserved for associated items
473+
474+
parse_multiple_where_clauses = cannot define duplicate `where` clauses on an item
475+
.label = previous `where` clause starts here
476+
.suggestion = consider joining the two `where` clauses into one
477+
478+
parse_nonterminal_expected_item_keyword = expected an item keyword
479+
parse_nonterminal_expected_statement = expected a statement
480+
parse_nonterminal_expected_ident = expected ident, found `{$token}`
481+
parse_nonterminal_expected_lifetime = expected a lifetime, found `{$token}`
482+
483+
parse_or_pattern_not_allowed_in_let_binding = top-level or-patterns are not allowed in `let` bindings
484+
parse_or_pattern_not_allowed_in_fn_parameters = top-level or-patterns are not allowed in function parameters
485+
parse_sugg_remove_leading_vert_in_pattern = remove the `|`
486+
parse_sugg_wrap_pattern_in_parens = wrap the pattern in parentheses
487+
488+
parse_note_pattern_alternatives_use_single_vert = alternatives in or-patterns are separated with `|`, not `||`
489+
490+
parse_unexpected_vert_vert_before_function_parameter = unexpected `||` before function parameter
491+
.suggestion = remove the `||`
492+
493+
parse_label_while_parsing_or_pattern_here = while parsing this or-pattern starting here
494+
495+
parse_unexpected_vert_vert_in_pattern = unexpected token `||` in pattern
496+
.suggestion = use a single `|` to separate multiple alternative patterns
497+
498+
parse_trailing_vert_not_allowed = a trailing `|` is not allowed in an or-pattern
499+
.suggestion = remove the `{$token}`
500+
501+
parse_dotdotdot_rest_pattern = unexpected `...`
502+
.label = not a valid pattern
503+
.suggestion = for a rest pattern, use `..` instead of `...`
504+
505+
parse_pattern_on_wrong_side_of_at = pattern on wrong side of `@`
506+
.label_pattern = pattern on the left, should be on the right
507+
.label_binding = binding on the right, should be on the left
508+
.suggestion = switch the order
509+
510+
parse_expected_binding_left_of_at = left-hand side of `@` must be a binding
511+
.label_lhs = interpreted as a pattern, not a binding
512+
.label_rhs = also a pattern
513+
.note = bindings are `x`, `mut x`, `ref x`, and `ref mut x`
514+
515+
parse_ambiguous_range_pattern = the range pattern here has ambiguous interpretation
516+
.suggestion = add parentheses to clarify the precedence
517+
518+
parse_unexpected_lifetime_in_pattern = unexpected lifetime `{$symbol}` in pattern
519+
.suggestion = remove the lifetime
520+
521+
parse_ref_mut_order_incorrect = the order of `mut` and `ref` is incorrect
522+
.suggestion = try switching the order
523+
524+
parse_mut_on_nested_ident_pattern = `mut` must be attached to each individual binding
525+
.suggestion = add `mut` to each binding
526+
parse_mut_on_non_ident_pattern = `mut` must be followed by a named binding
527+
.suggestion = remove the `mut` prefix
528+
parse_note_mut_pattern_usage = `mut` may be followed by `variable` and `variable @ pattern`
529+
530+
parse_repeated_mut_in_pattern = `mut` on a binding may not be repeated
531+
.suggestion = remove the additional `mut`s
532+
533+
parse_dot_dot_dot_range_to_pattern_not_allowed = range-to patterns with `...` are not allowed
534+
.suggestion = use `..=` instead
535+
536+
parse_enum_pattern_instead_of_identifier = expected identifier, found enum pattern
537+
538+
parse_dot_dot_dot_for_remaining_fields = expected field pattern, found `...`
539+
.suggestion = to omit remaining fields, use one fewer `.`
540+
541+
parse_expected_comma_after_pattern_field = expected `,`

0 commit comments

Comments
 (0)