// option. This file may not be copied, modified, or distributed
// except according to those terms.
-// Test sized-ness checking in substitution.
+// Test sized-ness checking in substitution within fn bodies..
// Unbounded.
fn f1<Sized? X>(x: &X) {
- f2::<X>(x); //~ ERROR instantiating a type parameter with an incompatible type `X`, which does n
+ f2::<X>(x);
+ //~^ ERROR the trait `core::kinds::Sized` is not implemented
}
fn f2<X>(x: &X) {
}
// Bounded.
trait T for Sized? {}
fn f3<Sized? X: T>(x: &X) {
- f4::<X>(x); //~ ERROR instantiating a type parameter with an incompatible type `X`, which does n
+ f4::<X>(x);
+ //~^ ERROR the trait `core::kinds::Sized` is not implemented
}
fn f4<X: T>(x: &X) {
}
fn f5<Y>(x: &Y) {}
fn f6<Sized? X>(x: &X) {}
fn f7<Sized? X>(x1: &E<X>, x2: &E<X>) {
- f5(x1); //~ERROR instantiating a type parameter with an incompatible type `E<X>`, which does not
+ f5(x1);
+ //~^ ERROR the trait `core::kinds::Sized` is not implemented
f6(x2); // ok
}
}
fn f8<Sized? X>(x1: &S<X>, x2: &S<X>) {
- f5(x1); //~ERROR instantiating a type parameter with an incompatible type `S<X>`, which does not
+ f5(x1);
+ //~^ ERROR the trait `core::kinds::Sized` is not implemented
f6(x2); // ok
}
// Test some tuples.
fn f9<Sized? X>(x1: Box<S<X>>, x2: Box<E<X>>) {
- f5(&(*x1, 34i)); //~ERROR E0161
- //~^ ERROR instantiating a type parameter with an incompatible type
- f5(&(32i, *x2)); //~ERROR E0161
- //~^ ERROR instantiating a type parameter with an incompatible type
+ f5(&(*x1, 34i));
+ //~^ ERROR the trait `core::kinds::Sized` is not implemented
+ f5(&(32i, *x2));
+ //~^ ERROR the trait `core::kinds::Sized` is not implemented
}
-// impl - bounded
-trait T1<Z: T> {
-}
-struct S3<Sized? Y>;
-impl<Sized? X: T> T1<X> for S3<X> { //~ ERROR instantiating a type parameter with an incompatible
-}
-
-// impl - unbounded
-trait T2<Z> {
-}
-impl<Sized? X> T2<X> for S3<X> { //~ ERROR instantiating a type parameter with an incompatible type
-}
-
-// impl - struct
-trait T3<Sized? Z> {
-}
-struct S4<Y>;
-impl<Sized? X> T3<X> for S4<X> { //~ ERROR instantiating a type parameter with an incompatible type
-}
-impl<Sized? X> S4<X> { //~ ERROR instantiating a type parameter with an incompatible type
-}
-
-
pub fn main() {
}