I'm learning how to use neon, but I don't understand a thing. If I try to execute this code:

#[macro_use] extern crate neon; use neon::vm::{Call, JsResult}; use neon::mem::Handle; use neon::js::{JsInteger, JsNumber, JsString, JsObject, JsArray, JsValue, Object, Key}; use neon::js::error::{JsError, Kind}; fn test(call: Call) -> JsResult<JsArray> { let scope = call.scope; let js_arr: Handle<JsArray> = try!(try!(call.arguments.require(scope, 1)).check::<JsArray>()); js_arr.set(0, JsNumber::new(scope, 1000)); Ok(js_arr) } register_module!(m, { m.export("test", test) });

I get this error when I call js_arr.set : This function takes 3 parameters but 2 were supplied.

I don't understand why since it's a JsArray . Even Racer tells me that the set method takes 2 parameters. No matter what, js_arr.set takes 3 parameters in this order: &mut bool , neon::macro_internal::runtime::raw::Local and neon::macro_internal::runtime::raw::Local .