Closed
Description
Some static functions may only make sense for certain constrained typarams, but this is disallowed. For example:
type A<T> = ~[T];
impl<T> A<T> {
static fn new() -> A<T> { ~[] }
}
impl<T: Copy> A<T> {
static fn new_copyable() -> A<T> { ~[] }
}
fn main() {}
However, rust errors with this message:
test.rs:7:0: 9:1 error: duplicate definition of type A
test.rs:7 impl<T: Copy> A<T> {
test.rs:8 static fn new_copyable() -> A<T> { ~[] }
test.rs:9 }
test.rs:3:0: 5:1 note: first definition of type A here:
test.rs:3 impl<T> A<T> {
test.rs:4 static fn new() -> A<T> { ~[] }
test.rs:5 }
error: aborting due to previous error