193e71be61
Conflicts: README.md src/methods.rs
38 lines
1016 B
Rust
Executable File
38 lines
1016 B
Rust
Executable File
#![feature(plugin)]
|
|
#![plugin(clippy)]
|
|
|
|
#![allow(unused)]
|
|
#![deny(clippy)]
|
|
|
|
use std::ops::Mul;
|
|
|
|
struct T;
|
|
|
|
impl T {
|
|
fn add(self, other: T) -> T { self } //~ERROR defining a method called `add`
|
|
fn drop(&mut self) { } //~ERROR defining a method called `drop`
|
|
|
|
fn sub(&self, other: T) -> &T { self } // no error, self is a ref
|
|
fn div(self) -> T { self } // no error, different #arguments
|
|
fn rem(self, other: T) { } // no error, wrong return type
|
|
}
|
|
|
|
impl Mul<T> for T {
|
|
type Output = T;
|
|
fn mul(self, other: T) -> T { self } // no error, obviously
|
|
}
|
|
|
|
fn main() {
|
|
let opt = Some(0);
|
|
let _ = opt.unwrap(); //~ERROR used unwrap() on an Option
|
|
|
|
let res: Result<i32, ()> = Ok(0);
|
|
let _ = res.unwrap(); //~ERROR used unwrap() on a Result
|
|
|
|
let _ = "str".to_string(); //~ERROR `"str".to_owned()` is faster
|
|
|
|
let v = &"str";
|
|
let string = v.to_string(); //~ERROR `(*v).to_owned()` is faster
|
|
let _again = string.to_string(); //~ERROR `String.to_string()` is a no-op
|
|
}
|