1
Fork 0

Resolve rebase

This commit is contained in:
Nikita Tomashevich 2023-01-21 20:55:37 +03:00 committed by IQuant
parent 35dbec338a
commit 8d590dc303
4 changed files with 2 additions and 40 deletions

View file

@ -971,16 +971,6 @@ pub struct LfBoundNotSatisfied<'a> {
pub notes: Vec<note_and_explain::RegionExplanation<'a>>,
}
#[derive(Diagnostic)]
#[diag(infer_borrowed_too_long, code = "E0490")]
pub struct BorrowedTooLong<'a> {
#[primary_span]
pub span: Span,
pub ty: Ty<'a>,
#[subdiagnostic]
pub notes: Vec<note_and_explain::RegionExplanation<'a>>,
}
#[derive(Diagnostic)]
#[diag(infer_ref_longer_than_data, code = "E0491")]
pub struct RefLongerThanData<'a> {

View file

@ -131,8 +131,6 @@ pub enum PrefixKind {
LfParamMustOutlive,
LfInstantiatedWith,
LfMustOutlive,
TypeValidFor,
BorrowLastsFor,
PointerValidFor,
DataValidFor,
}
@ -157,8 +155,6 @@ impl IntoDiagnosticArg for PrefixKind {
Self::LfParamMustOutlive => "lf_param_must_outlive",
Self::LfInstantiatedWith => "lf_instantiated_with",
Self::LfMustOutlive => "lf_must_outlive",
Self::TypeValidFor => "type_valid_for",
Self::BorrowLastsFor => "borrow_lasts_for",
Self::PointerValidFor => "pointer_valid_for",
Self::DataValidFor => "data_valid_for",
}

View file

@ -1,6 +1,6 @@
use crate::errors::{
note_and_explain, BorrowedTooLong, FullfillReqLifetime, LfBoundNotSatisfied, OutlivesBound,
OutlivesContent, RefLongerThanData, RegionOriginNote,
note_and_explain, FullfillReqLifetime, LfBoundNotSatisfied, OutlivesBound, OutlivesContent,
RefLongerThanData, RegionOriginNote,
};
use crate::infer::error_reporting::{note_and_explain_region, TypeErrCtxt};
use crate::infer::{self, SubregionOrigin};
@ -200,28 +200,6 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
}
.into_diagnostic(&self.tcx.sess.parse_sess.span_diagnostic)
}
infer::DataBorrowed(ty, span) => {
let type_valid = note_and_explain::RegionExplanation::new(
self.tcx,
sub,
None,
note_and_explain::PrefixKind::TypeValidFor,
note_and_explain::SuffixKind::Empty,
);
let borrow_lasts_for = note_and_explain::RegionExplanation::new(
self.tcx,
sup,
None,
note_and_explain::PrefixKind::BorrowLastsFor,
note_and_explain::SuffixKind::Empty,
);
BorrowedTooLong {
span,
ty: self.resolve_vars_if_possible(ty),
notes: type_valid.into_iter().chain(borrow_lasts_for).collect(),
}
.into_diagnostic(&self.tcx.sess.parse_sess.span_diagnostic)
}
infer::ReferenceOutlivesReferent(ty, span) => {
let pointer_valid = note_and_explain::RegionExplanation::new(
self.tcx,