Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 8d2c249

Browse files
authoredDec 15, 2023
Unrolled build for rust-lang#118944
Rollup merge of rust-lang#118944 - compiler-errors:relate, r=lcnr Move type relations into submodule `relate` in rustc_infer, and notify when it has changed r? lcnr
2 parents 3f39cae + 0184c76 commit 8d2c249

File tree

15 files changed

+76
-67
lines changed

15 files changed

+76
-67
lines changed
 

Diff for: ‎compiler/rustc_infer/src/infer/mod.rs

+4-11
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ pub use self::BoundRegionConversionTime::*;
55
pub use self::RegionVariableOrigin::*;
66
pub use self::SubregionOrigin::*;
77
pub use self::ValuePairs::*;
8-
pub use combine::ObligationEmittingRelation;
8+
pub use relate::combine::ObligationEmittingRelation;
99
use rustc_data_structures::captures::Captures;
1010
use rustc_data_structures::undo_log::UndoLogs;
1111
use rustc_middle::infer::unify_key::{ConstVidKey, EffectVidKey};
@@ -43,37 +43,30 @@ use rustc_span::{Span, DUMMY_SP};
4343
use std::cell::{Cell, RefCell};
4444
use std::fmt;
4545

46-
use self::combine::CombineFields;
4746
use self::error_reporting::TypeErrCtxt;
4847
use self::free_regions::RegionRelations;
4948
use self::lexical_region_resolve::LexicalRegionResolutions;
5049
use self::region_constraints::{GenericKind, VarInfos, VerifyBound};
5150
use self::region_constraints::{
5251
RegionConstraintCollector, RegionConstraintStorage, RegionSnapshot,
5352
};
53+
pub use self::relate::combine::CombineFields;
54+
pub use self::relate::nll as nll_relate;
5455
use self::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
5556

5657
pub mod at;
5758
pub mod canonical;
58-
mod combine;
59-
mod equate;
6059
pub mod error_reporting;
6160
pub mod free_regions;
6261
mod freshen;
6362
mod fudge;
64-
mod generalize;
65-
mod glb;
66-
mod higher_ranked;
67-
pub mod lattice;
6863
mod lexical_region_resolve;
69-
mod lub;
70-
pub mod nll_relate;
7164
pub mod opaque_types;
7265
pub mod outlives;
7366
mod projection;
7467
pub mod region_constraints;
68+
mod relate;
7569
pub mod resolve;
76-
mod sub;
7770
pub mod type_variable;
7871
mod undo_log;
7972

Diff for: ‎compiler/rustc_infer/src/infer/combine.rs renamed to ‎compiler/rustc_infer/src/infer/relate/combine.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
//! combining two instances of various things and yielding a new instance.
44
//! These combiner methods always yield a `Result<T>`. To relate two
55
//! types, you can use `infcx.at(cause, param_env)` which then allows
6-
//! you to use the relevant methods of [At](super::at::At).
6+
//! you to use the relevant methods of [At](crate::infer::at::At).
77
//!
88
//! Combiners mostly do their specific behavior and then hand off the
99
//! bulk of the work to [InferCtxt::super_combine_tys] and
@@ -23,11 +23,11 @@
2323
//! this should be correctly updated.
2424
2525
use super::equate::Equate;
26+
use super::generalize::{self, CombineDelegate, Generalization};
2627
use super::glb::Glb;
2728
use super::lub::Lub;
2829
use super::sub::Sub;
29-
use super::{DefineOpaqueTypes, InferCtxt, TypeTrace};
30-
use crate::infer::generalize::{self, CombineDelegate, Generalization};
30+
use crate::infer::{DefineOpaqueTypes, InferCtxt, TypeTrace};
3131
use crate::traits::{Obligation, PredicateObligations};
3232
use rustc_middle::infer::canonical::OriginalQueryValues;
3333
use rustc_middle::infer::unify_key::{ConstVarValue, ConstVariableValue, EffectVarValue};

Diff for: ‎compiler/rustc_infer/src/infer/equate.rs renamed to ‎compiler/rustc_infer/src/infer/relate/equate.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
use crate::infer::DefineOpaqueTypes;
2-
use crate::traits::PredicateObligations;
3-
41
use super::combine::{CombineFields, ObligationEmittingRelation};
5-
use super::Subtype;
2+
use crate::infer::{DefineOpaqueTypes, SubregionOrigin};
3+
use crate::traits::PredicateObligations;
64

75
use rustc_middle::ty::relate::{self, Relate, RelateResult, TypeRelation};
86
use rustc_middle::ty::GenericArgsRef;
@@ -133,7 +131,7 @@ impl<'tcx> TypeRelation<'tcx> for Equate<'_, '_, 'tcx> {
133131
b: ty::Region<'tcx>,
134132
) -> RelateResult<'tcx, ty::Region<'tcx>> {
135133
debug!("{}.regions({:?}, {:?})", self.tag(), a, b);
136-
let origin = Subtype(Box::new(self.fields.trace.clone()));
134+
let origin = SubregionOrigin::Subtype(Box::new(self.fields.trace.clone()));
137135
self.fields
138136
.infcx
139137
.inner

Diff for: ‎compiler/rustc_infer/src/infer/generalize.rs renamed to ‎compiler/rustc_infer/src/infer/relate/generalize.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use crate::infer::{InferCtxt, RegionVariableOrigin};
1616
/// Attempts to generalize `term` for the type variable `for_vid`.
1717
/// This checks for cycles -- that is, whether the type `term`
1818
/// references `for_vid`.
19-
pub(super) fn generalize<'tcx, D: GeneralizerDelegate<'tcx>, T: Into<Term<'tcx>> + Relate<'tcx>>(
19+
pub fn generalize<'tcx, D: GeneralizerDelegate<'tcx>, T: Into<Term<'tcx>> + Relate<'tcx>>(
2020
infcx: &InferCtxt<'tcx>,
2121
delegate: &mut D,
2222
term: T,
@@ -54,7 +54,7 @@ pub(super) fn generalize<'tcx, D: GeneralizerDelegate<'tcx>, T: Into<Term<'tcx>>
5454

5555
/// Abstracts the handling of region vars between HIR and MIR/NLL typechecking
5656
/// in the generalizer code.
57-
pub(super) trait GeneralizerDelegate<'tcx> {
57+
pub trait GeneralizerDelegate<'tcx> {
5858
fn param_env(&self) -> ty::ParamEnv<'tcx>;
5959

6060
fn forbid_inference_vars() -> bool;
@@ -64,7 +64,7 @@ pub(super) trait GeneralizerDelegate<'tcx> {
6464
fn generalize_region(&mut self, universe: ty::UniverseIndex) -> ty::Region<'tcx>;
6565
}
6666

67-
pub(super) struct CombineDelegate<'cx, 'tcx> {
67+
pub struct CombineDelegate<'cx, 'tcx> {
6868
pub infcx: &'cx InferCtxt<'tcx>,
6969
pub param_env: ty::ParamEnv<'tcx>,
7070
pub span: Span,
@@ -515,7 +515,7 @@ where
515515
/// not only the generalized type, but also a bool flag
516516
/// indicating whether further WF checks are needed.
517517
#[derive(Debug)]
518-
pub(super) struct Generalization<T> {
518+
pub struct Generalization<T> {
519519
/// When generalizing `<?0 as Trait>::Assoc` or
520520
/// `<T as Bar<<?0 as Foo>::Assoc>>::Assoc`
521521
/// for `?0` generalization returns an inference
@@ -524,7 +524,7 @@ pub(super) struct Generalization<T> {
524524
/// This has to be handled wotj care as it can
525525
/// otherwise very easily result in infinite
526526
/// recursion.
527-
pub(super) value_may_be_infer: T,
527+
pub value_may_be_infer: T,
528528

529529
/// If true, then the generalized type may not be well-formed,
530530
/// even if the source type is well-formed, so we should add an
@@ -551,5 +551,5 @@ pub(super) struct Generalization<T> {
551551
/// will force the calling code to check that `WF(Foo<?C, ?D>)`
552552
/// holds, which in turn implies that `?C::Item == ?D`. So once
553553
/// `?C` is constrained, that should suffice to restrict `?D`.
554-
pub(super) needs_wf: bool,
554+
pub needs_wf: bool,
555555
}

Diff for: ‎compiler/rustc_infer/src/infer/glb.rs renamed to ‎compiler/rustc_infer/src/infer/relate/glb.rs

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
//! Greatest lower bound. See [`lattice`].
22
3+
use rustc_middle::ty::relate::{Relate, RelateResult, TypeRelation};
4+
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitableExt};
5+
36
use super::combine::{CombineFields, ObligationEmittingRelation};
47
use super::lattice::{self, LatticeDir};
5-
use super::Subtype;
6-
use super::{DefineOpaqueTypes, InferCtxt};
7-
8+
use crate::infer::{DefineOpaqueTypes, InferCtxt, SubregionOrigin};
89
use crate::traits::{ObligationCause, PredicateObligations};
9-
use rustc_middle::ty::relate::{Relate, RelateResult, TypeRelation};
10-
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitableExt};
1110

1211
/// "Greatest lower bound" (common subtype)
1312
pub struct Glb<'combine, 'infcx, 'tcx> {
@@ -68,7 +67,7 @@ impl<'tcx> TypeRelation<'tcx> for Glb<'_, '_, 'tcx> {
6867
) -> RelateResult<'tcx, ty::Region<'tcx>> {
6968
debug!("{}.regions({:?}, {:?})", self.tag(), a, b);
7069

71-
let origin = Subtype(Box::new(self.fields.trace.clone()));
70+
let origin = SubregionOrigin::Subtype(Box::new(self.fields.trace.clone()));
7271
// GLB(&'static u8, &'a u8) == &RegionLUB('static, 'a) u8 == &'static u8
7372
Ok(self.fields.infcx.inner.borrow_mut().unwrap_region_constraints().lub_regions(
7473
self.tcx(),

Diff for: ‎compiler/rustc_infer/src/infer/higher_ranked/mod.rs renamed to ‎compiler/rustc_infer/src/infer/relate/higher_ranked.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
//! the end of the file for details.
33
44
use super::combine::CombineFields;
5-
use super::{HigherRankedType, InferCtxt};
65
use crate::infer::CombinedSnapshot;
6+
use crate::infer::{HigherRankedType, InferCtxt};
77
use rustc_middle::ty::fold::FnMutDelegate;
88
use rustc_middle::ty::relate::{Relate, RelateResult, TypeRelation};
99
use rustc_middle::ty::{self, Binder, Ty, TyCtxt, TypeFoldable};

Diff for: ‎compiler/rustc_infer/src/infer/lattice.rs renamed to ‎compiler/rustc_infer/src/infer/relate/lattice.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
//! [lattices]: https://en.wikipedia.org/wiki/Lattice_(order)
1919
2020
use super::combine::ObligationEmittingRelation;
21-
use super::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
22-
use super::{DefineOpaqueTypes, InferCtxt};
23-
21+
use crate::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
22+
use crate::infer::{DefineOpaqueTypes, InferCtxt};
2423
use crate::traits::ObligationCause;
24+
2525
use rustc_middle::ty::relate::RelateResult;
2626
use rustc_middle::ty::TyVar;
2727
use rustc_middle::ty::{self, Ty};

Diff for: ‎compiler/rustc_infer/src/infer/lub.rs renamed to ‎compiler/rustc_infer/src/infer/relate/lub.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22
33
use super::combine::{CombineFields, ObligationEmittingRelation};
44
use super::lattice::{self, LatticeDir};
5-
use super::Subtype;
6-
use super::{DefineOpaqueTypes, InferCtxt};
7-
5+
use crate::infer::{DefineOpaqueTypes, InferCtxt, SubregionOrigin};
86
use crate::traits::{ObligationCause, PredicateObligations};
7+
98
use rustc_middle::ty::relate::{Relate, RelateResult, TypeRelation};
109
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitableExt};
1110

@@ -68,7 +67,7 @@ impl<'tcx> TypeRelation<'tcx> for Lub<'_, '_, 'tcx> {
6867
) -> RelateResult<'tcx, ty::Region<'tcx>> {
6968
debug!("{}.regions({:?}, {:?})", self.tag(), a, b);
7069

71-
let origin = Subtype(Box::new(self.fields.trace.clone()));
70+
let origin = SubregionOrigin::Subtype(Box::new(self.fields.trace.clone()));
7271
// LUB(&'static u8, &'a u8) == &RegionGLB('static, 'a) u8 == &'a u8
7372
Ok(self.fields.infcx.inner.borrow_mut().unwrap_region_constraints().glb_regions(
7473
self.tcx(),

Diff for: ‎compiler/rustc_infer/src/infer/relate/mod.rs

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//! This module contains the definitions of most `TypeRelation`s in the type system
2+
//! (except for some relations used for diagnostics and heuristics in the compiler).
3+
4+
pub(super) mod combine;
5+
mod equate;
6+
pub(super) mod generalize;
7+
mod glb;
8+
mod higher_ranked;
9+
mod lattice;
10+
mod lub;
11+
pub mod nll;
12+
mod sub;

Diff for: ‎compiler/rustc_infer/src/infer/nll_relate/mod.rs renamed to ‎compiler/rustc_infer/src/infer/relate/nll.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ use rustc_middle::ty::{self, InferConst, Ty, TyCtxt};
3030
use rustc_span::{Span, Symbol};
3131
use std::fmt::Debug;
3232

33-
use crate::infer::combine::ObligationEmittingRelation;
34-
use crate::infer::generalize::{self, Generalization};
33+
use super::combine::ObligationEmittingRelation;
34+
use super::generalize::{self, Generalization};
3535
use crate::infer::InferCtxt;
3636
use crate::infer::{TypeVariableOrigin, TypeVariableOriginKind};
3737
use crate::traits::{Obligation, PredicateObligations};

Diff for: ‎compiler/rustc_infer/src/infer/sub.rs renamed to ‎compiler/rustc_infer/src/infer/relate/sub.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::combine::CombineFields;
2-
use super::{DefineOpaqueTypes, ObligationEmittingRelation, SubregionOrigin};
3-
2+
use crate::infer::{DefineOpaqueTypes, ObligationEmittingRelation, SubregionOrigin};
43
use crate::traits::{Obligation, PredicateObligations};
4+
55
use rustc_middle::ty::relate::{Cause, Relate, RelateResult, TypeRelation};
66
use rustc_middle::ty::visit::TypeVisitableExt;
77
use rustc_middle::ty::TyVar;

Diff for: ‎tests/ui/coherence/occurs-check/associated-type.next.stderr

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
2-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!2_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
3-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
4-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!2_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
5-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
6-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!2_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
7-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
8-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!2_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
1+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
2+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!2_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
3+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
4+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!2_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
5+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
6+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!2_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
7+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
8+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!2_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
99
error[E0119]: conflicting implementations of trait `Overlap<for<'a> fn(&'a (), ())>` for type `for<'a> fn(&'a (), ())`
1010
--> $DIR/associated-type.rs:31:1
1111
|

Diff for: ‎tests/ui/coherence/occurs-check/associated-type.old.stderr

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
2-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!3_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
3-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
4-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!3_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
5-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
6-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!3_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
7-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
8-
WARN rustc_infer::infer::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!3_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
1+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
2+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!3_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
3+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
4+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!3_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
5+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
6+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!3_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
7+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, ReBound(DebruijnIndex(0), BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
8+
WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: Alias(Projection, AliasTy { args: [*const ?1t, RePlaceholder(!3_BoundRegion { var: 0, kind: BrNamed(DefId(0:27 ~ associated_type[f554]::{impl#3}::'a#1), 'a) })], def_id: DefId(0:5 ~ associated_type[f554]::ToUnit::Unit) })
99
error[E0119]: conflicting implementations of trait `Overlap<for<'a> fn(&'a (), _)>` for type `for<'a> fn(&'a (), _)`
1010
--> $DIR/associated-type.rs:31:1
1111
|

0 commit comments

Comments
 (0)
Please sign in to comment.