Apparently this works as well:
let t = Test::<bool>::new().test();
println!("t={}", t);
On 2014-06-04, at 10:50, Tommi <[email protected]> wrote:
> 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