Update wrong-number-of-args test to cover more edge cases
This commit is contained in:
parent
2cedccbdc8
commit
566012ebf2
@ -36,6 +36,10 @@ mod type_and_type {
|
||||
type D = Ty<usize, String, char>;
|
||||
//~^ ERROR this struct takes 2 generic arguments but 3 generic arguments
|
||||
//~| HELP remove this
|
||||
|
||||
type E = Ty<>;
|
||||
//~^ ERROR this struct takes 2 generic arguments but 0 generic arguments were supplied
|
||||
//~| HELP add missing
|
||||
}
|
||||
|
||||
mod lifetime_and_type {
|
||||
@ -56,6 +60,12 @@ mod lifetime_and_type {
|
||||
//~| HELP consider introducing
|
||||
|
||||
type D = Ty<'static, usize>;
|
||||
|
||||
type E = Ty<>;
|
||||
//~^ ERROR this struct takes 1 generic argument but 0 generic arguments
|
||||
//~| ERROR missing lifetime specifier
|
||||
//~| HELP consider introducing
|
||||
//~| HELP add missing
|
||||
}
|
||||
|
||||
mod type_and_type_and_type {
|
||||
@ -76,6 +86,10 @@ mod type_and_type_and_type {
|
||||
type E = Ty<usize, String, char, f64>;
|
||||
//~^ ERROR this struct takes at most 3
|
||||
//~| HELP remove
|
||||
|
||||
type F = Ty<>;
|
||||
//~^ ERROR this struct takes at least 2 generic arguments but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
}
|
||||
|
||||
// Traits have an implicit `Self` type - these tests ensure we don't accidentally return it
|
||||
@ -112,6 +126,166 @@ mod r#trait {
|
||||
type E = Box<dyn GenericType<String, usize>>;
|
||||
//~^ ERROR this trait takes 1 generic argument but 2 generic arguments
|
||||
//~| HELP remove
|
||||
|
||||
type F = Box<dyn GenericLifetime<>>;
|
||||
//~^ ERROR missing lifetime specifier
|
||||
//~| HELP consider introducing
|
||||
|
||||
type G = Box<dyn GenericType<>>;
|
||||
//~^ ERROR this trait takes 1 generic argument but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
}
|
||||
|
||||
mod associated_item {
|
||||
mod non_generic {
|
||||
trait NonGenericAT {
|
||||
type AssocTy;
|
||||
}
|
||||
|
||||
type A = Box<dyn NonGenericAT<usize, AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 0 generic arguments but 1 generic argument
|
||||
//~| HELP remove
|
||||
}
|
||||
|
||||
mod lifetime {
|
||||
trait GenericLifetimeAT<'a> {
|
||||
type AssocTy;
|
||||
}
|
||||
|
||||
type A = Box<dyn GenericLifetimeAT<AssocTy=()>>;
|
||||
//~^ ERROR missing lifetime specifier
|
||||
//~| HELP consider introducing
|
||||
|
||||
type B = Box<dyn GenericLifetimeAT<'static, 'static, AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 1 lifetime argument but 2 lifetime arguments were supplied
|
||||
//~| HELP remove
|
||||
|
||||
type C = Box<dyn GenericLifetimeAT<(), AssocTy=()>>;
|
||||
//~^ ERROR missing lifetime specifier
|
||||
//~| HELP consider introducing
|
||||
//~| ERROR this trait takes 0 generic arguments but 1 generic argument
|
||||
//~| HELP remove
|
||||
}
|
||||
|
||||
mod r#type {
|
||||
trait GenericTypeAT<A> {
|
||||
type AssocTy;
|
||||
}
|
||||
|
||||
type A = Box<dyn GenericTypeAT<AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 1 generic argument but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
|
||||
type B = Box<dyn GenericTypeAT<(), (), AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 1 generic argument but 2 generic arguments
|
||||
//~| HELP remove
|
||||
|
||||
type C = Box<dyn GenericTypeAT<'static, AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 1 generic argument but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
//~| ERROR this trait takes 0 lifetime arguments but 1 lifetime argument was supplied
|
||||
//~| HELP remove
|
||||
}
|
||||
|
||||
mod lifetime_and_type {
|
||||
trait GenericLifetimeTypeAT<'a, A> {
|
||||
type AssocTy;
|
||||
}
|
||||
|
||||
type A = Box<dyn GenericLifetimeTypeAT<AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 1 generic argument but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
//~| ERROR missing lifetime specifier
|
||||
//~| HELP consider introducing
|
||||
|
||||
type B = Box<dyn GenericLifetimeTypeAT<'static, AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 1 generic argument but 0 generic arguments were supplied
|
||||
//~| HELP add missing
|
||||
|
||||
type C = Box<dyn GenericLifetimeTypeAT<'static, 'static, AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 1 lifetime argument but 2 lifetime arguments were supplied
|
||||
//~| HELP remove
|
||||
//~| ERROR this trait takes 1 generic argument but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
|
||||
type D = Box<dyn GenericLifetimeTypeAT<(), AssocTy=()>>;
|
||||
//~^ ERROR missing lifetime specifier
|
||||
//~| HELP consider introducing
|
||||
|
||||
type E = Box<dyn GenericLifetimeTypeAT<(), (), AssocTy=()>>;
|
||||
//~^ ERROR missing lifetime specifier
|
||||
//~| HELP consider introducing
|
||||
//~| ERROR this trait takes 1 generic argument but 2 generic arguments
|
||||
//~| HELP remove
|
||||
|
||||
type F = Box<dyn GenericLifetimeTypeAT<'static, 'static, (), AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 1 lifetime argument but 2 lifetime arguments were supplied
|
||||
//~| HELP remove
|
||||
|
||||
type G = Box<dyn GenericLifetimeTypeAT<'static, (), (), AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 1 generic argument but 2 generic arguments
|
||||
//~| HELP remove
|
||||
|
||||
type H = Box<dyn GenericLifetimeTypeAT<'static, 'static, (), (), AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 1 lifetime argument but 2 lifetime arguments were supplied
|
||||
//~| HELP remove
|
||||
//~| ERROR this trait takes 1 generic argument but 2 generic arguments
|
||||
//~| HELP remove
|
||||
}
|
||||
|
||||
mod type_and_type {
|
||||
trait GenericTypeTypeAT<A, B> {
|
||||
type AssocTy;
|
||||
}
|
||||
|
||||
type A = Box<dyn GenericTypeTypeAT<AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 2 generic arguments but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
|
||||
type B = Box<dyn GenericTypeTypeAT<(), AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 2 generic arguments but 1 generic argument
|
||||
//~| HELP add missing
|
||||
|
||||
type C = Box<dyn GenericTypeTypeAT<(), (), (), AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 2 generic arguments but 3 generic arguments
|
||||
//~| HELP remove
|
||||
}
|
||||
|
||||
mod lifetime_and_lifetime {
|
||||
trait GenericLifetimeLifetimeAT<'a, 'b> {
|
||||
type AssocTy;
|
||||
}
|
||||
|
||||
type A = Box<dyn GenericLifetimeLifetimeAT<AssocTy=()>>;
|
||||
//~^ ERROR missing lifetime specifier
|
||||
//~| HELP consider introducing
|
||||
|
||||
type B = Box<dyn GenericLifetimeLifetimeAT<'static, AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 2 lifetime arguments but 1 lifetime argument was supplied
|
||||
//~| HELP add missing lifetime argument
|
||||
}
|
||||
|
||||
mod lifetime_and_lifetime_and_type {
|
||||
trait GenericLifetimeLifetimeTypeAT<'a, 'b, A> {
|
||||
type AssocTy;
|
||||
}
|
||||
|
||||
type A = Box<dyn GenericLifetimeLifetimeTypeAT<AssocTy=()>>;
|
||||
//~^ ERROR missing lifetime specifier
|
||||
//~| HELP consider introducing
|
||||
//~| ERROR this trait takes 1 generic argument but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
|
||||
type B = Box<dyn GenericLifetimeLifetimeTypeAT<'static, AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 2 lifetime arguments but 1 lifetime argument was supplied
|
||||
//~| HELP add missing lifetime argument
|
||||
//~| ERROR this trait takes 1 generic argument but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
|
||||
type C = Box<dyn GenericLifetimeLifetimeTypeAT<'static, (), AssocTy=()>>;
|
||||
//~^ ERROR this trait takes 2 lifetime arguments but 1 lifetime argument was supplied
|
||||
//~| HELP add missing lifetime argument
|
||||
}
|
||||
}
|
||||
|
||||
mod stdlib {
|
||||
@ -135,6 +309,10 @@ mod stdlib {
|
||||
type D = HashMap<usize, String, char, f64>;
|
||||
//~^ ERROR this struct takes at most 3
|
||||
//~| HELP remove this
|
||||
|
||||
type E = HashMap<>;
|
||||
//~^ ERROR this struct takes at least 2 generic arguments but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
}
|
||||
|
||||
mod result {
|
||||
@ -155,6 +333,10 @@ mod stdlib {
|
||||
type D = Result<usize, String, char>;
|
||||
//~^ ERROR this enum takes 2 generic arguments but 3 generic arguments
|
||||
//~| HELP remove
|
||||
|
||||
type E = Result<>;
|
||||
//~^ ERROR this enum takes 2 generic arguments but 0 generic arguments
|
||||
//~| HELP add missing
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user