rust/tests/ui/op_ref.rs

59 lines
1.2 KiB
Rust
Raw Normal View History

2018-07-28 15:34:52 +00:00
#![allow(unused_variables, clippy::blacklisted_name)]
2019-09-20 05:54:16 +00:00
#![warn(clippy::op_ref)]
#![allow(clippy::many_single_char_names)]
use std::collections::HashSet;
2019-09-20 05:54:16 +00:00
use std::ops::BitAnd;
fn main() {
let tracked_fds: HashSet<i32> = HashSet::new();
let new_fds = HashSet::new();
let unwanted = &tracked_fds - &new_fds;
2018-10-11 10:16:22 +00:00
let foo = &5 - &6;
let bar = String::new();
let bar = "foo" == &bar;
let a = "a".to_string();
let b = "a";
if b < &a {
println!("OK");
}
2019-09-20 05:54:16 +00:00
struct X(i32);
impl BitAnd for X {
type Output = X;
fn bitand(self, rhs: X) -> X {
X(self.0 & rhs.0)
}
}
impl<'a> BitAnd<&'a X> for X {
type Output = X;
fn bitand(self, rhs: &'a X) -> X {
X(self.0 & rhs.0)
}
}
let x = X(1);
let y = X(2);
let z = x & &y;
#[derive(Copy, Clone)]
struct Y(i32);
impl BitAnd for Y {
type Output = Y;
fn bitand(self, rhs: Y) -> Y {
Y(self.0 & rhs.0)
}
}
impl<'a> BitAnd<&'a Y> for Y {
type Output = Y;
fn bitand(self, rhs: &'a Y) -> Y {
Y(self.0 & rhs.0)
}
}
let x = Y(1);
let y = Y(2);
let z = x & &y;
2017-09-18 10:47:33 +00:00
}