Skip to content

Commit ff485b6

Browse files
committed
Auto merge of #15199 - lowr:patch/revert-15125, r=lowr
Revert "Support `#[rustc_coinductive]`" Reverts #15125, addresses #15125 (comment) I'll add the support again once I figure out the problem.
2 parents 9bdc9aa + 6086ced commit ff485b6

File tree

4 files changed

+8
-45
lines changed

4 files changed

+8
-45
lines changed

crates/hir-ty/src/chalk_db.rs

+2-6
Original file line numberDiff line numberDiff line change
@@ -550,18 +550,14 @@ pub(crate) fn trait_datum_query(
550550
debug!("trait_datum {:?}", trait_id);
551551
let trait_ = from_chalk_trait_id(trait_id);
552552
let trait_data = db.trait_data(trait_);
553-
554-
let coinductive =
555-
trait_data.is_auto || db.attrs(trait_.into()).by_key("rustc_coinductive").exists();
556-
557553
debug!("trait {:?} = {:?}", trait_id, trait_data.name);
558554
let generic_params = generics(db.upcast(), trait_.into());
559555
let bound_vars = generic_params.bound_vars_subst(db, DebruijnIndex::INNERMOST);
560556
let flags = rust_ir::TraitFlags {
561557
auto: trait_data.is_auto,
562558
upstream: trait_.lookup(db.upcast()).container.krate() != krate,
563559
non_enumerable: true,
564-
coinductive,
560+
coinductive: false, // only relevant for Chalk testing
565561
// FIXME: set these flags correctly
566562
marker: false,
567563
fundamental: false,
@@ -643,7 +639,7 @@ pub(crate) fn struct_datum_query(
643639
fundamental: false,
644640
phantom_data: false,
645641
};
646-
// FIXME provide enum variants properly (for auto traits and `Sized`)
642+
// FIXME provide enum variants properly (for auto traits)
647643
let variant = rust_ir::AdtVariantDatum {
648644
fields: Vec::new(), // FIXME add fields (only relevant for auto traits),
649645
};

crates/hir-ty/src/tests/traits.rs

-32
Original file line numberDiff line numberDiff line change
@@ -4410,35 +4410,3 @@ fn test(v: S<i32>) {
44104410
"#,
44114411
);
44124412
}
4413-
4414-
#[test]
4415-
fn rustc_coinductive() {
4416-
// Taken from rust-lang/rust#108033 with modification.
4417-
check_types(
4418-
r#"
4419-
#[rustc_coinductive]
4420-
trait Trait { type Assoc; }
4421-
4422-
impl<T, U> Trait for (T, U)
4423-
where
4424-
(U, T): Trait,
4425-
(): ConstrainToU32<T>,
4426-
{
4427-
type Assoc = i32;
4428-
}
4429-
4430-
trait ConstrainToU32<T> {}
4431-
impl ConstrainToU32<u32> for () {}
4432-
4433-
fn impls_trait<T, U, R>() -> R
4434-
where
4435-
(T, U): Trait<Assoc = R>,
4436-
{ loop {} }
4437-
4438-
fn main() {
4439-
let _ = impls_trait::<_, _, _>();
4440-
//^ i32
4441-
}
4442-
"#,
4443-
);
4444-
}

crates/ide/src/inlay_hints/chaining.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ fn main() {
474474
file_id: FileId(
475475
1,
476476
),
477-
range: 9313..9321,
477+
range: 9288..9296,
478478
},
479479
),
480480
tooltip: "",
@@ -487,7 +487,7 @@ fn main() {
487487
file_id: FileId(
488488
1,
489489
),
490-
range: 9345..9349,
490+
range: 9320..9324,
491491
},
492492
),
493493
tooltip: "",
@@ -511,7 +511,7 @@ fn main() {
511511
file_id: FileId(
512512
1,
513513
),
514-
range: 9313..9321,
514+
range: 9288..9296,
515515
},
516516
),
517517
tooltip: "",
@@ -524,7 +524,7 @@ fn main() {
524524
file_id: FileId(
525525
1,
526526
),
527-
range: 9345..9349,
527+
range: 9320..9324,
528528
},
529529
),
530530
tooltip: "",
@@ -548,7 +548,7 @@ fn main() {
548548
file_id: FileId(
549549
1,
550550
),
551-
range: 9313..9321,
551+
range: 9288..9296,
552552
},
553553
),
554554
tooltip: "",
@@ -561,7 +561,7 @@ fn main() {
561561
file_id: FileId(
562562
1,
563563
),
564-
range: 9345..9349,
564+
range: 9320..9324,
565565
},
566566
),
567567
tooltip: "",

crates/test-utils/src/minicore.rs

-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ pub mod marker {
6363
#[lang = "sized"]
6464
#[fundamental]
6565
#[rustc_specialization_trait]
66-
#[rustc_coinductive]
6766
pub trait Sized {}
6867
// endregion:sized
6968

0 commit comments

Comments
 (0)