Crates.io | copypasteck |
lib.rs | copypasteck |
version | 0.1.4 |
source | src |
created_at | 2014-11-14 10:01:23.316171 |
updated_at | 2015-12-11 23:58:10.571132 |
description | A plugin lint for detecting `if` and `match` branches with duplicated conditions or contents. |
homepage | https://github.com/huonw/copypasteck |
repository | https://github.com/huonw/copypasteck |
max_upload_size | |
id | 100 |
size | 36,805 |
A basic rustc
lint plugin for checking for copy-paste
duplication. This will warn about if
and match
branches with
duplicated conditions or contents.
# Cargo.toml
[package]
name = "example"
version = "0.1.0"
authors = ["You <youremail@example.com>"]
[dependencies.copypasteck]
git = "https://github.com/huonw/copypasteck"
// src/main.rs
#![feature(phase)]
#[phase(plugin)] extern crate copypasteck;
fn main() {
let a = 10i;
if a > 5 {
println!("hi");
} else if a > 5 {
println!("bye");
}
}
$ cargo build
Updating git repository `https://github.com/huonw/copypasteck`
Compiling copypasteck v0.1.0 (https://github.com/huonw/copypasteck)
Compiling example v0.1.0 (file:...)
.../src/main.rs:9:15: 9:20 warning: contents of `if` condition identical to previous condition; was there a copy-paste error?, #[warn(copy_paste)] on by default
.../src/main.rs:9 } else if a > 5 {
^~~~~
.../src/main.rs:7:8: 7:13 note: previous condition here
.../src/main.rs:7 if a > 5 {
^~~~~
This is distributed under the same terms as Rust itself, dual MIT and
Apache. See LICENSE-*
.