diff options
Diffstat (limited to '')
-rw-r--r-- | compiler/rustc_middle/src/error.rs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/compiler/rustc_middle/src/error.rs b/compiler/rustc_middle/src/error.rs new file mode 100644 index 000000000..a7a7ac059 --- /dev/null +++ b/compiler/rustc_middle/src/error.rs @@ -0,0 +1,57 @@ +use rustc_macros::Diagnostic; +use rustc_span::Span; + +use crate::ty::Ty; + +#[derive(Diagnostic)] +#[diag(middle_drop_check_overflow, code = "E0320")] +#[note] +pub struct DropCheckOverflow<'tcx> { + #[primary_span] + pub span: Span, + pub ty: Ty<'tcx>, + pub overflow_ty: Ty<'tcx>, +} + +#[derive(Diagnostic)] +#[diag(middle_opaque_hidden_type_mismatch)] +pub struct OpaqueHiddenTypeMismatch<'tcx> { + pub self_ty: Ty<'tcx>, + pub other_ty: Ty<'tcx>, + #[primary_span] + #[label] + pub other_span: Span, + #[subdiagnostic] + pub sub: TypeMismatchReason, +} + +#[derive(Subdiagnostic)] +pub enum TypeMismatchReason { + #[label(middle_conflict_types)] + ConflictType { + #[primary_span] + span: Span, + }, + #[note(middle_previous_use_here)] + PreviousUse { + #[primary_span] + span: Span, + }, +} + +#[derive(Diagnostic)] +#[diag(middle_limit_invalid)] +pub struct LimitInvalid<'a> { + #[primary_span] + pub span: Span, + #[label] + pub value_span: Span, + pub error_str: &'a str, +} + +#[derive(Diagnostic)] +#[diag(middle_const_eval_non_int)] +pub struct ConstEvalNonIntError { + #[primary_span] + pub span: Span, +} |