Doesn't this need to copy that logic exactly? i.e. also ignore trait methods without a `self` (e.g. both `bar` and `baz` in `trait Foo { fn bar(n: uint) -> Self; fn baz() -> uint; }`).