rustdoc: add error messages to the test

This commit is contained in:
Patrik Kårlin 2023-03-20 14:14:06 +01:00
parent 4d571a9ccf
commit df556a3177
No known key found for this signature in database
2 changed files with 74 additions and 60 deletions

View file

@ -2,36 +2,49 @@
use std::ops::Index; use std::ops::Index;
pub fn next<'a, T>(s: &'a mut dyn SVec<Item = T, Output = T>) { pub fn next<'a, T>(s: &'a mut dyn SVec<Item = T, Output = T>) {
//~^ERROR //~^ expected 1 lifetime argument
//~|ERROR //~| expected 1 generic argument
//~|ERROR //~| the trait `SVec` cannot be made into an object
//~| `SVec` cannot be made into an object
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
let _ = s; let _ = s;
} }
pub trait SVec: Index< pub trait SVec: Index<
<Self as SVec>::Item, <Self as SVec>::Item,
//~^ERROR //~^ expected 1 lifetime argument
//~|ERROR //~| expected 1 generic argument
//~|ERROR //~| missing generics for associated type `SVec::Item`
//~|ERROR //~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
Output = <Index<<Self as SVec>::Item, Output = <Index<<Self as SVec>::Item,
//~^ERROR //~^ expected 1 lifetime argument
//~|ERROR //~| expected 1 generic argument
//~|ERROR //~| missing generics for associated type `SVec::Item`
//~|ERROR //~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
Output = <Self as SVec>::Item> as SVec>::Item, Output = <Self as SVec>::Item> as SVec>::Item,
//~^ERROR //~^ expected 1 lifetime argument
//~|ERROR //~| expected 1 generic argument
//~|ERROR //~| expected 1 lifetime argument
//~|ERROR //~| missing generics for associated type `SVec::Item`
//~|ERROR //~| missing generics for associated type `SVec::Item`
//~|ERROR //~| missing generics for associated type `SVec::Item`
//~|ERROR //~| missing generics for associated type `SVec::Item`
//~|ERROR //~| expected 1 generic argument
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
> { > {
type Item<'a, T>; type Item<'a, T>;
fn len(&self) -> <Self as SVec>::Item; fn len(&self) -> <Self as SVec>::Item;
//~^ERROR //~^ expected 1 lifetime argument
//~|ERROR //~| missing generics for associated type `SVec::Item`
//~| expected 1 generic argument
//~| missing generics for associated type `SVec::Item`
} }

View file

@ -1,11 +1,11 @@
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:12:21 --> $DIR/issue-105742.rs:15:21
| |
LL | <Self as SVec>::Item, LL | <Self as SVec>::Item,
| ^^^^ expected 1 lifetime argument | ^^^^ expected 1 lifetime argument
| |
note: associated type defined here, with 1 lifetime parameter: `'a` note: associated type defined here, with 1 lifetime parameter: `'a`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ -- | ^^^^ --
@ -15,13 +15,13 @@ LL | <Self as SVec>::Item<'a>,
| ++++ | ++++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:12:21 --> $DIR/issue-105742.rs:15:21
| |
LL | <Self as SVec>::Item, LL | <Self as SVec>::Item,
| ^^^^ expected 1 generic argument | ^^^^ expected 1 generic argument
| |
note: associated type defined here, with 1 generic parameter: `T` note: associated type defined here, with 1 generic parameter: `T`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ - | ^^^^ -
@ -31,13 +31,13 @@ LL | <Self as SVec>::Item<T>,
| +++ | +++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:17:37 --> $DIR/issue-105742.rs:22:37
| |
LL | Output = <Index<<Self as SVec>::Item, LL | Output = <Index<<Self as SVec>::Item,
| ^^^^ expected 1 lifetime argument | ^^^^ expected 1 lifetime argument
| |
note: associated type defined here, with 1 lifetime parameter: `'a` note: associated type defined here, with 1 lifetime parameter: `'a`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ -- | ^^^^ --
@ -47,13 +47,13 @@ LL | Output = <Index<<Self as SVec>::Item<'a>,
| ++++ | ++++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:17:37 --> $DIR/issue-105742.rs:22:37
| |
LL | Output = <Index<<Self as SVec>::Item, LL | Output = <Index<<Self as SVec>::Item,
| ^^^^ expected 1 generic argument | ^^^^ expected 1 generic argument
| |
note: associated type defined here, with 1 generic parameter: `T` note: associated type defined here, with 1 generic parameter: `T`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ - | ^^^^ -
@ -63,13 +63,13 @@ LL | Output = <Index<<Self as SVec>::Item<T>,
| +++ | +++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:22:30 --> $DIR/issue-105742.rs:29:30
| |
LL | Output = <Self as SVec>::Item> as SVec>::Item, LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 lifetime argument | ^^^^ expected 1 lifetime argument
| |
note: associated type defined here, with 1 lifetime parameter: `'a` note: associated type defined here, with 1 lifetime parameter: `'a`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ -- | ^^^^ --
@ -79,13 +79,13 @@ LL | Output = <Self as SVec>::Item<'a>> as SVec>::Item,
| ++++ | ++++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:22:30 --> $DIR/issue-105742.rs:29:30
| |
LL | Output = <Self as SVec>::Item> as SVec>::Item, LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 generic argument | ^^^^ expected 1 generic argument
| |
note: associated type defined here, with 1 generic parameter: `T` note: associated type defined here, with 1 generic parameter: `T`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ - | ^^^^ -
@ -95,13 +95,13 @@ LL | Output = <Self as SVec>::Item<T>> as SVec>::Item,
| +++ | +++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:22:46 --> $DIR/issue-105742.rs:29:46
| |
LL | Output = <Self as SVec>::Item> as SVec>::Item, LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 lifetime argument | ^^^^ expected 1 lifetime argument
| |
note: associated type defined here, with 1 lifetime parameter: `'a` note: associated type defined here, with 1 lifetime parameter: `'a`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ -- | ^^^^ --
@ -111,13 +111,13 @@ LL | Output = <Self as SVec>::Item> as SVec>::Item<'a>,
| ++++ | ++++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:22:46 --> $DIR/issue-105742.rs:29:46
| |
LL | Output = <Self as SVec>::Item> as SVec>::Item, LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 generic argument | ^^^^ expected 1 generic argument
| |
note: associated type defined here, with 1 generic parameter: `T` note: associated type defined here, with 1 generic parameter: `T`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ - | ^^^^ -
@ -133,7 +133,7 @@ LL | pub fn next<'a, T>(s: &'a mut dyn SVec<Item = T, Output = T>) {
| ^^^^ expected 1 lifetime argument | ^^^^ expected 1 lifetime argument
| |
note: associated type defined here, with 1 lifetime parameter: `'a` note: associated type defined here, with 1 lifetime parameter: `'a`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ -- | ^^^^ --
@ -149,7 +149,7 @@ LL | pub fn next<'a, T>(s: &'a mut dyn SVec<Item = T, Output = T>) {
| ^^^^ expected 1 generic argument | ^^^^ expected 1 generic argument
| |
note: associated type defined here, with 1 generic parameter: `T` note: associated type defined here, with 1 generic parameter: `T`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ - | ^^^^ -
@ -159,13 +159,13 @@ LL | pub fn next<'a, T>(s: &'a mut dyn SVec<Item<T> = T, Output = T>) {
| +++ | +++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:12:21 --> $DIR/issue-105742.rs:15:21
| |
LL | <Self as SVec>::Item, LL | <Self as SVec>::Item,
| ^^^^ expected 1 lifetime argument | ^^^^ expected 1 lifetime argument
| |
note: associated type defined here, with 1 lifetime parameter: `'a` note: associated type defined here, with 1 lifetime parameter: `'a`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ -- | ^^^^ --
@ -175,13 +175,13 @@ LL | <Self as SVec>::Item<'a>,
| ++++ | ++++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:12:21 --> $DIR/issue-105742.rs:15:21
| |
LL | <Self as SVec>::Item, LL | <Self as SVec>::Item,
| ^^^^ expected 1 generic argument | ^^^^ expected 1 generic argument
| |
note: associated type defined here, with 1 generic parameter: `T` note: associated type defined here, with 1 generic parameter: `T`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ - | ^^^^ -
@ -191,13 +191,13 @@ LL | <Self as SVec>::Item<T>,
| +++ | +++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:17:37 --> $DIR/issue-105742.rs:22:37
| |
LL | Output = <Index<<Self as SVec>::Item, LL | Output = <Index<<Self as SVec>::Item,
| ^^^^ expected 1 lifetime argument | ^^^^ expected 1 lifetime argument
| |
note: associated type defined here, with 1 lifetime parameter: `'a` note: associated type defined here, with 1 lifetime parameter: `'a`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ -- | ^^^^ --
@ -207,13 +207,13 @@ LL | Output = <Index<<Self as SVec>::Item<'a>,
| ++++ | ++++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:17:37 --> $DIR/issue-105742.rs:22:37
| |
LL | Output = <Index<<Self as SVec>::Item, LL | Output = <Index<<Self as SVec>::Item,
| ^^^^ expected 1 generic argument | ^^^^ expected 1 generic argument
| |
note: associated type defined here, with 1 generic parameter: `T` note: associated type defined here, with 1 generic parameter: `T`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ - | ^^^^ -
@ -223,13 +223,13 @@ LL | Output = <Index<<Self as SVec>::Item<T>,
| +++ | +++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:22:30 --> $DIR/issue-105742.rs:29:30
| |
LL | Output = <Self as SVec>::Item> as SVec>::Item, LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 lifetime argument | ^^^^ expected 1 lifetime argument
| |
note: associated type defined here, with 1 lifetime parameter: `'a` note: associated type defined here, with 1 lifetime parameter: `'a`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ -- | ^^^^ --
@ -239,13 +239,13 @@ LL | Output = <Self as SVec>::Item<'a>> as SVec>::Item,
| ++++ | ++++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:22:30 --> $DIR/issue-105742.rs:29:30
| |
LL | Output = <Self as SVec>::Item> as SVec>::Item, LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 generic argument | ^^^^ expected 1 generic argument
| |
note: associated type defined here, with 1 generic parameter: `T` note: associated type defined here, with 1 generic parameter: `T`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ - | ^^^^ -
@ -255,13 +255,13 @@ LL | Output = <Self as SVec>::Item<T>> as SVec>::Item,
| +++ | +++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:22:46 --> $DIR/issue-105742.rs:29:46
| |
LL | Output = <Self as SVec>::Item> as SVec>::Item, LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 lifetime argument | ^^^^ expected 1 lifetime argument
| |
note: associated type defined here, with 1 lifetime parameter: `'a` note: associated type defined here, with 1 lifetime parameter: `'a`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ -- | ^^^^ --
@ -271,13 +271,13 @@ LL | Output = <Self as SVec>::Item> as SVec>::Item<'a>,
| ++++ | ++++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:22:46 --> $DIR/issue-105742.rs:29:46
| |
LL | Output = <Self as SVec>::Item> as SVec>::Item, LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 generic argument | ^^^^ expected 1 generic argument
| |
note: associated type defined here, with 1 generic parameter: `T` note: associated type defined here, with 1 generic parameter: `T`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ - | ^^^^ -
@ -293,7 +293,7 @@ LL | pub fn next<'a, T>(s: &'a mut dyn SVec<Item = T, Output = T>) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `SVec` cannot be made into an object | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `SVec` cannot be made into an object
| |
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety> note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
--> $DIR/issue-105742.rs:11:17 --> $DIR/issue-105742.rs:14:17
| |
LL | pub trait SVec: Index< LL | pub trait SVec: Index<
| ____________----__^ | ____________----__^
@ -307,6 +307,7 @@ LL | |/ Output = <Index<<Self as SVec>::Item,
LL | || LL | ||
LL | || LL | ||
LL | || LL | ||
... ||
LL | || LL | ||
LL | || Output = <Self as SVec>::Item> as SVec>::Item, LL | || Output = <Self as SVec>::Item> as SVec>::Item,
| ||_________________________________________________^ ...because it uses `Self` as a type parameter | ||_________________________________________________^ ...because it uses `Self` as a type parameter
@ -316,13 +317,13 @@ LL | | > {
| |__^ ...because it uses `Self` as a type parameter | |__^ ...because it uses `Self` as a type parameter
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:34:38 --> $DIR/issue-105742.rs:45:38
| |
LL | fn len(&self) -> <Self as SVec>::Item; LL | fn len(&self) -> <Self as SVec>::Item;
| ^^^^ expected 1 lifetime argument | ^^^^ expected 1 lifetime argument
| |
note: associated type defined here, with 1 lifetime parameter: `'a` note: associated type defined here, with 1 lifetime parameter: `'a`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ -- | ^^^^ --
@ -332,13 +333,13 @@ LL | fn len(&self) -> <Self as SVec>::Item<'_>;
| ++++ | ++++
error[E0107]: missing generics for associated type `SVec::Item` error[E0107]: missing generics for associated type `SVec::Item`
--> $DIR/issue-105742.rs:34:38 --> $DIR/issue-105742.rs:45:38
| |
LL | fn len(&self) -> <Self as SVec>::Item; LL | fn len(&self) -> <Self as SVec>::Item;
| ^^^^ expected 1 generic argument | ^^^^ expected 1 generic argument
| |
note: associated type defined here, with 1 generic parameter: `T` note: associated type defined here, with 1 generic parameter: `T`
--> $DIR/issue-105742.rs:32:10 --> $DIR/issue-105742.rs:43:10
| |
LL | type Item<'a, T>; LL | type Item<'a, T>;
| ^^^^ - | ^^^^ -