75 lines
1.5 KiB
Rust
75 lines
1.5 KiB
Rust
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,
|
|
}
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(middle_strict_coherence_needs_negative_coherence)]
|
|
pub(crate) struct StrictCoherenceNeedsNegativeCoherence {
|
|
#[primary_span]
|
|
pub span: Span,
|
|
#[label]
|
|
pub attr_span: Option<Span>,
|
|
}
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(middle_const_not_used_in_type_alias)]
|
|
pub(super) struct ConstNotUsedTraitAlias {
|
|
pub ct: String,
|
|
#[primary_span]
|
|
pub span: Span,
|
|
}
|