Currently, code like
trait Useless {
    fn foo(&self, descriptive_name: uint) { }
}
struct A;
impl Useless for A {
    fn foo(&self, descriptive_name: uint) { println!("{}", descriptive_name); }
}
fn main() {
    let a = A;
    a.foo(1);
} 
will trigger an unused variable warning:
test.rs:2:19: 2:35 warning: unused variable: `descriptive_name`, #[warn(unused_variable)] on by default
test.rs:2     fn foo(&self, descriptive_name: uint) { }
                            ^~~~~~~~~~~~~~~~
 
It seems like using a descriptive name for a parameter should be allowed, even if the default implementation doesn't use the parameter at all.