I don't know if there's a better way, but this at least works:
let tmp: Test<bool> = Test::new();
let t = tmp.test();
println!("t={}", t);
On 2014-06-04, at 10:28, Igor Bukanov <[email protected]> wrote:
> What is the syntax for calling a static method of a generic struct
> while selecting the the generic parameters explicitly? Apparently
> Struct<Type>::static_method does not work. For example, consider the
> following program:
>
> #[deriving(Show)]
> struct Test<T> { i: int }
>
> impl<T> Test<T> {
> fn new() -> Test<T> { Test {i: 1} }
> fn test(&self) -> int { self.i }
> }
>
> fn main() {
> let t = Test<bool>::new().test();
> println!("t={}", t);
> }
>
> The latest nightly compiler generates:
>
> s.rs:10:13: 10:17 error: `Test` is a structure name, but this
> expression uses it like a function name
> s.rs:10 let t = Test<bool>::new().test();
> ^~~~
>
> Note that in this case type inference does not work as removing <bool> gives:
>
> s.rs:10:13: 10:31 error: cannot determine a type for this expression:
> unconstrained type
> s.rs:10 let t = Test::new().test();
> ^~~~~~~~~~~~~~~~~~
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev