summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type/type-ascription-precedence.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/type/type-ascription-precedence.rs')
-rw-r--r--src/test/ui/type/type-ascription-precedence.rs54
1 files changed, 0 insertions, 54 deletions
diff --git a/src/test/ui/type/type-ascription-precedence.rs b/src/test/ui/type/type-ascription-precedence.rs
deleted file mode 100644
index d3aef929b..000000000
--- a/src/test/ui/type/type-ascription-precedence.rs
+++ /dev/null
@@ -1,54 +0,0 @@
-// Operator precedence of type ascription
-// Type ascription has very high precedence, the same as operator `as`
-
-#![feature(type_ascription)]
-
-use std::ops::*;
-
-struct S;
-struct Z;
-
-impl Add<Z> for S {
- type Output = S;
- fn add(self, _rhs: Z) -> S { panic!() }
-}
-impl Mul<Z> for S {
- type Output = S;
- fn mul(self, _rhs: Z) -> S { panic!() }
-}
-impl Neg for S {
- type Output = Z;
- fn neg(self) -> Z { panic!() }
-}
-impl Deref for S {
- type Target = Z;
- fn deref(&self) -> &Z { panic!() }
-}
-
-fn main() {
- &S: &S; // OK
- (&S): &S; // OK
- &(S: &S); //~ ERROR mismatched types
-
- *S: Z; // OK
- (*S): Z; // OK
- *(S: Z); //~ ERROR mismatched types
- //~^ ERROR type `Z` cannot be dereferenced
-
- -S: Z; // OK
- (-S): Z; // OK
- -(S: Z); //~ ERROR mismatched types
- //~^ ERROR cannot apply unary operator `-` to type `Z`
-
- S + Z: Z; // OK
- S + (Z: Z); // OK
- (S + Z): Z; //~ ERROR mismatched types
-
- S * Z: Z; // OK
- S * (Z: Z); // OK
- (S * Z): Z; //~ ERROR mismatched types
-
- S .. S: S; // OK
- S .. (S: S); // OK
- (S .. S): S; //~ ERROR mismatched types
-}