1
Fork 0

rustc_ast_lowering: make asm-related unstability messages translatable

This commit is contained in:
Pavel Grigorenko 2024-08-07 23:38:08 +03:00
parent 290df4fa56
commit 67602980de
2 changed files with 21 additions and 7 deletions

View file

@ -174,6 +174,13 @@ ast_lowering_underscore_expr_lhs_assign =
in expressions, `_` can only be used on the left-hand side of an assignment in expressions, `_` can only be used on the left-hand side of an assignment
.label = `_` not allowed here .label = `_` not allowed here
ast_lowering_unstable_inline_assembly = inline assembly is not stable yet on this architecture
ast_lowering_unstable_inline_assembly_const_operands =
const operands for inline assembly are unstable
ast_lowering_unstable_inline_assembly_label_operands =
label operands for inline assembly are unstable
ast_lowering_unstable_may_unwind = the `may_unwind` option is unstable
ast_lowering_use_angle_brackets = use angle brackets instead ast_lowering_use_angle_brackets = use angle brackets instead
ast_lowering_yield = yield syntax is experimental ast_lowering_yield = yield syntax is experimental

View file

@ -19,10 +19,12 @@ use super::errors::{
InvalidRegisterClass, RegisterClassOnlyClobber, RegisterConflict, InvalidRegisterClass, RegisterClassOnlyClobber, RegisterConflict,
}; };
use super::LoweringContext; use super::LoweringContext;
use crate::{ImplTraitContext, ImplTraitPosition, ParamMode, ResolverAstLoweringExt}; use crate::{
fluent_generated as fluent, ImplTraitContext, ImplTraitPosition, ParamMode,
ResolverAstLoweringExt,
};
impl<'a, 'hir> LoweringContext<'a, 'hir> { impl<'a, 'hir> LoweringContext<'a, 'hir> {
#[allow(rustc::untranslatable_diagnostic)] // FIXME: make this translatable
pub(crate) fn lower_inline_asm( pub(crate) fn lower_inline_asm(
&mut self, &mut self,
sp: Span, sp: Span,
@ -52,7 +54,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
&self.tcx.sess, &self.tcx.sess,
sym::asm_experimental_arch, sym::asm_experimental_arch,
sp, sp,
"inline assembly is not stable yet on this architecture", fluent::ast_lowering_unstable_inline_assembly,
) )
.emit(); .emit();
} }
@ -64,8 +66,13 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
self.dcx().emit_err(AttSyntaxOnlyX86 { span: sp }); self.dcx().emit_err(AttSyntaxOnlyX86 { span: sp });
} }
if asm.options.contains(InlineAsmOptions::MAY_UNWIND) && !self.tcx.features().asm_unwind { if asm.options.contains(InlineAsmOptions::MAY_UNWIND) && !self.tcx.features().asm_unwind {
feature_err(&self.tcx.sess, sym::asm_unwind, sp, "the `may_unwind` option is unstable") feature_err(
.emit(); &self.tcx.sess,
sym::asm_unwind,
sp,
fluent::ast_lowering_unstable_may_unwind,
)
.emit();
} }
let mut clobber_abis = FxIndexMap::default(); let mut clobber_abis = FxIndexMap::default();
@ -182,7 +189,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
sess, sess,
sym::asm_const, sym::asm_const,
*op_sp, *op_sp,
"const operands for inline assembly are unstable", fluent::ast_lowering_unstable_inline_assembly_const_operands,
) )
.emit(); .emit();
} }
@ -246,7 +253,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
sess, sess,
sym::asm_goto, sym::asm_goto,
*op_sp, *op_sp,
"label operands for inline assembly are unstable", fluent::ast_lowering_unstable_inline_assembly_label_operands,
) )
.emit(); .emit();
} }