Move FnPtrAddr
error to SessionDiagnostic
This commit is contained in:
parent
94524020ea
commit
f7f2eb3e41
compiler/rustc_ty_utils
@ -45,3 +45,5 @@ ty_utils_control_flow_not_supported = control flow is not supported in generic c
|
||||
ty_utils_inline_asm_not_supported = assembly is not supported in generic constants
|
||||
|
||||
ty_utils_operation_not_supported = unsupported operation in generic constants
|
||||
|
||||
ty_utils_unexpected_fnptr_associated_item = `FnPtr` trait with unexpected associated item
|
||||
|
@ -67,3 +67,10 @@ pub enum GenericConstantTooComplexSub {
|
||||
#[label(ty_utils_operation_not_supported)]
|
||||
OperationNotSupported(#[primary_span] Span),
|
||||
}
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag(ty_utils_unexpected_fnptr_associated_item)]
|
||||
pub struct UnexpectedFnPtrAssociatedItem {
|
||||
#[primary_span]
|
||||
pub span: Span,
|
||||
}
|
||||
|
@ -8,6 +8,8 @@ use rustc_span::sym;
|
||||
use rustc_trait_selection::traits;
|
||||
use traits::{translate_substs, Reveal};
|
||||
|
||||
use crate::errors::UnexpectedFnPtrAssociatedItem;
|
||||
|
||||
fn resolve_instance<'tcx>(
|
||||
tcx: TyCtxt<'tcx>,
|
||||
key: ty::ParamEnvAnd<'tcx, (DefId, SubstsRef<'tcx>)>,
|
||||
@ -282,10 +284,9 @@ fn resolve_associated_item<'tcx>(
|
||||
substs: rcvr_substs,
|
||||
})
|
||||
} else {
|
||||
tcx.sess.span_fatal(
|
||||
tcx.def_span(trait_item_id),
|
||||
"`FnPtrAddr` trait with unexpected assoc item",
|
||||
)
|
||||
tcx.sess.emit_fatal(UnexpectedFnPtrAssociatedItem {
|
||||
span: tcx.def_span(trait_item_id),
|
||||
})
|
||||
}
|
||||
} else {
|
||||
None
|
||||
|
Loading…
x
Reference in New Issue
Block a user