2022-09-18 15:46:56 +00:00
|
|
|
use rustc_macros::Diagnostic;
|
2022-08-26 03:24:09 +00:00
|
|
|
use rustc_span::Span;
|
|
|
|
|
|
|
|
use crate::ty::Ty;
|
|
|
|
|
2022-09-18 15:46:56 +00:00
|
|
|
#[derive(Diagnostic)]
|
2022-08-26 03:24:09 +00:00
|
|
|
#[diag(middle::drop_check_overflow, code = "E0320")]
|
|
|
|
#[note]
|
|
|
|
pub struct DropCheckOverflow<'tcx> {
|
|
|
|
#[primary_span]
|
|
|
|
pub span: Span,
|
|
|
|
pub ty: Ty<'tcx>,
|
2022-09-05 15:18:18 +00:00
|
|
|
pub overflow_ty: Ty<'tcx>,
|
2022-08-26 03:24:09 +00:00
|
|
|
}
|
2022-08-31 12:16:02 +00:00
|
|
|
|
2022-09-18 15:46:56 +00:00
|
|
|
#[derive(Diagnostic)]
|
2022-08-31 12:16:02 +00:00
|
|
|
#[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,
|
|
|
|
}
|
|
|
|
|
2022-09-18 15:47:31 +00:00
|
|
|
#[derive(Subdiagnostic)]
|
2022-08-31 12:16:02 +00:00
|
|
|
pub enum TypeMismatchReason {
|
|
|
|
#[label(middle::conflict_types)]
|
|
|
|
ConflictType {
|
|
|
|
#[primary_span]
|
|
|
|
span: Span,
|
|
|
|
},
|
|
|
|
#[note(middle::previous_use_here)]
|
|
|
|
PreviousUse {
|
|
|
|
#[primary_span]
|
|
|
|
span: Span,
|
|
|
|
},
|
|
|
|
}
|
2022-09-01 14:09:45 +00:00
|
|
|
|
2022-09-18 15:46:56 +00:00
|
|
|
#[derive(Diagnostic)]
|
2022-09-01 14:09:45 +00:00
|
|
|
#[diag(middle::limit_invalid)]
|
|
|
|
pub struct LimitInvalid<'a> {
|
|
|
|
#[primary_span]
|
|
|
|
pub span: Span,
|
|
|
|
#[label]
|
|
|
|
pub value_span: Span,
|
|
|
|
pub error_str: &'a str,
|
|
|
|
}
|