`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