1
Fork 0

Add warn(unreachable_pub) to rustc_ast_lowering.

This commit is contained in:
Nicholas Nethercote 2024-06-11 10:46:06 +10:00
parent f839309c74
commit ea014b4d75
3 changed files with 42 additions and 41 deletions

View file

@ -6,7 +6,7 @@ use rustc_span::{Span, Symbol};
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_generic_type_with_parentheses, code = E0214)] #[diag(ast_lowering_generic_type_with_parentheses, code = E0214)]
pub struct GenericTypeWithParentheses { pub(crate) struct GenericTypeWithParentheses {
#[primary_span] #[primary_span]
#[label] #[label]
pub span: Span, pub span: Span,
@ -16,7 +16,7 @@ pub struct GenericTypeWithParentheses {
#[derive(Subdiagnostic)] #[derive(Subdiagnostic)]
#[multipart_suggestion(ast_lowering_use_angle_brackets, applicability = "maybe-incorrect")] #[multipart_suggestion(ast_lowering_use_angle_brackets, applicability = "maybe-incorrect")]
pub struct UseAngleBrackets { pub(crate) struct UseAngleBrackets {
#[suggestion_part(code = "<")] #[suggestion_part(code = "<")]
pub open_param: Span, pub open_param: Span,
#[suggestion_part(code = ">")] #[suggestion_part(code = ">")]
@ -26,7 +26,7 @@ pub struct UseAngleBrackets {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_invalid_abi, code = E0703)] #[diag(ast_lowering_invalid_abi, code = E0703)]
#[note] #[note]
pub struct InvalidAbi { pub(crate) struct InvalidAbi {
#[primary_span] #[primary_span]
#[label] #[label]
pub span: Span, pub span: Span,
@ -38,7 +38,7 @@ pub struct InvalidAbi {
pub suggestion: Option<InvalidAbiSuggestion>, pub suggestion: Option<InvalidAbiSuggestion>,
} }
pub struct InvalidAbiReason(pub &'static str); pub(crate) struct InvalidAbiReason(pub &'static str);
impl Subdiagnostic for InvalidAbiReason { impl Subdiagnostic for InvalidAbiReason {
fn add_to_diag_with<G: EmissionGuarantee, F: SubdiagMessageOp<G>>( fn add_to_diag_with<G: EmissionGuarantee, F: SubdiagMessageOp<G>>(
@ -57,7 +57,7 @@ impl Subdiagnostic for InvalidAbiReason {
code = "{suggestion}", code = "{suggestion}",
applicability = "maybe-incorrect" applicability = "maybe-incorrect"
)] )]
pub struct InvalidAbiSuggestion { pub(crate) struct InvalidAbiSuggestion {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
pub suggestion: String, pub suggestion: String,
@ -65,7 +65,7 @@ pub struct InvalidAbiSuggestion {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_assoc_ty_parentheses)] #[diag(ast_lowering_assoc_ty_parentheses)]
pub struct AssocTyParentheses { pub(crate) struct AssocTyParentheses {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
#[subdiagnostic] #[subdiagnostic]
@ -73,7 +73,7 @@ pub struct AssocTyParentheses {
} }
#[derive(Subdiagnostic)] #[derive(Subdiagnostic)]
pub enum AssocTyParenthesesSub { pub(crate) enum AssocTyParenthesesSub {
#[multipart_suggestion(ast_lowering_remove_parentheses)] #[multipart_suggestion(ast_lowering_remove_parentheses)]
Empty { Empty {
#[suggestion_part(code = "")] #[suggestion_part(code = "")]
@ -91,7 +91,7 @@ pub enum AssocTyParenthesesSub {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_misplaced_impl_trait, code = E0562)] #[diag(ast_lowering_misplaced_impl_trait, code = E0562)]
#[note] #[note]
pub struct MisplacedImplTrait<'a> { pub(crate) struct MisplacedImplTrait<'a> {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
pub position: DiagArgFromDisplay<'a>, pub position: DiagArgFromDisplay<'a>,
@ -99,7 +99,7 @@ pub struct MisplacedImplTrait<'a> {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_assoc_ty_binding_in_dyn)] #[diag(ast_lowering_assoc_ty_binding_in_dyn)]
pub struct MisplacedAssocTyBinding { pub(crate) struct MisplacedAssocTyBinding {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
#[suggestion(code = " = impl", applicability = "maybe-incorrect", style = "verbose")] #[suggestion(code = " = impl", applicability = "maybe-incorrect", style = "verbose")]
@ -108,7 +108,7 @@ pub struct MisplacedAssocTyBinding {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_underscore_expr_lhs_assign)] #[diag(ast_lowering_underscore_expr_lhs_assign)]
pub struct UnderscoreExprLhsAssign { pub(crate) struct UnderscoreExprLhsAssign {
#[primary_span] #[primary_span]
#[label] #[label]
pub span: Span, pub span: Span,
@ -116,7 +116,7 @@ pub struct UnderscoreExprLhsAssign {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_base_expression_double_dot, code = E0797)] #[diag(ast_lowering_base_expression_double_dot, code = E0797)]
pub struct BaseExpressionDoubleDot { pub(crate) struct BaseExpressionDoubleDot {
#[primary_span] #[primary_span]
#[suggestion(code = "/* expr */", applicability = "has-placeholders", style = "verbose")] #[suggestion(code = "/* expr */", applicability = "has-placeholders", style = "verbose")]
pub span: Span, pub span: Span,
@ -124,7 +124,7 @@ pub struct BaseExpressionDoubleDot {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_await_only_in_async_fn_and_blocks, code = E0728)] #[diag(ast_lowering_await_only_in_async_fn_and_blocks, code = E0728)]
pub struct AwaitOnlyInAsyncFnAndBlocks { pub(crate) struct AwaitOnlyInAsyncFnAndBlocks {
#[primary_span] #[primary_span]
#[label] #[label]
pub await_kw_span: Span, pub await_kw_span: Span,
@ -134,21 +134,21 @@ pub struct AwaitOnlyInAsyncFnAndBlocks {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_coroutine_too_many_parameters, code = E0628)] #[diag(ast_lowering_coroutine_too_many_parameters, code = E0628)]
pub struct CoroutineTooManyParameters { pub(crate) struct CoroutineTooManyParameters {
#[primary_span] #[primary_span]
pub fn_decl_span: Span, pub fn_decl_span: Span,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_closure_cannot_be_static, code = E0697)] #[diag(ast_lowering_closure_cannot_be_static, code = E0697)]
pub struct ClosureCannotBeStatic { pub(crate) struct ClosureCannotBeStatic {
#[primary_span] #[primary_span]
pub fn_decl_span: Span, pub fn_decl_span: Span,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_functional_record_update_destructuring_assignment)] #[diag(ast_lowering_functional_record_update_destructuring_assignment)]
pub struct FunctionalRecordUpdateDestructuringAssignment { pub(crate) struct FunctionalRecordUpdateDestructuringAssignment {
#[primary_span] #[primary_span]
#[suggestion(code = "", applicability = "machine-applicable")] #[suggestion(code = "", applicability = "machine-applicable")]
pub span: Span, pub span: Span,
@ -156,28 +156,28 @@ pub struct FunctionalRecordUpdateDestructuringAssignment {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_async_coroutines_not_supported, code = E0727)] #[diag(ast_lowering_async_coroutines_not_supported, code = E0727)]
pub struct AsyncCoroutinesNotSupported { pub(crate) struct AsyncCoroutinesNotSupported {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_inline_asm_unsupported_target, code = E0472)] #[diag(ast_lowering_inline_asm_unsupported_target, code = E0472)]
pub struct InlineAsmUnsupportedTarget { pub(crate) struct InlineAsmUnsupportedTarget {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_att_syntax_only_x86)] #[diag(ast_lowering_att_syntax_only_x86)]
pub struct AttSyntaxOnlyX86 { pub(crate) struct AttSyntaxOnlyX86 {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_abi_specified_multiple_times)] #[diag(ast_lowering_abi_specified_multiple_times)]
pub struct AbiSpecifiedMultipleTimes { pub(crate) struct AbiSpecifiedMultipleTimes {
#[primary_span] #[primary_span]
pub abi_span: Span, pub abi_span: Span,
pub prev_name: Symbol, pub prev_name: Symbol,
@ -189,7 +189,7 @@ pub struct AbiSpecifiedMultipleTimes {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_clobber_abi_not_supported)] #[diag(ast_lowering_clobber_abi_not_supported)]
pub struct ClobberAbiNotSupported { pub(crate) struct ClobberAbiNotSupported {
#[primary_span] #[primary_span]
pub abi_span: Span, pub abi_span: Span,
} }
@ -197,7 +197,7 @@ pub struct ClobberAbiNotSupported {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[note] #[note]
#[diag(ast_lowering_invalid_abi_clobber_abi)] #[diag(ast_lowering_invalid_abi_clobber_abi)]
pub struct InvalidAbiClobberAbi { pub(crate) struct InvalidAbiClobberAbi {
#[primary_span] #[primary_span]
pub abi_span: Span, pub abi_span: Span,
pub supported_abis: String, pub supported_abis: String,
@ -205,7 +205,7 @@ pub struct InvalidAbiClobberAbi {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_invalid_register)] #[diag(ast_lowering_invalid_register)]
pub struct InvalidRegister<'a> { pub(crate) struct InvalidRegister<'a> {
#[primary_span] #[primary_span]
pub op_span: Span, pub op_span: Span,
pub reg: Symbol, pub reg: Symbol,
@ -214,7 +214,7 @@ pub struct InvalidRegister<'a> {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_invalid_register_class)] #[diag(ast_lowering_invalid_register_class)]
pub struct InvalidRegisterClass<'a> { pub(crate) struct InvalidRegisterClass<'a> {
#[primary_span] #[primary_span]
pub op_span: Span, pub op_span: Span,
pub reg_class: Symbol, pub reg_class: Symbol,
@ -223,7 +223,7 @@ pub struct InvalidRegisterClass<'a> {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_invalid_asm_template_modifier_reg_class)] #[diag(ast_lowering_invalid_asm_template_modifier_reg_class)]
pub struct InvalidAsmTemplateModifierRegClass { pub(crate) struct InvalidAsmTemplateModifierRegClass {
#[primary_span] #[primary_span]
#[label(ast_lowering_template_modifier)] #[label(ast_lowering_template_modifier)]
pub placeholder_span: Span, pub placeholder_span: Span,
@ -234,7 +234,7 @@ pub struct InvalidAsmTemplateModifierRegClass {
} }
#[derive(Subdiagnostic)] #[derive(Subdiagnostic)]
pub enum InvalidAsmTemplateModifierRegClassSub { pub(crate) enum InvalidAsmTemplateModifierRegClassSub {
#[note(ast_lowering_support_modifiers)] #[note(ast_lowering_support_modifiers)]
SupportModifier { class_name: Symbol, modifiers: String }, SupportModifier { class_name: Symbol, modifiers: String },
#[note(ast_lowering_does_not_support_modifiers)] #[note(ast_lowering_does_not_support_modifiers)]
@ -243,7 +243,7 @@ pub enum InvalidAsmTemplateModifierRegClassSub {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_invalid_asm_template_modifier_const)] #[diag(ast_lowering_invalid_asm_template_modifier_const)]
pub struct InvalidAsmTemplateModifierConst { pub(crate) struct InvalidAsmTemplateModifierConst {
#[primary_span] #[primary_span]
#[label(ast_lowering_template_modifier)] #[label(ast_lowering_template_modifier)]
pub placeholder_span: Span, pub placeholder_span: Span,
@ -253,7 +253,7 @@ pub struct InvalidAsmTemplateModifierConst {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_invalid_asm_template_modifier_sym)] #[diag(ast_lowering_invalid_asm_template_modifier_sym)]
pub struct InvalidAsmTemplateModifierSym { pub(crate) struct InvalidAsmTemplateModifierSym {
#[primary_span] #[primary_span]
#[label(ast_lowering_template_modifier)] #[label(ast_lowering_template_modifier)]
pub placeholder_span: Span, pub placeholder_span: Span,
@ -263,7 +263,7 @@ pub struct InvalidAsmTemplateModifierSym {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_invalid_asm_template_modifier_label)] #[diag(ast_lowering_invalid_asm_template_modifier_label)]
pub struct InvalidAsmTemplateModifierLabel { pub(crate) struct InvalidAsmTemplateModifierLabel {
#[primary_span] #[primary_span]
#[label(ast_lowering_template_modifier)] #[label(ast_lowering_template_modifier)]
pub placeholder_span: Span, pub placeholder_span: Span,
@ -273,7 +273,7 @@ pub struct InvalidAsmTemplateModifierLabel {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_register_class_only_clobber)] #[diag(ast_lowering_register_class_only_clobber)]
pub struct RegisterClassOnlyClobber { pub(crate) struct RegisterClassOnlyClobber {
#[primary_span] #[primary_span]
pub op_span: Span, pub op_span: Span,
pub reg_class_name: Symbol, pub reg_class_name: Symbol,
@ -281,7 +281,7 @@ pub struct RegisterClassOnlyClobber {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_register_conflict)] #[diag(ast_lowering_register_conflict)]
pub struct RegisterConflict<'a> { pub(crate) struct RegisterConflict<'a> {
#[primary_span] #[primary_span]
#[label(ast_lowering_register1)] #[label(ast_lowering_register1)]
pub op_span1: Span, pub op_span1: Span,
@ -296,7 +296,7 @@ pub struct RegisterConflict<'a> {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[help] #[help]
#[diag(ast_lowering_sub_tuple_binding)] #[diag(ast_lowering_sub_tuple_binding)]
pub struct SubTupleBinding<'a> { pub(crate) struct SubTupleBinding<'a> {
#[primary_span] #[primary_span]
#[label] #[label]
#[suggestion( #[suggestion(
@ -313,7 +313,7 @@ pub struct SubTupleBinding<'a> {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_extra_double_dot)] #[diag(ast_lowering_extra_double_dot)]
pub struct ExtraDoubleDot<'a> { pub(crate) struct ExtraDoubleDot<'a> {
#[primary_span] #[primary_span]
#[label] #[label]
pub span: Span, pub span: Span,
@ -325,21 +325,21 @@ pub struct ExtraDoubleDot<'a> {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[note] #[note]
#[diag(ast_lowering_misplaced_double_dot)] #[diag(ast_lowering_misplaced_double_dot)]
pub struct MisplacedDoubleDot { pub(crate) struct MisplacedDoubleDot {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_misplaced_relax_trait_bound)] #[diag(ast_lowering_misplaced_relax_trait_bound)]
pub struct MisplacedRelaxTraitBound { pub(crate) struct MisplacedRelaxTraitBound {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_match_arm_with_no_body)] #[diag(ast_lowering_match_arm_with_no_body)]
pub struct MatchArmWithNoBody { pub(crate) struct MatchArmWithNoBody {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
#[suggestion(code = " => todo!(),", applicability = "has-placeholders")] #[suggestion(code = " => todo!(),", applicability = "has-placeholders")]
@ -348,7 +348,7 @@ pub struct MatchArmWithNoBody {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_never_pattern_with_body)] #[diag(ast_lowering_never_pattern_with_body)]
pub struct NeverPatternWithBody { pub(crate) struct NeverPatternWithBody {
#[primary_span] #[primary_span]
#[label] #[label]
#[suggestion(code = "", applicability = "maybe-incorrect")] #[suggestion(code = "", applicability = "maybe-incorrect")]
@ -357,7 +357,7 @@ pub struct NeverPatternWithBody {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_never_pattern_with_guard)] #[diag(ast_lowering_never_pattern_with_guard)]
pub struct NeverPatternWithGuard { pub(crate) struct NeverPatternWithGuard {
#[primary_span] #[primary_span]
#[suggestion(code = "", applicability = "maybe-incorrect")] #[suggestion(code = "", applicability = "maybe-incorrect")]
pub span: Span, pub span: Span,
@ -365,7 +365,7 @@ pub struct NeverPatternWithGuard {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_arbitrary_expression_in_pattern)] #[diag(ast_lowering_arbitrary_expression_in_pattern)]
pub struct ArbitraryExpressionInPattern { pub(crate) struct ArbitraryExpressionInPattern {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
#[note(ast_lowering_pattern_from_macro_note)] #[note(ast_lowering_pattern_from_macro_note)]
@ -374,13 +374,13 @@ pub struct ArbitraryExpressionInPattern {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(ast_lowering_inclusive_range_with_no_end)] #[diag(ast_lowering_inclusive_range_with_no_end)]
pub struct InclusiveRangeWithNoEnd { pub(crate) struct InclusiveRangeWithNoEnd {
#[primary_span] #[primary_span]
pub span: Span, pub span: Span,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
pub enum BadReturnTypeNotation { pub(crate) enum BadReturnTypeNotation {
#[diag(ast_lowering_bad_return_type_notation_inputs)] #[diag(ast_lowering_bad_return_type_notation_inputs)]
Inputs { Inputs {
#[primary_span] #[primary_span]

View file

@ -1182,7 +1182,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
/// into the body. This is to make sure that the future actually owns the /// into the body. This is to make sure that the future actually owns the
/// arguments that are passed to the function, and to ensure things like /// arguments that are passed to the function, and to ensure things like
/// drop order are stable. /// drop order are stable.
pub fn lower_coroutine_body_with_moved_arguments( pub(crate) fn lower_coroutine_body_with_moved_arguments(
&mut self, &mut self,
decl: &FnDecl, decl: &FnDecl,
lower_body: impl FnOnce(&mut LoweringContext<'_, 'hir>) -> hir::Expr<'hir>, lower_body: impl FnOnce(&mut LoweringContext<'_, 'hir>) -> hir::Expr<'hir>,

View file

@ -37,6 +37,7 @@
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(rustdoc_internals)] #![feature(rustdoc_internals)]
#![warn(unreachable_pub)]
// tidy-alphabetical-end // tidy-alphabetical-end
use std::collections::hash_map::Entry; use std::collections::hash_map::Entry;