diff options
| author | Frank King <frankking1729@gmail.com> | 2024-01-29 15:08:11 +0800 |
|---|---|---|
| committer | Frank King <frankking1729@gmail.com> | 2024-02-12 12:47:32 +0800 |
| commit | 0dbd6e9572c7c2bac7922116d6cd9357177ccbc9 (patch) | |
| tree | a84d58196f2b7234c6deb6e8c675f9aba300507a /compiler/rustc_hir_analysis/src/errors.rs | |
| parent | 2b04ca94bb06c6913b8b14ba267b3d64b23e3c4d (diff) | |
| download | rust-0dbd6e9572c7c2bac7922116d6cd9357177ccbc9.tar.gz rust-0dbd6e9572c7c2bac7922116d6cd9357177ccbc9.zip | |
Improve some codes according to the reviews
- improve diagnostics of field uniqueness check and representation check - simplify the implementation of field uniqueness check - remove some useless codes and improvement neatness
Diffstat (limited to 'compiler/rustc_hir_analysis/src/errors.rs')
| -rw-r--r-- | compiler/rustc_hir_analysis/src/errors.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/compiler/rustc_hir_analysis/src/errors.rs b/compiler/rustc_hir_analysis/src/errors.rs index f7fa3263eaa..6e163cff7ed 100644 --- a/compiler/rustc_hir_analysis/src/errors.rs +++ b/compiler/rustc_hir_analysis/src/errors.rs @@ -193,6 +193,8 @@ pub enum FieldAlreadyDeclared { span: Span, #[note(hir_analysis_nested_field_decl_note)] nested_field_span: Span, + #[subdiagnostic] + help: FieldAlreadyDeclaredNestedHelp, #[label(hir_analysis_previous_decl_label)] prev_span: Span, }, @@ -206,6 +208,8 @@ pub enum FieldAlreadyDeclared { prev_span: Span, #[note(hir_analysis_previous_nested_field_decl_note)] prev_nested_field_span: Span, + #[subdiagnostic] + prev_help: FieldAlreadyDeclaredNestedHelp, }, #[diag(hir_analysis_field_already_declared_both_nested)] BothNested { @@ -215,13 +219,24 @@ pub enum FieldAlreadyDeclared { span: Span, #[note(hir_analysis_nested_field_decl_note)] nested_field_span: Span, + #[subdiagnostic] + help: FieldAlreadyDeclaredNestedHelp, #[label(hir_analysis_previous_decl_label)] prev_span: Span, #[note(hir_analysis_previous_nested_field_decl_note)] prev_nested_field_span: Span, + #[subdiagnostic] + prev_help: FieldAlreadyDeclaredNestedHelp, }, } +#[derive(Subdiagnostic)] +#[help(hir_analysis_field_already_declared_nested_help)] +pub struct FieldAlreadyDeclaredNestedHelp { + #[primary_span] + pub span: Span, +} + #[derive(Diagnostic)] #[diag(hir_analysis_copy_impl_on_type_with_dtor, code = E0184)] pub struct CopyImplOnTypeWithDtor { @@ -1583,6 +1598,8 @@ pub enum UnnamedFieldsRepr<'a> { adt_name: Symbol, #[subdiagnostic] unnamed_fields: Vec<UnnamedFieldsReprFieldDefined>, + #[suggestion(code = "#[repr(C)]\n")] + sugg_span: Span, }, #[diag(hir_analysis_unnamed_fields_repr_field_missing_repr_c)] FieldMissingReprC { @@ -1592,6 +1609,9 @@ pub enum UnnamedFieldsRepr<'a> { #[label(hir_analysis_field_ty_label)] field_ty_span: Span, field_ty: Ty<'a>, + field_adt_kind: &'static str, + #[suggestion(code = "#[repr(C)]\n")] + sugg_span: Span, }, } |
