// Copyright 2014 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. fn equal(_: &T, _: &T) -> bool where isize : Eq { true //~^ ERROR cannot bound type `isize`, where clause bounds may only be attached } // This should be fine involves a type parameter. fn test() -> bool where Option : Eq {} // This should be rejected as well. fn test2() -> bool where Option : Eq {} //~^ ERROR cannot bound type `core::option::Option`, where clause bounds may #[derive(PartialEq)] //~^ ERROR cannot bound type `isize`, where clause bounds enum Foo where isize : Eq { MkFoo(T) } //~^ ERROR cannot bound type `isize`, where clause bounds fn test3() -> bool where Option> : Eq {} fn test4() -> bool where Option> : Eq {} //~^ ERROR cannot bound type `core::option::Option>`, where clause bounds trait Baz where isize : Eq { //~^ ERROR cannot bound type `isize`, where clause bounds may only fn baz(&self, t: T) where String : Eq; //~ ERROR cannot bound type `collections::string::String` //~^ ERROR cannot bound type `isize`, where clause } impl Baz for isize where isize : Eq { //~^ ERROR cannot bound type `isize`, where clause bounds fn baz() where String : Eq {} } fn main() { equal(&0, &0); }