File tree 6 files changed +85
-32
lines changed 6 files changed +85
-32
lines changed Load Diff This file was deleted.
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ // This test previous triggered an assertion that there are no inference variables
2
+ // returned by `wf::obligations`. Overflow when normalizing
3
+ // `Self: Iterator<Item = <Self as Iterator>::Item>` resulted in overflow which then
4
+ // caused us to return an infer var.
5
+ //
6
+ // This assert has now been removed.
7
+ #![ feature( min_specialization, rustc_attrs) ]
8
+
9
+ #[ rustc_specialization_trait]
10
+ pub trait Trait { }
11
+
12
+ struct Struct
13
+ //~^ ERROR overflow evaluating the requirement `<Struct as Iterator>::Item == _`
14
+ where
15
+ Self : Iterator < Item = <Self as Iterator >:: Item > , { }
16
+
17
+ impl Trait for Struct { }
18
+ //~^ ERROR `Struct` is not an iterator
19
+
20
+ fn main ( ) { }
Original file line number Diff line number Diff line change
1
+ error[E0275]: overflow evaluating the requirement `<Struct as Iterator>::Item == _`
2
+ --> $DIR/fuzzing-ice-102252.rs:12:1
3
+ |
4
+ LL | struct Struct
5
+ | ^^^^^^^^^^^^^
6
+
7
+ error[E0277]: `Struct` is not an iterator
8
+ --> $DIR/fuzzing-ice-102252.rs:17:16
9
+ |
10
+ LL | impl Trait for Struct {}
11
+ | ^^^^^^ `Struct` is not an iterator
12
+ |
13
+ = help: the trait `Iterator` is not implemented for `Struct`
14
+ note: required by a bound in `Struct`
15
+ --> $DIR/fuzzing-ice-102252.rs:15:11
16
+ |
17
+ LL | struct Struct
18
+ | ------ required by a bound in this struct
19
+ ...
20
+ LL | Self: Iterator<Item = <Self as Iterator>::Item>, {}
21
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Struct`
22
+
23
+ error: aborting due to 2 previous errors
24
+
25
+ Some errors have detailed explanations: E0275, E0277.
26
+ For more information about an error, try `rustc --explain E0275`.
Original file line number Diff line number Diff line change
1
+ // This test previous triggered an assertion that there are no inference variables
2
+ // returned by `wf::obligations`. We ended up with an infer var as we failed to
3
+ // normalize `R::Elem`.
4
+ //
5
+ // This assert has now been removed.
6
+ #![ feature( min_specialization) ]
7
+
8
+ trait Trait { }
9
+
10
+ impl < T > Trait for T { }
11
+
12
+ trait Data {
13
+ type Elem ;
14
+ }
15
+
16
+ struct DatasetIter < ' a , R : Data > {
17
+ data : & ' a R :: Elem ,
18
+ }
19
+
20
+ pub struct ArrayBase { }
21
+
22
+ impl < ' a > Trait for DatasetIter < ' a , ArrayBase > { }
23
+ //~^ ERROR specialization impl does not specialize any associated items
24
+
25
+ fn main ( ) { }
Original file line number Diff line number Diff line change
1
+ error: specialization impl does not specialize any associated items
2
+ --> $DIR/fuzzing-ice-126268.rs:22:1
3
+ |
4
+ LL | impl<'a> Trait for DatasetIter<'a, ArrayBase> {}
5
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6
+ |
7
+ note: impl is a specialization of this impl
8
+ --> $DIR/fuzzing-ice-126268.rs:10:1
9
+ |
10
+ LL | impl<T> Trait for T {}
11
+ | ^^^^^^^^^^^^^^^^^^^
12
+
13
+ error: aborting due to 1 previous error
14
+
You can’t perform that action at this time.
0 commit comments