[INFO] crate rlua 0.15.3 is already in cache [INFO] extracting crate rlua 0.15.3 into work/ex/clippy-test-run/sources/stable/reg/rlua/0.15.3 [INFO] extracting crate rlua 0.15.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rlua/0.15.3 [INFO] validating manifest of rlua-0.15.3 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of rlua-0.15.3 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing rlua-0.15.3 [INFO] finished frobbing rlua-0.15.3 [INFO] frobbed toml for rlua-0.15.3 written to work/ex/clippy-test-run/sources/stable/reg/rlua/0.15.3/Cargo.toml [INFO] started frobbing rlua-0.15.3 [INFO] finished frobbing rlua-0.15.3 [INFO] frobbed toml for rlua-0.15.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rlua/0.15.3/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting rlua-0.15.3 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/rlua/0.15.3:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 14d1cfcc9b84c44d25d0c1af722fc55e3626a8ecd88a98f6b70e9bc01dca487c [INFO] running `"docker" "start" "-a" "14d1cfcc9b84c44d25d0c1af722fc55e3626a8ecd88a98f6b70e9bc01dca487c"` [INFO] [stderr] Compiling rlua v0.15.3 (/opt/crater/workdir) [INFO] [stderr] Checking rustyline v2.1.0 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lua.rs:854:21 [INFO] [stderr] | [INFO] [stderr] 854 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lua.rs:854:21 [INFO] [stderr] | [INFO] [stderr] 854 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/util.rs:406:12 [INFO] [stderr] | [INFO] [stderr] 406 | } else if !is_wrapped_panic(state, 1) { [INFO] [stderr] | ____________^ [INFO] [stderr] 407 | | if ffi::lua_checkstack(state, LUA_TRACEBACK_STACK) != 0 { [INFO] [stderr] 408 | | gc_guard(state, || { [INFO] [stderr] 409 | | let s = ffi::lua_tostring(state, 1); [INFO] [stderr] ... | [INFO] [stderr] 418 | | } [INFO] [stderr] 419 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 406 | } else if !is_wrapped_panic(state, 1) && ffi::lua_checkstack(state, LUA_TRACEBACK_STACK) != 0 { [INFO] [stderr] 407 | gc_guard(state, || { [INFO] [stderr] 408 | let s = ffi::lua_tostring(state, 1); [INFO] [stderr] 409 | let s = if s.is_null() { [INFO] [stderr] 410 | cstr!("") [INFO] [stderr] 411 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/util.rs:406:12 [INFO] [stderr] | [INFO] [stderr] 406 | } else if !is_wrapped_panic(state, 1) { [INFO] [stderr] | ____________^ [INFO] [stderr] 407 | | if ffi::lua_checkstack(state, LUA_TRACEBACK_STACK) != 0 { [INFO] [stderr] 408 | | gc_guard(state, || { [INFO] [stderr] 409 | | let s = ffi::lua_tostring(state, 1); [INFO] [stderr] ... | [INFO] [stderr] 418 | | } [INFO] [stderr] 419 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 406 | } else if !is_wrapped_panic(state, 1) && ffi::lua_checkstack(state, LUA_TRACEBACK_STACK) != 0 { [INFO] [stderr] 407 | gc_guard(state, || { [INFO] [stderr] 408 | let s = ffi::lua_tostring(state, 1); [INFO] [stderr] 409 | let s = if s.is_null() { [INFO] [stderr] 410 | cstr!("") [INFO] [stderr] 411 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/conversion.rs:282:34 [INFO] [stderr] | [INFO] [stderr] 282 | Ok(Value::Number(self as Number)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(self)` [INFO] [stderr] ... [INFO] [stderr] 306 | lua_convert_float!(f32); [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/function.rs:162:45 [INFO] [stderr] | [INFO] [stderr] 162 | ffi::lua_pushinteger(lua.state, nargs as ffi::lua_Integer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(nargs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `lua::Lua` [INFO] [stderr] --> src/lua.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / pub fn new() -> Lua { [INFO] [stderr] 63 | | unsafe { create_lua(false) } [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 60 | impl Default for lua::Lua { [INFO] [stderr] 61 | fn default() -> Self { [INFO] [stderr] 62 | Self::new() [INFO] [stderr] 63 | } [INFO] [stderr] 64 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lua.rs:146:33 [INFO] [stderr] | [INFO] [stderr] 146 | let mut return_source = "return ".as_bytes().to_vec(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"return "` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/lua.rs:566:17 [INFO] [stderr] | [INFO] [stderr] 566 | key.registry_id as ffi::lua_Integer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(key.registry_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lua.rs:752:5 [INFO] [stderr] | [INFO] [stderr] 752 | / pub(crate) unsafe fn pop_ref<'lua>(&'lua self) -> LuaRef<'lua> { [INFO] [stderr] 753 | | let extra = extra_data(self.state); [INFO] [stderr] 754 | | ffi::lua_xmove(self.state, (*extra).ref_thread, 1); [INFO] [stderr] 755 | | let index = ref_stack_pop(extra); [INFO] [stderr] 756 | | LuaRef { lua: self, index } [INFO] [stderr] 757 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/conversion.rs:282:34 [INFO] [stderr] | [INFO] [stderr] 282 | Ok(Value::Number(self as Number)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(self)` [INFO] [stderr] ... [INFO] [stderr] 306 | lua_convert_float!(f32); [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/lua.rs:915:13 [INFO] [stderr] | [INFO] [stderr] 915 | ud_index as ffi::lua_Integer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(ud_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/function.rs:162:45 [INFO] [stderr] | [INFO] [stderr] 162 | ffi::lua_pushinteger(lua.state, nargs as ffi::lua_Integer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(nargs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `lua::Lua` [INFO] [stderr] --> src/lua.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / pub fn new() -> Lua { [INFO] [stderr] 63 | | unsafe { create_lua(false) } [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 60 | impl Default for lua::Lua { [INFO] [stderr] 61 | fn default() -> Self { [INFO] [stderr] 62 | Self::new() [INFO] [stderr] 63 | } [INFO] [stderr] 64 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lua.rs:146:33 [INFO] [stderr] | [INFO] [stderr] 146 | let mut return_source = "return ".as_bytes().to_vec(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"return "` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `multi::Variadic` [INFO] [stderr] --> src/multi.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | / pub fn new() -> Variadic { [INFO] [stderr] 90 | | Variadic(Vec::new()) [INFO] [stderr] 91 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 85 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/lua.rs:566:17 [INFO] [stderr] | [INFO] [stderr] 566 | key.registry_id as ffi::lua_Integer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(key.registry_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lua.rs:752:5 [INFO] [stderr] | [INFO] [stderr] 752 | / pub(crate) unsafe fn pop_ref<'lua>(&'lua self) -> LuaRef<'lua> { [INFO] [stderr] 753 | | let extra = extra_data(self.state); [INFO] [stderr] 754 | | ffi::lua_xmove(self.state, (*extra).ref_thread, 1); [INFO] [stderr] 755 | | let index = ref_stack_pop(extra); [INFO] [stderr] 756 | | LuaRef { lua: self, index } [INFO] [stderr] 757 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/lua.rs:915:13 [INFO] [stderr] | [INFO] [stderr] 915 | ud_index as ffi::lua_Integer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(ud_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `multi::Variadic` [INFO] [stderr] --> src/multi.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | / pub fn new() -> Variadic { [INFO] [stderr] 90 | | Variadic(Vec::new()) [INFO] [stderr] 91 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 85 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/scope.rs:30:18 [INFO] [stderr] | [INFO] [stderr] 30 | destructors: RefCell Box + 'scope>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/scope.rs:30:18 [INFO] [stderr] | [INFO] [stderr] 30 | destructors: RefCell Box + 'scope>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: item `table::Table<'lua>` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/table.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | / impl<'lua> Table<'lua> { [INFO] [stderr] 15 | | /// Sets a key-value pair in the table. [INFO] [stderr] 16 | | /// [INFO] [stderr] 17 | | /// If the value is `nil`, this will effectively remove the pair. [INFO] [stderr] ... | [INFO] [stderr] 336 | | } [INFO] [stderr] 337 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/table.rs:369:84 [INFO] [stderr] | [INFO] [stderr] 369 | if protect_lua_closure(lua.state, 2, ffi::LUA_MULTRET, |state| { [INFO] [stderr] | ____________________________________________________________________________________^ [INFO] [stderr] 370 | | ffi::lua_next(state, -2) != 0 [INFO] [stderr] 371 | | })? { [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: item `table::Table<'lua>` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/table.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | / impl<'lua> Table<'lua> { [INFO] [stderr] 15 | | /// Sets a key-value pair in the table. [INFO] [stderr] 16 | | /// [INFO] [stderr] 17 | | /// If the value is `nil`, this will effectively remove the pair. [INFO] [stderr] ... | [INFO] [stderr] 336 | | } [INFO] [stderr] 337 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/table.rs:369:84 [INFO] [stderr] | [INFO] [stderr] 369 | if protect_lua_closure(lua.state, 2, ffi::LUA_MULTRET, |state| { [INFO] [stderr] | ____________________________________________________________________________________^ [INFO] [stderr] 370 | | ffi::lua_next(state, -2) != 0 [INFO] [stderr] 371 | | })? { [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/userdata.rs:385:21 [INFO] [stderr] | [INFO] [stderr] 385 | lua.userdata_metatable::()? as ffi::lua_Integer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(lua.userdata_metatable::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/userdata.rs:385:21 [INFO] [stderr] | [INFO] [stderr] 385 | lua.userdata_metatable::()? as ffi::lua_Integer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(lua.userdata_metatable::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `value::MultiValue<'lua>` [INFO] [stderr] --> src/value.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | / pub fn new() -> MultiValue<'lua> { [INFO] [stderr] 85 | | MultiValue(Vec::new()) [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 80 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/value.rs:109:19 [INFO] [stderr] | [INFO] [stderr] 109 | (&self.0).into_iter().rev() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: item `value::MultiValue<'lua>` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/value.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / impl<'lua> MultiValue<'lua> { [INFO] [stderr] 114 | | pub fn from_vec(mut v: Vec>) -> MultiValue<'lua> { [INFO] [stderr] 115 | | v.reverse(); [INFO] [stderr] 116 | | MultiValue(v) [INFO] [stderr] ... | [INFO] [stderr] 143 | | } [INFO] [stderr] 144 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `value::MultiValue<'lua>` [INFO] [stderr] --> src/value.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | / pub fn new() -> MultiValue<'lua> { [INFO] [stderr] 85 | | MultiValue(Vec::new()) [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 80 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/value.rs:109:19 [INFO] [stderr] | [INFO] [stderr] 109 | (&self.0).into_iter().rev() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: item `value::MultiValue<'lua>` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/value.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / impl<'lua> MultiValue<'lua> { [INFO] [stderr] 114 | | pub fn from_vec(mut v: Vec>) -> MultiValue<'lua> { [INFO] [stderr] 115 | | v.reverse(); [INFO] [stderr] 116 | | MultiValue(v) [INFO] [stderr] ... | [INFO] [stderr] 143 | | } [INFO] [stderr] 144 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> tests/thread.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | Err(_) => panic!("resuming dead coroutine error is not CoroutineInactive kind"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> tests/tests.rs:653:60 [INFO] [stderr] | [INFO] [stderr] 653 | .create_function(|_, ()| Ok(Variadic::from_iter(1..1000000))) [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> tests/tests.rs:662:39 [INFO] [stderr] | [INFO] [stderr] 662 | let args = Variadic::from_iter(1..1000000); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> tests/tests.rs:703:48 [INFO] [stderr] | [INFO] [stderr] 703 | assert!(concat.bind(Variadic::from_iter(1..1000000)).is_err()); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> tests/tests.rs:706:51 [INFO] [stderr] | [INFO] [stderr] 706 | .call::<_, ()>(Variadic::from_iter(1..1000000)) [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> tests/tests.rs:33:50 [INFO] [stderr] | [INFO] [stderr] 33 | traceback_output.to_str().unwrap().split("\n").next(), [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> tests/tests.rs:232:9 [INFO] [stderr] | [INFO] [stderr] 232 | Err(_) => panic!("error is not RuntimeError kind"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> tests/tests.rs:237:9 [INFO] [stderr] | [INFO] [stderr] 237 | Err(_) => panic!("error is not CallbackError kind"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> tests/tests.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | Err(_) => panic!("error is not LuaSyntaxError::Syntax kind"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> tests/tests.rs:261:9 [INFO] [stderr] | [INFO] [stderr] 261 | Err(_) => panic!("error is not LuaSyntaxError::IncompleteStatement kind"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/tests.rs:385:5 [INFO] [stderr] | [INFO] [stderr] 385 | assert_eq!(lua.eval::<_, f64>("1.0", None).unwrap(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/tests.rs:385:5 [INFO] [stderr] | [INFO] [stderr] 385 | assert_eq!(lua.eval::<_, f64>("1.0", None).unwrap(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/tests.rs:389:5 [INFO] [stderr] | [INFO] [stderr] 389 | assert_eq!(lua.eval::<_, f64>("1.5", None).unwrap(), 1.5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/tests.rs:389:5 [INFO] [stderr] | [INFO] [stderr] 389 | assert_eq!(lua.eval::<_, f64>("1.5", None).unwrap(), 1.5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> tests/tests.rs:400:9 [INFO] [stderr] | [INFO] [stderr] 400 | f32::MAX as f64 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(f32::MAX)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/tests.rs:398:5 [INFO] [stderr] | [INFO] [stderr] 398 | / assert_eq!( [INFO] [stderr] 399 | | lua.unpack::(lua.pack(f32::MAX).unwrap()).unwrap(), [INFO] [stderr] 400 | | f32::MAX as f64 [INFO] [stderr] 401 | | ); [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/tests.rs:398:5 [INFO] [stderr] | [INFO] [stderr] 398 | / assert_eq!( [INFO] [stderr] 399 | | lua.unpack::(lua.pack(f32::MAX).unwrap()).unwrap(), [INFO] [stderr] 400 | | f32::MAX as f64 [INFO] [stderr] 401 | | ); [INFO] [stderr] | |______^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `args` [INFO] [stderr] --> tests/tests.rs:721:26 [INFO] [stderr] | [INFO] [stderr] 721 | for i in 0..args.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 721 | for (i, ) in args.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `args` [INFO] [stderr] --> tests/tests.rs:752:22 [INFO] [stderr] | [INFO] [stderr] 752 | for i in 0..args.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 752 | for (i, ) in args.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rlua`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> benches/benchmark.rs:11:13 [INFO] [stderr] | [INFO] [stderr] 11 | || Lua::new(), [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Lua::new` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> benches/benchmark.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | || Lua::new(), [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Lua::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> benches/benchmark.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | || Lua::new(), [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Lua::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> benches/benchmark.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | || Lua::new(), [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Lua::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> benches/benchmark.rs:181:13 [INFO] [stderr] | [INFO] [stderr] 181 | || Lua::new(), [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Lua::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "14d1cfcc9b84c44d25d0c1af722fc55e3626a8ecd88a98f6b70e9bc01dca487c"` [INFO] running `"docker" "rm" "-f" "14d1cfcc9b84c44d25d0c1af722fc55e3626a8ecd88a98f6b70e9bc01dca487c"` [INFO] [stdout] 14d1cfcc9b84c44d25d0c1af722fc55e3626a8ecd88a98f6b70e9bc01dca487c