nits
This commit is contained in:
parent
ba6c166ee4
commit
25c0cf0a66
@ -100,11 +100,9 @@ pub fn check_expr_closure(
|
||||
|
||||
// Create a type variable (for now) to represent the closure kind.
|
||||
// It will be unified during the upvar inference phase (`upvar.rs`)
|
||||
None => self.next_ty_var(TypeVariableOrigin {
|
||||
// FIXME(eddyb) distinguish closure kind inference variables from the rest.
|
||||
param_def_id: None,
|
||||
span: expr_span,
|
||||
}),
|
||||
None => {
|
||||
self.next_ty_var(TypeVariableOrigin { param_def_id: None, span: expr_span })
|
||||
}
|
||||
};
|
||||
|
||||
let closure_args = ty::ClosureArgs::new(
|
||||
|
@ -1365,13 +1365,8 @@ fn check_pat_tuple(
|
||||
}
|
||||
let max_len = cmp::max(expected_len, elements.len());
|
||||
|
||||
let element_tys_iter = (0..max_len).map(|_| {
|
||||
self.next_ty_var(
|
||||
// FIXME: `MiscVariable` for now -- obtaining the span and name information
|
||||
// from all tuple elements isn't trivial.
|
||||
TypeVariableOrigin { param_def_id: None, span },
|
||||
)
|
||||
});
|
||||
let element_tys_iter =
|
||||
(0..max_len).map(|_| self.next_ty_var(TypeVariableOrigin { param_def_id: None, span }));
|
||||
let element_tys = tcx.mk_type_list_from_iter(element_tys_iter);
|
||||
let pat_ty = Ty::new_tup(tcx, element_tys);
|
||||
if let Some(err) = self.demand_eqtype_pat_diag(span, expected, pat_ty, pat_info.top_info) {
|
||||
|
@ -65,9 +65,6 @@ pub fn replace_opaque_types_with_inference_vars<T: TypeFoldable<TyCtxt<'tcx>>>(
|
||||
let span = if span.contains(def_span) { def_span } else { span };
|
||||
let code = traits::ObligationCauseCode::OpaqueReturnType(None);
|
||||
let cause = ObligationCause::new(span, body_id, code);
|
||||
// FIXME(compiler-errors): We probably should add a new TypeVariableOriginKind
|
||||
// for opaque types, and then use that kind to fix the spans for type errors
|
||||
// that we see later on.
|
||||
let ty_var = self.next_ty_var(TypeVariableOrigin { param_def_id: None, span });
|
||||
obligations.extend(
|
||||
self.handle_opaque_type(ty, ty_var, &cause, param_env).unwrap().obligations,
|
||||
|
@ -37,7 +37,9 @@ pub struct TypeVariableTable<'a, 'tcx> {
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
pub struct TypeVariableOrigin {
|
||||
pub span: Span,
|
||||
// `DefId` of the type parameter this was instantiated for, if any.
|
||||
/// `DefId` of the type parameter this was instantiated for, if any.
|
||||
///
|
||||
/// This should only be used for diagnostics.
|
||||
pub param_def_id: Option<DefId>,
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,8 @@
|
||||
use rustc_hir::{def::DefKind, Body, Item, ItemKind, Node, TyKind};
|
||||
use rustc_hir::{Path, QPath};
|
||||
use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
|
||||
use rustc_infer::infer::type_variable::TypeVariableOrigin;
|
||||
use rustc_infer::infer::InferCtxt;
|
||||
use rustc_infer::traits::{Obligation, ObligationCause};
|
||||
use rustc_middle::query::Key;
|
||||
use rustc_middle::ty::{self, Binder, Ty, TyCtxt, TypeFoldable, TypeFolder};
|
||||
use rustc_middle::ty::{EarlyBinder, TraitRef, TypeSuperFoldable};
|
||||
use rustc_span::def_id::{DefId, LOCAL_CRATE};
|
||||
@ -313,13 +312,10 @@ fn interner(&self) -> TyCtxt<'tcx> {
|
||||
}
|
||||
|
||||
fn fold_ty(&mut self, t: Ty<'tcx>) -> Ty<'tcx> {
|
||||
if let Some(ty_did) = t.ty_def_id()
|
||||
&& (self.did_has_local_parent)(ty_did)
|
||||
if let Some(def) = t.ty_adt_def()
|
||||
&& (self.did_has_local_parent)(def.did())
|
||||
{
|
||||
self.infcx.next_ty_var(TypeVariableOrigin {
|
||||
kind: TypeVariableOriginKind::TypeInference,
|
||||
span: self.infer_span,
|
||||
})
|
||||
self.infcx.next_ty_var(TypeVariableOrigin { param_def_id: None, span: self.infer_span })
|
||||
} else {
|
||||
t.super_fold_with(self)
|
||||
}
|
||||
|
@ -106,7 +106,9 @@ fn to_type<'tcx>(&self, tcx: TyCtxt<'tcx>) -> Ty<'tcx> {
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
pub struct ConstVariableOrigin {
|
||||
pub span: Span,
|
||||
// `DefId` of the const parameter this was instantiated for, if any.
|
||||
/// `DefId` of the const parameter this was instantiated for, if any.
|
||||
///
|
||||
/// This should only be used for diagnostics.
|
||||
pub param_def_id: Option<DefId>,
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user