How about "method `foo` no found and no trait in scope provided one" ?
On Thu, Dec 5, 2013 at 4:29 PM, Philippe Delrieu <philippe.delr...@free.fr> wrote: > Perhaps the error message can be more explicit like trait not found for > method instead of method not found. > > > Le 05/12/2013 21:57, Corey Richardson a écrit : > >> No, since it isn't known which trait the method should come from. It >> could list *all* the traits that provide that method with that >> signature, but even that wouldn't be great if you had the signature >> off. >> >> On Thu, Dec 5, 2013 at 3:26 PM, Philippe Delrieu >> <philippe.delr...@free.fr> wrote: >>> >>> I found my error. It's a classical problem. >>> TestStruct2 implement the trait `extra::serialize::Encodable` using the >>> generated impl by the compiler. >>> I didn't declare : use extra::serialize::Encodable; >>> So the compiler doesn't find it and declare the problem at the >>> implementation. >>> It's the same problem when you work with different file and the trait is >>> implemented in one file and use in another. >>> Usually I found the error but I was confused with other errors and the >>> message wasn't clear. >>> Is it possible to change the message by for example in this case trait >>> `extra::serialize::Encodable` not found for encode, >>> or to add all `use` needed when using a type and its implementation. >>> >>> Philippe >>> >>> Le 05/12/2013 10:53, Philippe Delrieu a écrit : >>> >>>> Thank you it correct my first problems. >>>> >>>> I didn't send code because I thought it has the same cause. For the last >>>> problems the code is : >>>> >>>> use extra::serialize; >>>> use extra::json::{Json, Decoder, ToJson, Object, Encoder, Decoder}; >>>> use extra::treemap::TreeMap; >>>> use std::io::Decorator; >>>> >>>> //second struct with manually implemented Decodable, Encodable >>>> #[deriving(Decodable, Encodable, Eq)] >>>> pub struct TestStruct2 { >>>> dataInt: u8, >>>> dataStr:~str, >>>> dataArray:~[u8], >>>> } >>>> >>>> let test3 : TestStruct2 = TestStruct2 {dataInt: 1, dataStr:~"toto", >>>> dataArray:~[2,3,4,5]}; >>>> //{\"dataArray\":[2,3,4,5],\"dataInt\":1,\"dataStr\":\"toto\"} >>>> let mut m3 = MemWriter::new(); >>>> { >>>> let mut encoder3 =Encoder::init(&mut m3 as &mut Writer); >>>> test3.encode(&mut encoder3); >>>> } >>>> >>>> Rustc result : >>>> test_json.rs:292:8: 292:36 error: type `TestStruct2` does not implement >>>> any method in scope named `encode` >>>> test/test_json.rs:292 test3.encode(&mut encoder3); >>>> >>>> Philippe >>>> >>>> >>>> >>>> Le 05/12/2013 09:56, Kevin Ballard a écrit : >>>>> >>>>> `do` no longer works with stack closures. It now only works with the >>>>> new >>>>> proc() type, which basically means you're only going to see it used >>>>> with >>>>> spawn(). >>>>> >>>>> You need to now say something like >>>>> >>>>> let rc = endpoint.with_c_str(|cstr| { >>>>> unsafe {smq_bind(self.sock, cstr)} >>>>> }); >>>>> >>>>> I can't speculate on your encode error without seeing it. >>>>> >>>>> -Kevin >>>>> >>>>> On Dec 5, 2013, at 12:43 AM, Philippe Delrieu >>>>> <philippe.delr...@free.fr> >>>>> wrote: >>>>> >>>>>> Hello, >>>>>> >>>>>> since a few days, I have a lot of new errors in the master compiler. >>>>>> For >>>>>> example in the rust_zmq lib that I use. When I compile it I have these >>>>>> errors : >>>>>> 321:9 error: last argument in `do` call has non-procedure type: |*i8| >>>>>> -> >>>>>> <V3> >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:319 >>>>>> let rc = do endpoint.with_c_str |cstr| { >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:320 >>>>>> unsafe {zmq_bind(self.sock, cstr)} >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:321 >>>>>> }; >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328:29: >>>>>> 330:9 error: last argument in `do` call has non-procedure type: |*i8| >>>>>> -> >>>>>> <V3> >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328 >>>>>> let rc = do endpoint.with_c_str |cstr| { >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:329 >>>>>> unsafe {zmq_connect(self.sock, cstr)} >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:330 >>>>>> }; >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337:16: >>>>>> 352:9 error: last argument in `do` call has non-procedure type: |*u8, >>>>>> uint| >>>>>> -> <V3> >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337 >>>>>> do data.as_imm_buf |base_ptr, len| { >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:338 >>>>>> let msg = [0, ..32]; >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:339 >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:340 >>>>>> unsafe { >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:341 >>>>>> // Copy the data into the message. >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342 >>>>>> zmq_msg_init_size(&msg, len as size_t); >>>>>> ... >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342:40: >>>>>> 342:43 error: the type of this value must be known in this context >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342 >>>>>> zmq_msg_init_size(&msg, len as size_t); >>>>>> ^~~ >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344:16: >>>>>> 344:32 error: cannot determine a type for this bounded type parameter: >>>>>> unconstrained type >>>>>> >>>>>> >>>>>> /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344 >>>>>> ptr::copy_memory(::cast::transmute(zmq_msg_data(&msg)), base_ptr, >>>>>> len); >>>>>> ^~~~~~~~~~~~~~~~ >>>>>> I have the same type of errors in my code plus other error when the >>>>>> trait can't be found like type `MyType` does not implement any method >>>>>> in >>>>>> scope named `encode` and the function is implemented just above. >>>>>> This code where compiling last week. >>>>>> >>>>>> Philippe Delrieu >>>>>> >>>>>> _______________________________________________ >>>>>> Rust-dev mailing list >>>>>> Rust-dev@mozilla.org >>>>>> https://mail.mozilla.org/listinfo/rust-dev >>>>> >>>>> >>>>> >>>> _______________________________________________ >>>> Rust-dev mailing list >>>> Rust-dev@mozilla.org >>>> https://mail.mozilla.org/listinfo/rust-dev >>>> >>>> >>> _______________________________________________ >>> Rust-dev mailing list >>> Rust-dev@mozilla.org >>> https://mail.mozilla.org/listinfo/rust-dev >> >> > > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev _______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev