[INFO] updating cached repository nerd2/rjvm [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/nerd2/rjvm [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/nerd2/rjvm" "work/ex/clippy-test-run/sources/stable/gh/nerd2/rjvm"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/nerd2/rjvm'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/nerd2/rjvm" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nerd2/rjvm"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nerd2/rjvm'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 369b4de561d36a39c950273e846cbe7e0385769b [INFO] sha for GitHub repo nerd2/rjvm: 369b4de561d36a39c950273e846cbe7e0385769b [INFO] validating manifest of nerd2/rjvm 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 nerd2/rjvm 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 nerd2/rjvm [INFO] finished frobbing nerd2/rjvm [INFO] frobbed toml for nerd2/rjvm written to work/ex/clippy-test-run/sources/stable/gh/nerd2/rjvm/Cargo.toml [INFO] started frobbing nerd2/rjvm [INFO] finished frobbing nerd2/rjvm [INFO] frobbed toml for nerd2/rjvm written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nerd2/rjvm/Cargo.toml [INFO] crate nerd2/rjvm has a lockfile. skipping [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 nerd2/rjvm against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/nerd2/rjvm:/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] b9cdb30acb6622c37dd9dcc2fbc3f52482a0538e090f4fcc48db399b2803f5b9 [INFO] running `"docker" "start" "-a" "b9cdb30acb6622c37dd9dcc2fbc3f52482a0538e090f4fcc48db399b2803f5b9"` [INFO] [stderr] Checking checksum v0.2.1 [INFO] [stderr] Compiling bzip2-sys v0.1.6 [INFO] [stderr] Checking msdos_time v0.1.5 [INFO] [stderr] Checking os_type v1.0.0 [INFO] [stderr] Checking bzip2 v0.3.2 [INFO] [stderr] Checking zip v0.2.6 [INFO] [stderr] Checking rjvm v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/class_reader.rs:204:30 [INFO] [stderr] | [INFO] [stderr] 204 | return Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `start_pc` [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/reader/class_reader.rs:204:50 [INFO] [stderr] | [INFO] [stderr] 204 | return Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type}); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `end_pc` [INFO] [stderr] | [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/reader/class_reader.rs:204:66 [INFO] [stderr] | [INFO] [stderr] 204 | return Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `handler_pc` [INFO] [stderr] | [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/reader/class_reader.rs:204:90 [INFO] [stderr] | [INFO] [stderr] 204 | return Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `catch_type` [INFO] [stderr] | [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/reader/class_reader.rs:218:57 [INFO] [stderr] | [INFO] [stderr] 218 | return Ok(AttributeItem::ConstantValue {index: index}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [INFO] [stderr] | [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/reader/class_reader.rs:240:17 [INFO] [stderr] | [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `max_stack` [INFO] [stderr] | [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/reader/class_reader.rs:240:39 [INFO] [stderr] | [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `max_locals` [INFO] [stderr] | [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/reader/class_reader.rs:240:63 [INFO] [stderr] | [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [INFO] [stderr] | [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/reader/class_reader.rs:240:75 [INFO] [stderr] | [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `exceptions` [INFO] [stderr] | [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/reader/class_reader.rs:240:99 [INFO] [stderr] | [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `attributes` [INFO] [stderr] | [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/reader/class_reader.rs:251:50 [INFO] [stderr] | [INFO] [stderr] 251 | return Ok(AttributeItem::Exceptions {indicies: indicies}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `indicies` [INFO] [stderr] | [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/reader/class_reader.rs:257:47 [INFO] [stderr] | [INFO] [stderr] 257 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_index` [INFO] [stderr] | [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/reader/class_reader.rs:257:71 [INFO] [stderr] | [INFO] [stderr] 257 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [INFO] [stderr] | [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/reader/class_reader.rs:268:47 [INFO] [stderr] | [INFO] [stderr] 268 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_index` [INFO] [stderr] | [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/reader/class_reader.rs:268:71 [INFO] [stderr] | [INFO] [stderr] 268 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/reader/class_reader.rs:311:17 [INFO] [stderr] | [INFO] [stderr] 311 | let z = *iter.next().unwrap() as u32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/class_reader.rs:339:58 [INFO] [stderr] | [INFO] [stderr] 339 | return Ok(ConstantPoolItem::CONSTANT_Integer{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [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/reader/class_reader.rs:345:56 [INFO] [stderr] | [INFO] [stderr] 345 | return Ok(ConstantPoolItem::CONSTANT_Float{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [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/reader/class_reader.rs:351:55 [INFO] [stderr] | [INFO] [stderr] 351 | return Ok(ConstantPoolItem::CONSTANT_Long{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [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/reader/class_reader.rs:357:57 [INFO] [stderr] | [INFO] [stderr] 357 | return Ok(ConstantPoolItem::CONSTANT_Double{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [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/reader/class_reader.rs:376:59 [INFO] [stderr] | [INFO] [stderr] 376 | return Ok(ConstantPoolItem::CONSTANT_Fieldref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `class_index` [INFO] [stderr] | [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/reader/class_reader.rs:376:85 [INFO] [stderr] | [INFO] [stderr] 376 | return Ok(ConstantPoolItem::CONSTANT_Fieldref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_and_type_index` [INFO] [stderr] | [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/reader/class_reader.rs:383:60 [INFO] [stderr] | [INFO] [stderr] 383 | return Ok(ConstantPoolItem::CONSTANT_Methodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `class_index` [INFO] [stderr] | [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/reader/class_reader.rs:383:86 [INFO] [stderr] | [INFO] [stderr] 383 | return Ok(ConstantPoolItem::CONSTANT_Methodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_and_type_index` [INFO] [stderr] | [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/reader/class_reader.rs:390:69 [INFO] [stderr] | [INFO] [stderr] 390 | return Ok(ConstantPoolItem::CONSTANT_InterfaceMethodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `class_index` [INFO] [stderr] | [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/reader/class_reader.rs:390:95 [INFO] [stderr] | [INFO] [stderr] 390 | return Ok(ConstantPoolItem::CONSTANT_InterfaceMethodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_and_type_index` [INFO] [stderr] | [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/reader/class_reader.rs:397:62 [INFO] [stderr] | [INFO] [stderr] 397 | return Ok(ConstantPoolItem::CONSTANT_NameAndType{name_index: name_index, descriptor_index: descriptor_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_index` [INFO] [stderr] | [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/reader/class_reader.rs:397:86 [INFO] [stderr] | [INFO] [stderr] 397 | return Ok(ConstantPoolItem::CONSTANT_NameAndType{name_index: name_index, descriptor_index: descriptor_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `descriptor_index` [INFO] [stderr] | [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/reader/class_reader.rs:404:63 [INFO] [stderr] | [INFO] [stderr] 404 | return Ok(ConstantPoolItem::CONSTANT_MethodHandle{reference_kind: reference_kind, reference_index: reference_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference_kind` [INFO] [stderr] | [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/reader/class_reader.rs:404:95 [INFO] [stderr] | [INFO] [stderr] 404 | return Ok(ConstantPoolItem::CONSTANT_MethodHandle{reference_kind: reference_kind, reference_index: reference_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference_index` [INFO] [stderr] | [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/reader/class_reader.rs:410:61 [INFO] [stderr] | [INFO] [stderr] 410 | return Ok(ConstantPoolItem::CONSTANT_MethodType{descriptor_index: descriptor_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `descriptor_index` [INFO] [stderr] | [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/reader/class_reader.rs:417:64 [INFO] [stderr] | [INFO] [stderr] 417 | return Ok(ConstantPoolItem::CONSTANT_InvokeDynamic{bootstrap_method_attr_index: bootstrap_method_attr_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bootstrap_method_attr_index` [INFO] [stderr] | [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/reader/class_reader.rs:417:122 [INFO] [stderr] | [INFO] [stderr] 417 | return Ok(ConstantPoolItem::CONSTANT_InvokeDynamic{bootstrap_method_attr_index: bootstrap_method_attr_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_and_type_index` [INFO] [stderr] | [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/reader/types/runtime.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | class_paths: class_paths, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `class_paths` [INFO] [stderr] | [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/reader/types/runtime.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | jars: jars, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `jars` [INFO] [stderr] | [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/reader/class_reader.rs:204:30 [INFO] [stderr] | [INFO] [stderr] 204 | return Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `start_pc` [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/reader/class_reader.rs:204:50 [INFO] [stderr] | [INFO] [stderr] 204 | return Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type}); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `end_pc` [INFO] [stderr] | [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/reader/class_reader.rs:204:66 [INFO] [stderr] | [INFO] [stderr] 204 | return Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `handler_pc` [INFO] [stderr] | [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/reader/class_reader.rs:204:90 [INFO] [stderr] | [INFO] [stderr] 204 | return Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `catch_type` [INFO] [stderr] | [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/reader/class_reader.rs:218:57 [INFO] [stderr] | [INFO] [stderr] 218 | return Ok(AttributeItem::ConstantValue {index: index}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [INFO] [stderr] | [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/reader/class_reader.rs:240:17 [INFO] [stderr] | [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `max_stack` [INFO] [stderr] | [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/reader/class_reader.rs:240:39 [INFO] [stderr] | [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `max_locals` [INFO] [stderr] | [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/reader/class_reader.rs:240:63 [INFO] [stderr] | [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [INFO] [stderr] | [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/reader/class_reader.rs:240:75 [INFO] [stderr] | [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `exceptions` [INFO] [stderr] | [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/reader/class_reader.rs:240:99 [INFO] [stderr] | [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `attributes` [INFO] [stderr] | [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/reader/class_reader.rs:251:50 [INFO] [stderr] | [INFO] [stderr] 251 | return Ok(AttributeItem::Exceptions {indicies: indicies}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `indicies` [INFO] [stderr] | [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/reader/class_reader.rs:257:47 [INFO] [stderr] | [INFO] [stderr] 257 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_index` [INFO] [stderr] | [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/reader/class_reader.rs:257:71 [INFO] [stderr] | [INFO] [stderr] 257 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [INFO] [stderr] | [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/reader/class_reader.rs:268:47 [INFO] [stderr] | [INFO] [stderr] 268 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_index` [INFO] [stderr] | [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/reader/class_reader.rs:268:71 [INFO] [stderr] | [INFO] [stderr] 268 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/reader/class_reader.rs:311:17 [INFO] [stderr] | [INFO] [stderr] 311 | let z = *iter.next().unwrap() as u32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/class_reader.rs:339:58 [INFO] [stderr] | [INFO] [stderr] 339 | return Ok(ConstantPoolItem::CONSTANT_Integer{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [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/reader/class_reader.rs:345:56 [INFO] [stderr] | [INFO] [stderr] 345 | return Ok(ConstantPoolItem::CONSTANT_Float{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [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/reader/class_reader.rs:351:55 [INFO] [stderr] | [INFO] [stderr] 351 | return Ok(ConstantPoolItem::CONSTANT_Long{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [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/reader/class_reader.rs:357:57 [INFO] [stderr] | [INFO] [stderr] 357 | return Ok(ConstantPoolItem::CONSTANT_Double{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [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/reader/class_reader.rs:376:59 [INFO] [stderr] | [INFO] [stderr] 376 | return Ok(ConstantPoolItem::CONSTANT_Fieldref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `class_index` [INFO] [stderr] | [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/reader/class_reader.rs:376:85 [INFO] [stderr] | [INFO] [stderr] 376 | return Ok(ConstantPoolItem::CONSTANT_Fieldref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_and_type_index` [INFO] [stderr] | [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/reader/class_reader.rs:383:60 [INFO] [stderr] | [INFO] [stderr] 383 | return Ok(ConstantPoolItem::CONSTANT_Methodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `class_index` [INFO] [stderr] | [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/reader/class_reader.rs:383:86 [INFO] [stderr] | [INFO] [stderr] 383 | return Ok(ConstantPoolItem::CONSTANT_Methodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_and_type_index` [INFO] [stderr] | [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/reader/class_reader.rs:390:69 [INFO] [stderr] | [INFO] [stderr] 390 | return Ok(ConstantPoolItem::CONSTANT_InterfaceMethodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `class_index` [INFO] [stderr] | [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/reader/class_reader.rs:390:95 [INFO] [stderr] | [INFO] [stderr] 390 | return Ok(ConstantPoolItem::CONSTANT_InterfaceMethodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_and_type_index` [INFO] [stderr] | [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/reader/class_reader.rs:397:62 [INFO] [stderr] | [INFO] [stderr] 397 | return Ok(ConstantPoolItem::CONSTANT_NameAndType{name_index: name_index, descriptor_index: descriptor_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_index` [INFO] [stderr] | [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/reader/class_reader.rs:397:86 [INFO] [stderr] | [INFO] [stderr] 397 | return Ok(ConstantPoolItem::CONSTANT_NameAndType{name_index: name_index, descriptor_index: descriptor_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `descriptor_index` [INFO] [stderr] | [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/reader/class_reader.rs:404:63 [INFO] [stderr] | [INFO] [stderr] 404 | return Ok(ConstantPoolItem::CONSTANT_MethodHandle{reference_kind: reference_kind, reference_index: reference_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference_kind` [INFO] [stderr] | [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/reader/class_reader.rs:404:95 [INFO] [stderr] | [INFO] [stderr] 404 | return Ok(ConstantPoolItem::CONSTANT_MethodHandle{reference_kind: reference_kind, reference_index: reference_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference_index` [INFO] [stderr] | [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/reader/class_reader.rs:410:61 [INFO] [stderr] | [INFO] [stderr] 410 | return Ok(ConstantPoolItem::CONSTANT_MethodType{descriptor_index: descriptor_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `descriptor_index` [INFO] [stderr] | [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/reader/class_reader.rs:417:64 [INFO] [stderr] | [INFO] [stderr] 417 | return Ok(ConstantPoolItem::CONSTANT_InvokeDynamic{bootstrap_method_attr_index: bootstrap_method_attr_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bootstrap_method_attr_index` [INFO] [stderr] | [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/reader/class_reader.rs:417:122 [INFO] [stderr] | [INFO] [stderr] 417 | return Ok(ConstantPoolItem::CONSTANT_InvokeDynamic{bootstrap_method_attr_index: bootstrap_method_attr_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_and_type_index` [INFO] [stderr] | [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/reader/types/runtime.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | class_paths: class_paths, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `class_paths` [INFO] [stderr] | [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/reader/types/runtime.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | jars: jars, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `jars` [INFO] [stderr] | [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: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | return self.constant_pool.get_class_name(self.this_class_index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.constant_pool.get_class_name(self.this_class_index)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | return Err(ClassReadError::NativeMethod(format!("Method '{}' descriptor '{}' in class '{}'", target_method_name, target_descriptor, class_name))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::NativeMethod(format!("Method '{}' descriptor '{}' in class '{}'", target_method_name, target_descriptor, class_name)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:177:13 [INFO] [stderr] | [INFO] [stderr] 177 | return Ok(code.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(code.clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:196:5 [INFO] [stderr] | [INFO] [stderr] 196 | return out; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `out` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:204:5 [INFO] [stderr] | [INFO] [stderr] 204 | return Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:214:17 [INFO] [stderr] | [INFO] [stderr] 214 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:218:17 [INFO] [stderr] | [INFO] [stderr] 218 | return Ok(AttributeItem::ConstantValue {index: index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(AttributeItem::ConstantValue {index: index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:239:13 [INFO] [stderr] | [INFO] [stderr] 239 | / return Ok(AttributeItem::Code(Code { [INFO] [stderr] 240 | | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] 241 | | })) [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 239 | Ok(AttributeItem::Code(Code { [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] 241 | })) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | return Ok(AttributeItem::Exceptions {indicies: indicies}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(AttributeItem::Exceptions {indicies: indicies})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:257:13 [INFO] [stderr] | [INFO] [stderr] 257 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(AttributeItem::Unknown {name_index: name_index, info: info})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:262:13 [INFO] [stderr] | [INFO] [stderr] 262 | return Ok(AttributeItem::Signature {index: signature_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(AttributeItem::Signature {index: signature_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(AttributeItem::Unknown {name_index: name_index, info: info})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:285:5 [INFO] [stderr] | [INFO] [stderr] 285 | return Ok(field); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(field)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:318:5 [INFO] [stderr] | [INFO] [stderr] 318 | return Ok(ret); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ret)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:333:13 [INFO] [stderr] | [INFO] [stderr] 333 | return Ok(ConstantPoolItem::CONSTANT_Utf8(Rc::new(string))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Utf8(Rc::new(string)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:339:13 [INFO] [stderr] | [INFO] [stderr] 339 | return Ok(ConstantPoolItem::CONSTANT_Integer{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Integer{value: value})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:345:13 [INFO] [stderr] | [INFO] [stderr] 345 | return Ok(ConstantPoolItem::CONSTANT_Float{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Float{value: value})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:351:13 [INFO] [stderr] | [INFO] [stderr] 351 | return Ok(ConstantPoolItem::CONSTANT_Long{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Long{value: value})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:357:13 [INFO] [stderr] | [INFO] [stderr] 357 | return Ok(ConstantPoolItem::CONSTANT_Double{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Double{value: value})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:363:13 [INFO] [stderr] | [INFO] [stderr] 363 | return Ok(ConstantPoolItem::CONSTANT_Class{index: class_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Class{index: class_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | return Ok(ConstantPoolItem::CONSTANT_String{index:string_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_String{index:string_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:376:13 [INFO] [stderr] | [INFO] [stderr] 376 | return Ok(ConstantPoolItem::CONSTANT_Fieldref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Fieldref{class_index: class_index, name_and_type_index: name_and_type_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:383:13 [INFO] [stderr] | [INFO] [stderr] 383 | return Ok(ConstantPoolItem::CONSTANT_Methodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Methodref{class_index: class_index, name_and_type_index: name_and_type_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:390:13 [INFO] [stderr] | [INFO] [stderr] 390 | return Ok(ConstantPoolItem::CONSTANT_InterfaceMethodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_InterfaceMethodref{class_index: class_index, name_and_type_index: name_and_type_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:397:13 [INFO] [stderr] | [INFO] [stderr] 397 | return Ok(ConstantPoolItem::CONSTANT_NameAndType{name_index: name_index, descriptor_index: descriptor_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_NameAndType{name_index: name_index, descriptor_index: descriptor_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:404:13 [INFO] [stderr] | [INFO] [stderr] 404 | return Ok(ConstantPoolItem::CONSTANT_MethodHandle{reference_kind: reference_kind, reference_index: reference_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_MethodHandle{reference_kind: reference_kind, reference_index: reference_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:410:13 [INFO] [stderr] | [INFO] [stderr] 410 | return Ok(ConstantPoolItem::CONSTANT_MethodType{descriptor_index: descriptor_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_MethodType{descriptor_index: descriptor_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:417:13 [INFO] [stderr] | [INFO] [stderr] 417 | return Ok(ConstantPoolItem::CONSTANT_InvokeDynamic{bootstrap_method_attr_index: bootstrap_method_attr_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_InvokeDynamic{bootstrap_method_attr_index: bootstrap_method_attr_index, name_and_type_index: name_and_type_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:421:13 [INFO] [stderr] | [INFO] [stderr] 421 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:460:5 [INFO] [stderr] | [INFO] [stderr] 460 | return Ok(ret); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ret)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/reader/class_reader.rs:432:17 [INFO] [stderr] | [INFO] [stderr] 432 | if magic != 0xCAFEBABE { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xCAFE_BABE` [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: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:496:5 [INFO] [stderr] | [INFO] [stderr] 496 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 154 | return Some(class_result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(class_result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:198:5 [INFO] [stderr] | [INFO] [stderr] 198 | return Err(RunnerError::ClassNotLoaded(String::from(name))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::ClassNotLoaded(String::from(name)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:214:5 [INFO] [stderr] | [INFO] [stderr] 214 | return Ok(class_obj); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(class_obj)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:289:5 [INFO] [stderr] | [INFO] [stderr] 289 | return Ok(core_class); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(core_class)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:348:13 [INFO] [stderr] | [INFO] [stderr] 348 | return Ok(try!(construct_primitive_array(runtime, variable.get_descriptor().as_str(), None))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(try!(construct_primitive_array(runtime, variable.get_descriptor().as_str(), None)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:350:13 [INFO] [stderr] | [INFO] [stderr] 350 | return Ok(Variable::UnresolvedReference(String::from(descriptor))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::UnresolvedReference(String::from(descriptor)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:352:13 [INFO] [stderr] | [INFO] [stderr] 352 | return Ok(try!(construct_array(runtime, class.unwrap(), None))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(try!(construct_array(runtime, class.unwrap(), None)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:355:9 [INFO] [stderr] | [INFO] [stderr] 355 | return Ok(variable); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(variable)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/reader/runner.rs:332:20 [INFO] [stderr] | [INFO] [stderr] 332 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 333 | | if runtime.classes.contains_key(type_string.as_str()) { [INFO] [stderr] 334 | | class = Some(runtime.classes.get(type_string.as_str()).unwrap().clone()); [INFO] [stderr] 335 | | variable = try!(construct_null_object(runtime, class.clone().unwrap())); [INFO] [stderr] ... | [INFO] [stderr] 338 | | } [INFO] [stderr] 339 | | } [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] 332 | } else if runtime.classes.contains_key(type_string.as_str()) { [INFO] [stderr] 333 | class = Some(runtime.classes.get(type_string.as_str()).unwrap().clone()); [INFO] [stderr] 334 | variable = try!(construct_null_object(runtime, class.clone().unwrap())); [INFO] [stderr] 335 | } else { [INFO] [stderr] 336 | variable = Variable::UnresolvedReference(type_string.clone()); [INFO] [stderr] 337 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:393:9 [INFO] [stderr] | [INFO] [stderr] 393 | return Ok((parameters, None)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((parameters, None))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:395:9 [INFO] [stderr] | [INFO] [stderr] 395 | return Ok((parameters, Some(try!(parse_single_type_descriptor(runtime, return_type_string.as_str(), true))))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((parameters, Some(try!(parse_single_type_descriptor(runtime, return_type_string.as_str(), true)))))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:404:9 [INFO] [stderr] | [INFO] [stderr] 404 | return Ok(runtime.pop_from_stack().unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(runtime.pop_from_stack().unwrap().clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:406:9 [INFO] [stderr] | [INFO] [stderr] 406 | return Ok(Variable::Int(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::Int(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:422:5 [INFO] [stderr] | [INFO] [stderr] 422 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:433:5 [INFO] [stderr] | [INFO] [stderr] 433 | return runtime; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `runtime` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:457:9 [INFO] [stderr] | [INFO] [stderr] 457 | return Ok(Variable::Int(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::Int(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:459:9 [INFO] [stderr] | [INFO] [stderr] 459 | return Ok(runtime.pop_from_stack().unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(runtime.pop_from_stack().unwrap().clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | return Ok(runtime.string_interns.get(&string).unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(runtime.string_interns.get(&string).unwrap().clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | return Err(RunnerError::Exception(exception)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::Exception(exception))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | return Ok(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(res)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | return Ok(string); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(string)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | / return String::from(match name.as_str() { [INFO] [stderr] 58 | | "byte" => "B", [INFO] [stderr] 59 | | "char" => "C", [INFO] [stderr] 60 | | "double" => "D", [INFO] [stderr] ... | [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | }); [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 57 | String::from(match name.as_str() { [INFO] [stderr] 58 | "byte" => "B", [INFO] [stderr] 59 | "char" => "C", [INFO] [stderr] 60 | "double" => "D", [INFO] [stderr] 61 | "float" => "F", [INFO] [stderr] 62 | "int" => "I", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | return Ok(ret); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ret)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/java_lang.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/java_lang.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/java_lang.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/java_lang.rs:317:5 [INFO] [stderr] | [INFO] [stderr] 317 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/java_other.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/sun.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/sun.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/sun.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/mod.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | return Ok(false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(false)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/reader/builtins/mod.rs:12:19 [INFO] [stderr] | [INFO] [stderr] 12 | return Ok((true)); [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/reader/builtins/mod.rs:12:19 [INFO] [stderr] | [INFO] [stderr] 12 | return Ok((true)); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/reader/builtins/mod.rs:15:19 [INFO] [stderr] | [INFO] [stderr] 15 | return Ok((true)); [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/reader/builtins/mod.rs:15:19 [INFO] [stderr] | [INFO] [stderr] 15 | return Ok((true)); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/reader/builtins/mod.rs:18:19 [INFO] [stderr] | [INFO] [stderr] 18 | return Ok((true)); [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/reader/builtins/mod.rs:18:19 [INFO] [stderr] | [INFO] [stderr] 18 | return Ok((true)); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/class_objects.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/class_objects.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | return Ok(variable); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(variable)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | return Variable::ArrayReference(Rc::new(array_object)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Variable::ArrayReference(Rc::new(array_object))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | return Ok(Variable::ArrayReference(Rc::new(array_object))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::ArrayReference(Rc::new(array_object)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | return construct_array(runtime, class, data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `construct_array(runtime, class, data)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | return Ok(Variable::ArrayReference(Rc::new(array_object))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::ArrayReference(Rc::new(array_object)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | return Ok(Variable::Reference(class, None)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::Reference(class, None))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | return parse_single_type_descriptor(runtime, name, true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `parse_single_type_descriptor(runtime, name, true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | return Err(RunnerError::Return); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::Return)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:133:30 [INFO] [stderr] | [INFO] [stderr] 133 | if allow_not_found { return Ok(()) } [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | return do_run_method(runtime); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `do_run_method(runtime)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:157:5 [INFO] [stderr] | [INFO] [stderr] 157 | return runtime.invoke(class_name, method_name, descriptor, with_obj, special); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `runtime.invoke(class_name, method_name, descriptor, with_obj, special)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:190:5 [INFO] [stderr] | [INFO] [stderr] 190 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:205:5 [INFO] [stderr] | [INFO] [stderr] 205 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:221:5 [INFO] [stderr] | [INFO] [stderr] 221 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:256:5 [INFO] [stderr] | [INFO] [stderr] 256 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:304:5 [INFO] [stderr] | [INFO] [stderr] 304 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:768:5 [INFO] [stderr] | [INFO] [stderr] 768 | return Ok(false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(false)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/class.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / return Class { [INFO] [stderr] 24 | | name: name.clone(), [INFO] [stderr] 25 | | initialising: RefCell::new(false), [INFO] [stderr] 26 | | initialised: RefCell::new(false), [INFO] [stderr] ... | [INFO] [stderr] 31 | | total_size: RefCell::new(0) [INFO] [stderr] 32 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 23 | Class { [INFO] [stderr] 24 | name: name.clone(), [INFO] [stderr] 25 | initialising: RefCell::new(false), [INFO] [stderr] 26 | initialised: RefCell::new(false), [INFO] [stderr] 27 | cr: cr.clone(), [INFO] [stderr] 28 | statics: RefCell::new(HashMap::new()), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/class.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/class.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:23:21 [INFO] [stderr] | [INFO] [stderr] 23 | return Ok(s.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(s.clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | return self.get_str(name_index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_str(name_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:45:21 [INFO] [stderr] | [INFO] [stderr] 45 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | return Err(ClassReadError::Parse2(format!("Missing CP name & type {}", index))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!("Missing CP name & type {}", index)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:65:21 [INFO] [stderr] | [INFO] [stderr] 65 | return Ok((name_str, type_str)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((name_str, type_str))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:68:21 [INFO] [stderr] | [INFO] [stderr] 68 | return Err(ClassReadError::Parse2(format!("Index {} is not a name and type", index))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!("Index {} is not a name and type", index)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | return Err(ClassReadError::Parse2(format!( "Missing CP field {}", index))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!( "Missing CP field {}", index)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | return Ok((class_str, name_str, type_str)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((class_str, name_str, type_str))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:87:21 [INFO] [stderr] | [INFO] [stderr] 87 | return Err(ClassReadError::Parse2(format!("Index {} is not a field {:?}", index, *maybe_cp_entry.unwrap()))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!("Index {} is not a field {:?}", index, *maybe_cp_entry.unwrap())))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | return Err(ClassReadError::Parse2(format!("Missing CP method {}", index))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!("Missing CP method {}", index)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:104:21 [INFO] [stderr] | [INFO] [stderr] 104 | return Ok((class_str, name_str, type_str)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((class_str, name_str, type_str))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | return Ok((class_str, name_str, type_str)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((class_str, name_str, type_str))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:112:21 [INFO] [stderr] | [INFO] [stderr] 112 | return Err(ClassReadError::Parse2(format!("Index {} is not a method", index))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!("Index {} is not a method", index)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | return Rc::new(obj); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Rc::new(obj)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | return self.type_ref.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.type_ref.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | return self.code; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.code` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | return self.get_member_at_offset(maybe_offset.unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_member_at_offset(maybe_offset.unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | return Some(self.members.borrow()[offset].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.members.borrow()[offset].clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | return maybe_offset.map(|x| self.put_member_at_offset(x, var)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `maybe_offset.map(|x| self.put_member_at_offset(x, var))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | / return match self.type_ref.name.as_str() { [INFO] [stderr] 75 | | "java/lang/String" => { [INFO] [stderr] 76 | | let str = string_to_string(self); [INFO] [stderr] 77 | | write!(f, "String {} '{}'", self.code, str.as_str()) [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | _ => {write!(f, "Object {} type:{}",self.code, self.type_ref.name.as_str()) } [INFO] [stderr] 80 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 74 | match self.type_ref.name.as_str() { [INFO] [stderr] 75 | "java/lang/String" => { [INFO] [stderr] 76 | let str = string_to_string(self); [INFO] [stderr] 77 | write!(f, "String {} '{}'", self.code, str.as_str()) [INFO] [stderr] 78 | } [INFO] [stderr] 79 | _ => {write!(f, "Object {} type:{}",self.code, self.type_ref.name.as_str()) } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | return self as *const _ == other as *const _; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self as *const _ == other as *const _` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | return put_field_specific_class(runtime, obj, &type_ref, field_name, value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `put_field_specific_class(runtime, obj, &type_ref, field_name, value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | return put_field_specific_class(runtime, obj, &class, field_name, value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `put_field_specific_class(runtime, obj, &class, field_name, value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:162:5 [INFO] [stderr] | [INFO] [stderr] 162 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/runtime.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | / return Runtime { [INFO] [stderr] 31 | | class_paths: class_paths, [INFO] [stderr] 32 | | jars: jars, [INFO] [stderr] 33 | | previous_frames: vec!(Frame::new()), [INFO] [stderr] ... | [INFO] [stderr] 45 | | objects: Vec::new() [INFO] [stderr] 46 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 30 | Runtime { [INFO] [stderr] 31 | class_paths: class_paths, [INFO] [stderr] 32 | jars: jars, [INFO] [stderr] 33 | previous_frames: vec!(Frame::new()), [INFO] [stderr] 34 | current_frame: Frame::new(), [INFO] [stderr] 35 | classes: HashMap::new(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/runtime.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/runtime.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | return maybe_var; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `maybe_var` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/runtime.rs:163:9 [INFO] [stderr] | [INFO] [stderr] 163 | return Err(RunnerError::Invoke); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::Invoke)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | return *x != 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:40:17 [INFO] [stderr] | [INFO] [stderr] 40 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:50:17 [INFO] [stderr] | [INFO] [stderr] 50 | return *x as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x as u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | return *x as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x as i16` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | return if *x { 1 } else { 0 }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `if *x { 1 } else { 0 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:79:17 [INFO] [stderr] | [INFO] [stderr] 79 | return *x as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x as i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:82:17 [INFO] [stderr] | [INFO] [stderr] 82 | return *x as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x as i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:85:17 [INFO] [stderr] | [INFO] [stderr] 85 | return *x as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x as i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:99:17 [INFO] [stderr] | [INFO] [stderr] 99 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:119:17 [INFO] [stderr] | [INFO] [stderr] 119 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:129:17 [INFO] [stderr] | [INFO] [stderr] 129 | return class.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `class.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:139:17 [INFO] [stderr] | [INFO] [stderr] 139 | return obj.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `obj.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:152:17 [INFO] [stderr] | [INFO] [stderr] 152 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:159:17 [INFO] [stderr] | [INFO] [stderr] 159 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:162:17 [INFO] [stderr] | [INFO] [stderr] 162 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:169:17 [INFO] [stderr] | [INFO] [stderr] 169 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:172:17 [INFO] [stderr] | [INFO] [stderr] 172 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:182:17 [INFO] [stderr] | [INFO] [stderr] 182 | return obj.is_none(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `obj.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:185:17 [INFO] [stderr] | [INFO] [stderr] 185 | return array.is_null; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `array.is_null` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:188:17 [INFO] [stderr] | [INFO] [stderr] 188 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:198:17 [INFO] [stderr] | [INFO] [stderr] 198 | return array.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `array.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:208:17 [INFO] [stderr] | [INFO] [stderr] 208 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:211:17 [INFO] [stderr] | [INFO] [stderr] 211 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:214:17 [INFO] [stderr] | [INFO] [stderr] 214 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:219:9 [INFO] [stderr] | [INFO] [stderr] 219 | / return match self { [INFO] [stderr] 220 | | &Variable::Boolean(_x) => true, [INFO] [stderr] 221 | | &Variable::Byte(_x) => true, [INFO] [stderr] 222 | | &Variable::Short(_x) => true, [INFO] [stderr] ... | [INFO] [stderr] 225 | | _ => false, [INFO] [stderr] 226 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 219 | match self { [INFO] [stderr] 220 | &Variable::Boolean(_x) => true, [INFO] [stderr] 221 | &Variable::Byte(_x) => true, [INFO] [stderr] 222 | &Variable::Short(_x) => true, [INFO] [stderr] 223 | &Variable::Char(_x) => true, [INFO] [stderr] 224 | &Variable::Int(_x) => true, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:229:9 [INFO] [stderr] | [INFO] [stderr] 229 | / return match self { [INFO] [stderr] 230 | | &Variable::Reference(ref _class, ref _x) => false, [INFO] [stderr] 231 | | &Variable::ArrayReference(ref _x) => false, [INFO] [stderr] 232 | | &Variable::InterfaceReference(ref _x) => false, [INFO] [stderr] 233 | | &Variable::UnresolvedReference(ref _x) => false, [INFO] [stderr] 234 | | _ => true, [INFO] [stderr] 235 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 229 | match self { [INFO] [stderr] 230 | &Variable::Reference(ref _class, ref _x) => false, [INFO] [stderr] 231 | &Variable::ArrayReference(ref _x) => false, [INFO] [stderr] 232 | &Variable::InterfaceReference(ref _x) => false, [INFO] [stderr] 233 | &Variable::UnresolvedReference(ref _x) => false, [INFO] [stderr] 234 | _ => true, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:239:9 [INFO] [stderr] | [INFO] [stderr] 239 | / return match self { [INFO] [stderr] 240 | | &Variable::UnresolvedReference(ref _x) => true, [INFO] [stderr] 241 | | _ => false, [INFO] [stderr] 242 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 239 | match self { [INFO] [stderr] 240 | &Variable::UnresolvedReference(ref _x) => true, [INFO] [stderr] 241 | _ => false, [INFO] [stderr] 242 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:246:9 [INFO] [stderr] | [INFO] [stderr] 246 | / return match self { [INFO] [stderr] 247 | | &Variable::UnresolvedReference(ref type_name) => type_name.clone(), [INFO] [stderr] 248 | | _ => panic!("Cannot get unresolved type name of {}", self), [INFO] [stderr] 249 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 246 | match self { [INFO] [stderr] 247 | &Variable::UnresolvedReference(ref type_name) => type_name.clone(), [INFO] [stderr] 248 | _ => panic!("Cannot get unresolved type name of {}", self), [INFO] [stderr] 249 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:257:21 [INFO] [stderr] | [INFO] [stderr] 257 | return Err(RunnerError::Exception(exception)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::Exception(exception))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:259:21 [INFO] [stderr] | [INFO] [stderr] 259 | return Ok(obj.as_ref().unwrap().code()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(obj.as_ref().unwrap().code())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:265:21 [INFO] [stderr] | [INFO] [stderr] 265 | return Err(RunnerError::Exception(exception)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::Exception(exception))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:267:21 [INFO] [stderr] | [INFO] [stderr] 267 | return Ok(obj.code); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(obj.code)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:303:9 [INFO] [stderr] | [INFO] [stderr] 303 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:307:9 [INFO] [stderr] | [INFO] [stderr] 307 | / return match self { [INFO] [stderr] 308 | | &Variable::Reference(ref class, ref obj) => [INFO] [stderr] 309 | | if obj.is_some() { [INFO] [stderr] 310 | | format!("Reference of type {} with content {}", class.name, obj.as_ref().unwrap()) [INFO] [stderr] ... | [INFO] [stderr] 324 | | &Variable::UnresolvedReference(ref name) => format!("UnresolvedReference {}", name), [INFO] [stderr] 325 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 307 | match self { [INFO] [stderr] 308 | &Variable::Reference(ref class, ref obj) => [INFO] [stderr] 309 | if obj.is_some() { [INFO] [stderr] 310 | format!("Reference of type {} with content {}", class.name, obj.as_ref().unwrap()) [INFO] [stderr] 311 | } else { [INFO] [stderr] 312 | format!("", class.name) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:333:25 [INFO] [stderr] | [INFO] [stderr] 333 | return string_to_string(obj.as_ref().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `string_to_string(obj.as_ref().unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | return class_result; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `class_result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | return reader::runner::get_runtime(class_paths, get_rt_jar(), true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `reader::runner::get_runtime(class_paths, get_rt_jar(), true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | return reader::runner::get_runtime(class_paths, get_rt_jar(), false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `reader::runner::get_runtime(class_paths, get_rt_jar(), false)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | return reader::runner::run_method(runtime, &class_result, method, arguments, String::from(return_descriptor)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `reader::runner::run_method(runtime, &class_result, method, arguments, String::from(return_descriptor)).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | return self.constant_pool.get_class_name(self.this_class_index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.constant_pool.get_class_name(self.this_class_index)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | return Err(ClassReadError::NativeMethod(format!("Method '{}' descriptor '{}' in class '{}'", target_method_name, target_descriptor, class_name))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::NativeMethod(format!("Method '{}' descriptor '{}' in class '{}'", target_method_name, target_descriptor, class_name)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:177:13 [INFO] [stderr] | [INFO] [stderr] 177 | return Ok(code.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(code.clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:196:5 [INFO] [stderr] | [INFO] [stderr] 196 | return out; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `out` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:204:5 [INFO] [stderr] | [INFO] [stderr] 204 | return Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ExceptionItem {start_pc: start_pc, end_pc: end_pc, handler_pc: handler_pc, catch_type: catch_type})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:214:17 [INFO] [stderr] | [INFO] [stderr] 214 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:218:17 [INFO] [stderr] | [INFO] [stderr] 218 | return Ok(AttributeItem::ConstantValue {index: index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(AttributeItem::ConstantValue {index: index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:239:13 [INFO] [stderr] | [INFO] [stderr] 239 | / return Ok(AttributeItem::Code(Code { [INFO] [stderr] 240 | | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] 241 | | })) [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 239 | Ok(AttributeItem::Code(Code { [INFO] [stderr] 240 | max_stack: max_stack, max_locals: max_locals, code: code, exceptions: exceptions, attributes: attributes [INFO] [stderr] 241 | })) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | return Ok(AttributeItem::Exceptions {indicies: indicies}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(AttributeItem::Exceptions {indicies: indicies})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:257:13 [INFO] [stderr] | [INFO] [stderr] 257 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(AttributeItem::Unknown {name_index: name_index, info: info})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:262:13 [INFO] [stderr] | [INFO] [stderr] 262 | return Ok(AttributeItem::Signature {index: signature_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(AttributeItem::Signature {index: signature_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | return Ok(AttributeItem::Unknown {name_index: name_index, info: info}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(AttributeItem::Unknown {name_index: name_index, info: info})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:285:5 [INFO] [stderr] | [INFO] [stderr] 285 | return Ok(field); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(field)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:318:5 [INFO] [stderr] | [INFO] [stderr] 318 | return Ok(ret); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ret)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:333:13 [INFO] [stderr] | [INFO] [stderr] 333 | return Ok(ConstantPoolItem::CONSTANT_Utf8(Rc::new(string))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Utf8(Rc::new(string)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:339:13 [INFO] [stderr] | [INFO] [stderr] 339 | return Ok(ConstantPoolItem::CONSTANT_Integer{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Integer{value: value})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:345:13 [INFO] [stderr] | [INFO] [stderr] 345 | return Ok(ConstantPoolItem::CONSTANT_Float{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Float{value: value})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:351:13 [INFO] [stderr] | [INFO] [stderr] 351 | return Ok(ConstantPoolItem::CONSTANT_Long{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Long{value: value})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:357:13 [INFO] [stderr] | [INFO] [stderr] 357 | return Ok(ConstantPoolItem::CONSTANT_Double{value: value}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Double{value: value})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:363:13 [INFO] [stderr] | [INFO] [stderr] 363 | return Ok(ConstantPoolItem::CONSTANT_Class{index: class_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Class{index: class_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | return Ok(ConstantPoolItem::CONSTANT_String{index:string_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_String{index:string_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:376:13 [INFO] [stderr] | [INFO] [stderr] 376 | return Ok(ConstantPoolItem::CONSTANT_Fieldref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Fieldref{class_index: class_index, name_and_type_index: name_and_type_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:383:13 [INFO] [stderr] | [INFO] [stderr] 383 | return Ok(ConstantPoolItem::CONSTANT_Methodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_Methodref{class_index: class_index, name_and_type_index: name_and_type_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:390:13 [INFO] [stderr] | [INFO] [stderr] 390 | return Ok(ConstantPoolItem::CONSTANT_InterfaceMethodref{class_index: class_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_InterfaceMethodref{class_index: class_index, name_and_type_index: name_and_type_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:397:13 [INFO] [stderr] | [INFO] [stderr] 397 | return Ok(ConstantPoolItem::CONSTANT_NameAndType{name_index: name_index, descriptor_index: descriptor_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_NameAndType{name_index: name_index, descriptor_index: descriptor_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:404:13 [INFO] [stderr] | [INFO] [stderr] 404 | return Ok(ConstantPoolItem::CONSTANT_MethodHandle{reference_kind: reference_kind, reference_index: reference_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_MethodHandle{reference_kind: reference_kind, reference_index: reference_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:410:13 [INFO] [stderr] | [INFO] [stderr] 410 | return Ok(ConstantPoolItem::CONSTANT_MethodType{descriptor_index: descriptor_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_MethodType{descriptor_index: descriptor_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:417:13 [INFO] [stderr] | [INFO] [stderr] 417 | return Ok(ConstantPoolItem::CONSTANT_InvokeDynamic{bootstrap_method_attr_index: bootstrap_method_attr_index, name_and_type_index: name_and_type_index}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantPoolItem::CONSTANT_InvokeDynamic{bootstrap_method_attr_index: bootstrap_method_attr_index, name_and_type_index: name_and_type_index})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:421:13 [INFO] [stderr] | [INFO] [stderr] 421 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:460:5 [INFO] [stderr] | [INFO] [stderr] 460 | return Ok(ret); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ret)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/reader/class_reader.rs:432:17 [INFO] [stderr] | [INFO] [stderr] 432 | if magic != 0xCAFEBABE { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xCAFE_BABE` [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: unneeded return statement [INFO] [stderr] --> src/reader/class_reader.rs:496:5 [INFO] [stderr] | [INFO] [stderr] 496 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 154 | return Some(class_result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(class_result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:198:5 [INFO] [stderr] | [INFO] [stderr] 198 | return Err(RunnerError::ClassNotLoaded(String::from(name))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::ClassNotLoaded(String::from(name)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:214:5 [INFO] [stderr] | [INFO] [stderr] 214 | return Ok(class_obj); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(class_obj)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:289:5 [INFO] [stderr] | [INFO] [stderr] 289 | return Ok(core_class); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(core_class)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:348:13 [INFO] [stderr] | [INFO] [stderr] 348 | return Ok(try!(construct_primitive_array(runtime, variable.get_descriptor().as_str(), None))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(try!(construct_primitive_array(runtime, variable.get_descriptor().as_str(), None)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:350:13 [INFO] [stderr] | [INFO] [stderr] 350 | return Ok(Variable::UnresolvedReference(String::from(descriptor))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::UnresolvedReference(String::from(descriptor)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:352:13 [INFO] [stderr] | [INFO] [stderr] 352 | return Ok(try!(construct_array(runtime, class.unwrap(), None))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(try!(construct_array(runtime, class.unwrap(), None)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:355:9 [INFO] [stderr] | [INFO] [stderr] 355 | return Ok(variable); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(variable)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/reader/runner.rs:332:20 [INFO] [stderr] | [INFO] [stderr] 332 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 333 | | if runtime.classes.contains_key(type_string.as_str()) { [INFO] [stderr] 334 | | class = Some(runtime.classes.get(type_string.as_str()).unwrap().clone()); [INFO] [stderr] 335 | | variable = try!(construct_null_object(runtime, class.clone().unwrap())); [INFO] [stderr] ... | [INFO] [stderr] 338 | | } [INFO] [stderr] 339 | | } [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] 332 | } else if runtime.classes.contains_key(type_string.as_str()) { [INFO] [stderr] 333 | class = Some(runtime.classes.get(type_string.as_str()).unwrap().clone()); [INFO] [stderr] 334 | variable = try!(construct_null_object(runtime, class.clone().unwrap())); [INFO] [stderr] 335 | } else { [INFO] [stderr] 336 | variable = Variable::UnresolvedReference(type_string.clone()); [INFO] [stderr] 337 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:393:9 [INFO] [stderr] | [INFO] [stderr] 393 | return Ok((parameters, None)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((parameters, None))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:395:9 [INFO] [stderr] | [INFO] [stderr] 395 | return Ok((parameters, Some(try!(parse_single_type_descriptor(runtime, return_type_string.as_str(), true))))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((parameters, Some(try!(parse_single_type_descriptor(runtime, return_type_string.as_str(), true)))))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:404:9 [INFO] [stderr] | [INFO] [stderr] 404 | return Ok(runtime.pop_from_stack().unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(runtime.pop_from_stack().unwrap().clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:406:9 [INFO] [stderr] | [INFO] [stderr] 406 | return Ok(Variable::Int(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::Int(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:422:5 [INFO] [stderr] | [INFO] [stderr] 422 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:433:5 [INFO] [stderr] | [INFO] [stderr] 433 | return runtime; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `runtime` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:457:9 [INFO] [stderr] | [INFO] [stderr] 457 | return Ok(Variable::Int(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::Int(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/runner.rs:459:9 [INFO] [stderr] | [INFO] [stderr] 459 | return Ok(runtime.pop_from_stack().unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(runtime.pop_from_stack().unwrap().clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | return Ok(runtime.string_interns.get(&string).unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(runtime.string_interns.get(&string).unwrap().clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | return Err(RunnerError::Exception(exception)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::Exception(exception))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | return Ok(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(res)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | return Ok(string); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(string)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | / return String::from(match name.as_str() { [INFO] [stderr] 58 | | "byte" => "B", [INFO] [stderr] 59 | | "char" => "C", [INFO] [stderr] 60 | | "double" => "D", [INFO] [stderr] ... | [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | }); [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 57 | String::from(match name.as_str() { [INFO] [stderr] 58 | "byte" => "B", [INFO] [stderr] 59 | "char" => "C", [INFO] [stderr] 60 | "double" => "D", [INFO] [stderr] 61 | "float" => "F", [INFO] [stderr] 62 | "int" => "I", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | return Ok(ret); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ret)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/util.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/java_lang.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/java_lang.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/java_lang.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/java_lang.rs:317:5 [INFO] [stderr] | [INFO] [stderr] 317 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/java_other.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/sun.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/sun.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/sun.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/builtins/mod.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | return Ok(false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(false)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/reader/builtins/mod.rs:12:19 [INFO] [stderr] | [INFO] [stderr] 12 | return Ok((true)); [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/reader/builtins/mod.rs:12:19 [INFO] [stderr] | [INFO] [stderr] 12 | return Ok((true)); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/reader/builtins/mod.rs:15:19 [INFO] [stderr] | [INFO] [stderr] 15 | return Ok((true)); [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/reader/builtins/mod.rs:15:19 [INFO] [stderr] | [INFO] [stderr] 15 | return Ok((true)); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/reader/builtins/mod.rs:18:19 [INFO] [stderr] | [INFO] [stderr] 18 | return Ok((true)); [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/reader/builtins/mod.rs:18:19 [INFO] [stderr] | [INFO] [stderr] 18 | return Ok((true)); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/class_objects.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/class_objects.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | return Ok(variable); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(variable)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | return Variable::ArrayReference(Rc::new(array_object)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Variable::ArrayReference(Rc::new(array_object))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | return Ok(Variable::ArrayReference(Rc::new(array_object))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::ArrayReference(Rc::new(array_object)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | return construct_array(runtime, class, data); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `construct_array(runtime, class, data)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | return Ok(Variable::ArrayReference(Rc::new(array_object))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::ArrayReference(Rc::new(array_object)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | return Ok(Variable::Reference(class, None)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Variable::Reference(class, None))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/construction.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | return parse_single_type_descriptor(runtime, name, true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `parse_single_type_descriptor(runtime, name, true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | return Err(RunnerError::Return); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::Return)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:133:30 [INFO] [stderr] | [INFO] [stderr] 133 | if allow_not_found { return Ok(()) } [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | return do_run_method(runtime); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `do_run_method(runtime)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:157:5 [INFO] [stderr] | [INFO] [stderr] 157 | return runtime.invoke(class_name, method_name, descriptor, with_obj, special); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `runtime.invoke(class_name, method_name, descriptor, with_obj, special)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:190:5 [INFO] [stderr] | [INFO] [stderr] 190 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:205:5 [INFO] [stderr] | [INFO] [stderr] 205 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:221:5 [INFO] [stderr] | [INFO] [stderr] 221 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:256:5 [INFO] [stderr] | [INFO] [stderr] 256 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:304:5 [INFO] [stderr] | [INFO] [stderr] 304 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/jvm/interpreter.rs:768:5 [INFO] [stderr] | [INFO] [stderr] 768 | return Ok(false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(false)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/class.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / return Class { [INFO] [stderr] 24 | | name: name.clone(), [INFO] [stderr] 25 | | initialising: RefCell::new(false), [INFO] [stderr] 26 | | initialised: RefCell::new(false), [INFO] [stderr] ... | [INFO] [stderr] 31 | | total_size: RefCell::new(0) [INFO] [stderr] 32 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 23 | Class { [INFO] [stderr] 24 | name: name.clone(), [INFO] [stderr] 25 | initialising: RefCell::new(false), [INFO] [stderr] 26 | initialised: RefCell::new(false), [INFO] [stderr] 27 | cr: cr.clone(), [INFO] [stderr] 28 | statics: RefCell::new(HashMap::new()), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/class.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/class.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:23:21 [INFO] [stderr] | [INFO] [stderr] 23 | return Ok(s.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(s.clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | return self.get_str(name_index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_str(name_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:45:21 [INFO] [stderr] | [INFO] [stderr] 45 | return Err(ClassReadError::Parse); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | return Err(ClassReadError::Parse2(format!("Missing CP name & type {}", index))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!("Missing CP name & type {}", index)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:65:21 [INFO] [stderr] | [INFO] [stderr] 65 | return Ok((name_str, type_str)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((name_str, type_str))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:68:21 [INFO] [stderr] | [INFO] [stderr] 68 | return Err(ClassReadError::Parse2(format!("Index {} is not a name and type", index))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!("Index {} is not a name and type", index)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | return Err(ClassReadError::Parse2(format!( "Missing CP field {}", index))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!( "Missing CP field {}", index)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | return Ok((class_str, name_str, type_str)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((class_str, name_str, type_str))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:87:21 [INFO] [stderr] | [INFO] [stderr] 87 | return Err(ClassReadError::Parse2(format!("Index {} is not a field {:?}", index, *maybe_cp_entry.unwrap()))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!("Index {} is not a field {:?}", index, *maybe_cp_entry.unwrap())))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | return Err(ClassReadError::Parse2(format!("Missing CP method {}", index))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!("Missing CP method {}", index)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:104:21 [INFO] [stderr] | [INFO] [stderr] 104 | return Ok((class_str, name_str, type_str)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((class_str, name_str, type_str))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | return Ok((class_str, name_str, type_str)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((class_str, name_str, type_str))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/constant_pool.rs:112:21 [INFO] [stderr] | [INFO] [stderr] 112 | return Err(ClassReadError::Parse2(format!("Index {} is not a method", index))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClassReadError::Parse2(format!("Index {} is not a method", index)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | return Rc::new(obj); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Rc::new(obj)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | return self.type_ref.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.type_ref.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | return self.code; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.code` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | return self.get_member_at_offset(maybe_offset.unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_member_at_offset(maybe_offset.unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | return Some(self.members.borrow()[offset].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.members.borrow()[offset].clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | return maybe_offset.map(|x| self.put_member_at_offset(x, var)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `maybe_offset.map(|x| self.put_member_at_offset(x, var))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | / return match self.type_ref.name.as_str() { [INFO] [stderr] 75 | | "java/lang/String" => { [INFO] [stderr] 76 | | let str = string_to_string(self); [INFO] [stderr] 77 | | write!(f, "String {} '{}'", self.code, str.as_str()) [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | _ => {write!(f, "Object {} type:{}",self.code, self.type_ref.name.as_str()) } [INFO] [stderr] 80 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 74 | match self.type_ref.name.as_str() { [INFO] [stderr] 75 | "java/lang/String" => { [INFO] [stderr] 76 | let str = string_to_string(self); [INFO] [stderr] 77 | write!(f, "String {} '{}'", self.code, str.as_str()) [INFO] [stderr] 78 | } [INFO] [stderr] 79 | _ => {write!(f, "Object {} type:{}",self.code, self.type_ref.name.as_str()) } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | return self as *const _ == other as *const _; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self as *const _ == other as *const _` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | return put_field_specific_class(runtime, obj, &type_ref, field_name, value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `put_field_specific_class(runtime, obj, &type_ref, field_name, value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | return put_field_specific_class(runtime, obj, &class, field_name, value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `put_field_specific_class(runtime, obj, &class, field_name, value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/objects.rs:162:5 [INFO] [stderr] | [INFO] [stderr] 162 | return Ok(var); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(var)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/runtime.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | / return Runtime { [INFO] [stderr] 31 | | class_paths: class_paths, [INFO] [stderr] 32 | | jars: jars, [INFO] [stderr] 33 | | previous_frames: vec!(Frame::new()), [INFO] [stderr] ... | [INFO] [stderr] 45 | | objects: Vec::new() [INFO] [stderr] 46 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 30 | Runtime { [INFO] [stderr] 31 | class_paths: class_paths, [INFO] [stderr] 32 | jars: jars, [INFO] [stderr] 33 | previous_frames: vec!(Frame::new()), [INFO] [stderr] 34 | current_frame: Frame::new(), [INFO] [stderr] 35 | classes: HashMap::new(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/runtime.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/runtime.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | return maybe_var; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `maybe_var` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/runtime.rs:163:9 [INFO] [stderr] | [INFO] [stderr] 163 | return Err(RunnerError::Invoke); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::Invoke)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | return *x != 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:40:17 [INFO] [stderr] | [INFO] [stderr] 40 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:50:17 [INFO] [stderr] | [INFO] [stderr] 50 | return *x as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x as u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | return *x as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x as i16` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | return if *x { 1 } else { 0 }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `if *x { 1 } else { 0 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:79:17 [INFO] [stderr] | [INFO] [stderr] 79 | return *x as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x as i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:82:17 [INFO] [stderr] | [INFO] [stderr] 82 | return *x as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x as i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:85:17 [INFO] [stderr] | [INFO] [stderr] 85 | return *x as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*x as i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:99:17 [INFO] [stderr] | [INFO] [stderr] 99 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:119:17 [INFO] [stderr] | [INFO] [stderr] 119 | return *x; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:129:17 [INFO] [stderr] | [INFO] [stderr] 129 | return class.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `class.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:139:17 [INFO] [stderr] | [INFO] [stderr] 139 | return obj.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `obj.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:152:17 [INFO] [stderr] | [INFO] [stderr] 152 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:159:17 [INFO] [stderr] | [INFO] [stderr] 159 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:162:17 [INFO] [stderr] | [INFO] [stderr] 162 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:169:17 [INFO] [stderr] | [INFO] [stderr] 169 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:172:17 [INFO] [stderr] | [INFO] [stderr] 172 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:182:17 [INFO] [stderr] | [INFO] [stderr] 182 | return obj.is_none(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `obj.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:185:17 [INFO] [stderr] | [INFO] [stderr] 185 | return array.is_null; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `array.is_null` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:188:17 [INFO] [stderr] | [INFO] [stderr] 188 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:198:17 [INFO] [stderr] | [INFO] [stderr] 198 | return array.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `array.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:208:17 [INFO] [stderr] | [INFO] [stderr] 208 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:211:17 [INFO] [stderr] | [INFO] [stderr] 211 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:214:17 [INFO] [stderr] | [INFO] [stderr] 214 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:219:9 [INFO] [stderr] | [INFO] [stderr] 219 | / return match self { [INFO] [stderr] 220 | | &Variable::Boolean(_x) => true, [INFO] [stderr] 221 | | &Variable::Byte(_x) => true, [INFO] [stderr] 222 | | &Variable::Short(_x) => true, [INFO] [stderr] ... | [INFO] [stderr] 225 | | _ => false, [INFO] [stderr] 226 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 219 | match self { [INFO] [stderr] 220 | &Variable::Boolean(_x) => true, [INFO] [stderr] 221 | &Variable::Byte(_x) => true, [INFO] [stderr] 222 | &Variable::Short(_x) => true, [INFO] [stderr] 223 | &Variable::Char(_x) => true, [INFO] [stderr] 224 | &Variable::Int(_x) => true, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:229:9 [INFO] [stderr] | [INFO] [stderr] 229 | / return match self { [INFO] [stderr] 230 | | &Variable::Reference(ref _class, ref _x) => false, [INFO] [stderr] 231 | | &Variable::ArrayReference(ref _x) => false, [INFO] [stderr] 232 | | &Variable::InterfaceReference(ref _x) => false, [INFO] [stderr] 233 | | &Variable::UnresolvedReference(ref _x) => false, [INFO] [stderr] 234 | | _ => true, [INFO] [stderr] 235 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 229 | match self { [INFO] [stderr] 230 | &Variable::Reference(ref _class, ref _x) => false, [INFO] [stderr] 231 | &Variable::ArrayReference(ref _x) => false, [INFO] [stderr] 232 | &Variable::InterfaceReference(ref _x) => false, [INFO] [stderr] 233 | &Variable::UnresolvedReference(ref _x) => false, [INFO] [stderr] 234 | _ => true, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:239:9 [INFO] [stderr] | [INFO] [stderr] 239 | / return match self { [INFO] [stderr] 240 | | &Variable::UnresolvedReference(ref _x) => true, [INFO] [stderr] 241 | | _ => false, [INFO] [stderr] 242 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 239 | match self { [INFO] [stderr] 240 | &Variable::UnresolvedReference(ref _x) => true, [INFO] [stderr] 241 | _ => false, [INFO] [stderr] 242 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:246:9 [INFO] [stderr] | [INFO] [stderr] 246 | / return match self { [INFO] [stderr] 247 | | &Variable::UnresolvedReference(ref type_name) => type_name.clone(), [INFO] [stderr] 248 | | _ => panic!("Cannot get unresolved type name of {}", self), [INFO] [stderr] 249 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 246 | match self { [INFO] [stderr] 247 | &Variable::UnresolvedReference(ref type_name) => type_name.clone(), [INFO] [stderr] 248 | _ => panic!("Cannot get unresolved type name of {}", self), [INFO] [stderr] 249 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:257:21 [INFO] [stderr] | [INFO] [stderr] 257 | return Err(RunnerError::Exception(exception)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::Exception(exception))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:259:21 [INFO] [stderr] | [INFO] [stderr] 259 | return Ok(obj.as_ref().unwrap().code()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(obj.as_ref().unwrap().code())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:265:21 [INFO] [stderr] | [INFO] [stderr] 265 | return Err(RunnerError::Exception(exception)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RunnerError::Exception(exception))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:267:21 [INFO] [stderr] | [INFO] [stderr] 267 | return Ok(obj.code); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(obj.code)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:303:9 [INFO] [stderr] | [INFO] [stderr] 303 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:307:9 [INFO] [stderr] | [INFO] [stderr] 307 | / return match self { [INFO] [stderr] 308 | | &Variable::Reference(ref class, ref obj) => [INFO] [stderr] 309 | | if obj.is_some() { [INFO] [stderr] 310 | | format!("Reference of type {} with content {}", class.name, obj.as_ref().unwrap()) [INFO] [stderr] ... | [INFO] [stderr] 324 | | &Variable::UnresolvedReference(ref name) => format!("UnresolvedReference {}", name), [INFO] [stderr] 325 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 307 | match self { [INFO] [stderr] 308 | &Variable::Reference(ref class, ref obj) => [INFO] [stderr] 309 | if obj.is_some() { [INFO] [stderr] 310 | format!("Reference of type {} with content {}", class.name, obj.as_ref().unwrap()) [INFO] [stderr] 311 | } else { [INFO] [stderr] 312 | format!("", class.name) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/reader/types/variable.rs:333:25 [INFO] [stderr] | [INFO] [stderr] 333 | return string_to_string(obj.as_ref().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `string_to_string(obj.as_ref().unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | return class_result; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `class_result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | return reader::runner::get_runtime(class_paths, get_rt_jar(), true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `reader::runner::get_runtime(class_paths, get_rt_jar(), true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | return reader::runner::get_runtime(class_paths, get_rt_jar(), false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `reader::runner::get_runtime(class_paths, get_rt_jar(), false)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | return reader::runner::run_method(runtime, &class_result, method, arguments, String::from(return_descriptor)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `reader::runner::run_method(runtime, &class_result, method, arguments, String::from(return_descriptor)).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_PRIVATE` [INFO] [stderr] --> src/reader/class_reader.rs:91:1 [INFO] [stderr] | [INFO] [stderr] 91 | pub const ACC_PRIVATE: u16 = 0x0002; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_PROTECTED` [INFO] [stderr] --> src/reader/class_reader.rs:92:1 [INFO] [stderr] | [INFO] [stderr] 92 | pub const ACC_PROTECTED: u16 = 0x0004; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_FINAL` [INFO] [stderr] --> src/reader/class_reader.rs:94:1 [INFO] [stderr] | [INFO] [stderr] 94 | pub const ACC_FINAL: u16 = 0x0010; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_VOLATILE` [INFO] [stderr] --> src/reader/class_reader.rs:95:1 [INFO] [stderr] | [INFO] [stderr] 95 | pub const ACC_VOLATILE: u16 = 0x0040; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_TRANSIENT` [INFO] [stderr] --> src/reader/class_reader.rs:96:1 [INFO] [stderr] | [INFO] [stderr] 96 | pub const ACC_TRANSIENT: u16 = 0x0080; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_ABSTRACT` [INFO] [stderr] --> src/reader/class_reader.rs:98:1 [INFO] [stderr] | [INFO] [stderr] 98 | pub const ACC_ABSTRACT: u16 = 0x400; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_SYNTHETIC` [INFO] [stderr] --> src/reader/class_reader.rs:99:1 [INFO] [stderr] | [INFO] [stderr] 99 | pub const ACC_SYNTHETIC: u16 = 0x1000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_ENUM` [INFO] [stderr] --> src/reader/class_reader.rs:100:1 [INFO] [stderr] | [INFO] [stderr] 100 | pub const ACC_ENUM: u16 = 0x4000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `run` [INFO] [stderr] --> src/reader/runner.rs:410:1 [INFO] [stderr] | [INFO] [stderr] 410 | pub fn run(class_paths: &Vec, jars: Vec>, class: &ClassResult) -> Result<(), RunnerError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `register_array_object` [INFO] [stderr] --> src/reader/jvm/gc.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn register_array_object(_runtime: &mut Runtime, _obj: &Rc) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `reader::class_reader::Code` [INFO] [stderr] --> src/reader/class_reader.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | / pub fn new() -> Code { [INFO] [stderr] 77 | | Code { max_locals: 0, max_stack: 0, code: Vec::new(), exceptions: Vec::new(), attributes: Vec::new() } [INFO] [stderr] 78 | | } [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] 67 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `reader::class_reader::FieldItem` [INFO] [stderr] --> src/reader/class_reader.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | / pub fn new() -> FieldItem { [INFO] [stderr] 112 | | FieldItem { access_flags: 0, name_index: 0, descriptor_index: 0, attributes: Vec::new() } [INFO] [stderr] 113 | | } [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] 103 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `reader::class_reader::ClassResult` [INFO] [stderr] --> src/reader/class_reader.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | / pub fn new() -> ClassResult { [INFO] [stderr] 132 | | ClassResult { [INFO] [stderr] 133 | | constant_pool: ConstantPool::new(), [INFO] [stderr] 134 | | access_flags: 0, [INFO] [stderr] ... | [INFO] [stderr] 143 | | } [INFO] [stderr] 144 | | } [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] 130 | impl Default for reader::class_reader::ClassResult { [INFO] [stderr] 131 | fn default() -> Self { [INFO] [stderr] 132 | Self::new() [INFO] [stderr] 133 | } [INFO] [stderr] 134 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/class_reader.rs:176:25 [INFO] [stderr] | [INFO] [stderr] 176 | .nth(0).ok_or(ClassReadError::Parse2(String::from("Class method has no code")))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| ClassReadError::Parse2(String::from("Class method has no code")))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/class_reader.rs:172:17 [INFO] [stderr] | [INFO] [stderr] 172 | / match x { [INFO] [stderr] 173 | | &AttributeItem::Code(ref c) => Some(c), [INFO] [stderr] 174 | | _ => None [INFO] [stderr] 175 | | }) [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 172 | match *x { [INFO] [stderr] 173 | AttributeItem::Code(ref c) => Some(c), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:226:30 [INFO] [stderr] | [INFO] [stderr] 226 | try!(reader.take(code_length as u64).read_to_end(&mut code)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(code_length)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:255:30 [INFO] [stderr] | [INFO] [stderr] 255 | try!(reader.take(length as u64).read_to_end(&mut info)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(length)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:266:30 [INFO] [stderr] | [INFO] [stderr] 266 | try!(reader.take(length as u64).read_to_end(&mut info)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(length)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/class_reader.rs:288:26 [INFO] [stderr] | [INFO] [stderr] 288 | fn string_from_utf8(buf: &Vec) -> Result { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:293:17 [INFO] [stderr] | [INFO] [stderr] 293 | let x = *maybe_x.unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*maybe_x.unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:297:21 [INFO] [stderr] | [INFO] [stderr] 297 | let y = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/class_reader.rs:298:72 [INFO] [stderr] | [INFO] [stderr] 298 | ret.push(try!(char::from_u32((y & 0x3F) | (x & 0x1F) << 6).ok_or(ClassReadError::UTF8Error(format!("Invalid 2 byte code {} {}", x, y))))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| ClassReadError::UTF8Error(format!("Invalid 2 byte code {} {}", x, y)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:300:21 [INFO] [stderr] | [INFO] [stderr] 300 | let y = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:301:21 [INFO] [stderr] | [INFO] [stderr] 301 | let z = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/class_reader.rs:302:90 [INFO] [stderr] | [INFO] [stderr] 302 | ret.push(try!(char::from_u32((z & 0x3F) | (y & 0x3F) << 6 | (x & 0xF) << 12).ok_or(ClassReadError::UTF8Error(format!("Invalid 3 byte code {} {} {}", x, y, z))))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| ClassReadError::UTF8Error(format!("Invalid 3 byte code {} {} {}", x, y, z)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:304:21 [INFO] [stderr] | [INFO] [stderr] 304 | let v = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:305:21 [INFO] [stderr] | [INFO] [stderr] 305 | let w = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:306:25 [INFO] [stderr] | [INFO] [stderr] 306 | let head2 = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:310:21 [INFO] [stderr] | [INFO] [stderr] 310 | let y = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:311:21 [INFO] [stderr] | [INFO] [stderr] 311 | let z = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/class_reader.rs:313:18 [INFO] [stderr] | [INFO] [stderr] 313 | .ok_or(ClassReadError::UTF8Error(format!("Invalid 2x3B code {} {} {} {} {} {}", x, v, w, head2, y, z))))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| ClassReadError::UTF8Error(format!("Invalid 2x3B code {} {} {} {} {} {}", x, v, w, head2, y, z)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:330:30 [INFO] [stderr] | [INFO] [stderr] 330 | try!(reader.take(length as u64).read_to_end(&mut buf)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(length)` [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: transmute from a `u32` to a `f32` [INFO] [stderr] --> src/reader/class_reader.rs:343:40 [INFO] [stderr] | [INFO] [stderr] 343 | let value : f32 = unsafe { transmute(try!(reader.read_u32::())) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_int_to_float)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_int_to_float [INFO] [stderr] help: consider using [INFO] [stderr] | [INFO] [stderr] 343 | let value : f32 = unsafe { f32::from_bits(match $ expr { [INFO] [stderr] 344 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 345 | :: Err ( err ) => { [INFO] [stderr] 346 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 347 | $ crate :: convert :: From :: from ( err ) ) } }) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a `u64` to a `f64` [INFO] [stderr] --> src/reader/class_reader.rs:354:40 [INFO] [stderr] | [INFO] [stderr] 354 | let value : f64 = unsafe { transmute(try!(reader.read_u64::())) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_int_to_float [INFO] [stderr] help: consider using [INFO] [stderr] | [INFO] [stderr] 354 | let value : f64 = unsafe { f64::from_bits(match $ expr { [INFO] [stderr] 355 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 356 | :: Err ( err ) => { [INFO] [stderr] 357 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 358 | $ crate :: convert :: From :: from ( err ) ) } }) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:430:19 [INFO] [stderr] | [INFO] [stderr] 430 | let version = (major as f32) + ((minor as f32) / (base(minor) as f32)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f32::from(major)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:430:37 [INFO] [stderr] | [INFO] [stderr] 430 | let version = (major as f32) + ((minor as f32) / (base(minor) as f32)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f32::from(minor)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:430:54 [INFO] [stderr] | [INFO] [stderr] 430 | let version = (major as f32) + ((minor as f32) / (base(minor) as f32)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(base(minor))` [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/reader/runner.rs:77:17 [INFO] [stderr] | [INFO] [stderr] 77 | / match &err { [INFO] [stderr] 78 | | &RunnerError::Exception(ref exception) => { [INFO] [stderr] 79 | | runnerPrint!(runtime, true, 3, "Exception {}", exception); [INFO] [stderr] 80 | | loop { [INFO] [stderr] ... | [INFO] [stderr] 117 | | _ => {} [INFO] [stderr] 118 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 77 | match err { [INFO] [stderr] 78 | RunnerError::Exception(ref exception) => { [INFO] [stderr] 79 | runnerPrint!(runtime, true, 3, "Exception {}", exception); [INFO] [stderr] 80 | loop { [INFO] [stderr] 81 | for e in &runtime.current_frame.code.exceptions.clone() { [INFO] [stderr] 82 | if current_position >= e.start_pc as u64 && current_position <= e.end_pc as u64 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/runner.rs:82:56 [INFO] [stderr] | [INFO] [stderr] 82 | if current_position >= e.start_pc as u64 && current_position <= e.end_pc as u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(e.start_pc)` [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 u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/runner.rs:82:97 [INFO] [stderr] | [INFO] [stderr] 82 | if current_position >= e.start_pc as u64 && current_position <= e.end_pc as u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(e.end_pc)` [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 u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/runner.rs:94:72 [INFO] [stderr] | [INFO] [stderr] 94 | runtime.current_frame.return_pos = e.handler_pc as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(e.handler_pc)` [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: equality checks against true are unnecessary [INFO] [stderr] --> src/reader/runner.rs:99:32 [INFO] [stderr] | [INFO] [stderr] 99 | if caught == true || runtime.previous_frames.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `caught` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/reader/runner.rs:99:50 [INFO] [stderr] | [INFO] [stderr] 99 | if caught == true || runtime.previous_frames.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `runtime.previous_frames.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/reader/runner.rs:120:20 [INFO] [stderr] | [INFO] [stderr] 120 | if caught == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!caught` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/reader/runner.rs:198:44 [INFO] [stderr] | [INFO] [stderr] 198 | return Err(RunnerError::ClassNotLoaded(String::from(name))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/reader/runner.rs:203:27 [INFO] [stderr] | [INFO] [stderr] 203 | let maybe_class = runtime.classes.get(name).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `runtime.classes.get(name).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader/runner.rs:267:17 [INFO] [stderr] | [INFO] [stderr] 267 | member_count = member_count + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `member_count += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/reader/runner.rs:279:9 [INFO] [stderr] | [INFO] [stderr] 279 | builtin_class_fields.get(class.name.as_str()).map(|extra_fields| [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 280 | || for field in extra_fields { [INFO] [stderr] 281 | || class.set_member_offset(Rc::new(String::from(*field)), member_count); [INFO] [stderr] 282 | || member_count = member_count + 1; [INFO] [stderr] 283 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(extra_fields) = builtin_class_fields.get(class.name.as_str()) { ... }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader/runner.rs:282:17 [INFO] [stderr] | [INFO] [stderr] 282 | member_count = member_count + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `member_count += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader/runner.rs:303:9 [INFO] [stderr] | [INFO] [stderr] 303 | array_depth = array_depth + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `array_depth += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/reader/runner.rs:334:34 [INFO] [stderr] | [INFO] [stderr] 334 | class = Some(runtime.classes.get(type_string.as_str()).unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&runtime.classes[type_string.as_str()]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/runner.rs:370:41 [INFO] [stderr] | [INFO] [stderr] 370 | while {type_char = try!(iter.next().ok_or(RunnerError::ClassInvalid2(format!("Failed to parse {}", descriptor)))); type_char != ')'} { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| RunnerError::ClassInvalid2(format!("Failed to parse {}", descriptor)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/runner.rs:374:42 [INFO] [stderr] | [INFO] [stderr] 374 | type_char = try!(iter.next().ok_or(RunnerError::ClassInvalid2(format!("Failed to parse {}", descriptor)))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| RunnerError::ClassInvalid2(format!("Failed to parse {}", descriptor)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/runner.rs:399:94 [INFO] [stderr] | [INFO] [stderr] 399 | fn execute_method(runtime: &mut Runtime, class: &str, method: &str, descriptor: &str, _args: &Vec, ret: bool) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/runner.rs:410:25 [INFO] [stderr] | [INFO] [stderr] 410 | pub fn run(class_paths: &Vec, jars: Vec>, class: &ClassResult) -> Result<(), RunnerError> { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 410 | pub fn run(class_paths: &[String], jars: Vec>, class: &ClassResult) -> Result<(), RunnerError> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] help: change `class_paths.clone()` to [INFO] [stderr] | [INFO] [stderr] 412 | let mut runtime = Runtime::new(class_paths.to_owned(), jars); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/runner.rs:425:33 [INFO] [stderr] | [INFO] [stderr] 425 | pub fn get_runtime(class_paths: &Vec, jars: Vec>, initialise: bool) -> Runtime { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 425 | pub fn get_runtime(class_paths: &[String], jars: Vec>, initialise: bool) -> Runtime { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] help: change `class_paths.clone()` to [INFO] [stderr] | [INFO] [stderr] 426 | let mut runtime = Runtime::new(class_paths.to_owned(), jars); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/runner.rs:436:95 [INFO] [stderr] | [INFO] [stderr] 436 | pub fn run_method(runtime: &mut Runtime, class_result: &ClassResult, method: &str, arguments: &Vec, return_descriptor: String) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/reader/util.rs:20:15 [INFO] [stderr] | [INFO] [stderr] 20 | return Ok(runtime.string_interns.get(&string).unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&runtime.string_interns[&string]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/reader/util.rs:56:38 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn type_name_to_descriptor(name: &String) -> String { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 56 | pub fn type_name_to_descriptor(name: &str) -> String { [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `name.as_str()` to [INFO] [stderr] | [INFO] [stderr] 57 | return String::from(match name { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader/util.rs:95:9 [INFO] [stderr] | [INFO] [stderr] 95 | array_depth = array_depth + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `array_depth += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader/util.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | array_depth = array_depth - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `array_depth -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/util.rs:137:41 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn generate_method_descriptor(args: &Vec, return_descriptor: String, is_static: bool) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/builtins/java_lang.rs:30:71 [INFO] [stderr] | [INFO] [stderr] 30 | try!(put_field(runtime, &var.to_ref(), "modifiers", Variable::Int(access as i32))); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(access)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/java_lang.rs:45:102 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 84 [INFO] [stderr] --> src/reader/builtins/java_lang.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | / pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] 46 | | match (class_name.as_str(), method_name.as_str(), descriptor.as_str()) { [INFO] [stderr] 47 | | ("java/lang/Class", "registerNatives", "()V") => {} [INFO] [stderr] 48 | | ("java/lang/Class", "isArray", "()Z") => { [INFO] [stderr] ... | [INFO] [stderr] 317 | | return Ok(true); [INFO] [stderr] 318 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/reader/builtins/java_lang.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | let ref class_loader = args[2]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^----------- help: try: `let class_loader = &args[2];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/reader/builtins/java_lang.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | let ref caller_class = args[3]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^----------- help: try: `let caller_class = &args[3];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_PRIVATE` [INFO] [stderr] --> src/reader/class_reader.rs:91:1 [INFO] [stderr] | [INFO] [stderr] 91 | pub const ACC_PRIVATE: u16 = 0x0002; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_PROTECTED` [INFO] [stderr] --> src/reader/class_reader.rs:92:1 [INFO] [stderr] | [INFO] [stderr] 92 | pub const ACC_PROTECTED: u16 = 0x0004; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_FINAL` [INFO] [stderr] --> src/reader/class_reader.rs:94:1 [INFO] [stderr] | [INFO] [stderr] 94 | pub const ACC_FINAL: u16 = 0x0010; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_VOLATILE` [INFO] [stderr] --> src/reader/class_reader.rs:95:1 [INFO] [stderr] | [INFO] [stderr] 95 | pub const ACC_VOLATILE: u16 = 0x0040; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_TRANSIENT` [INFO] [stderr] --> src/reader/class_reader.rs:96:1 [INFO] [stderr] | [INFO] [stderr] 96 | pub const ACC_TRANSIENT: u16 = 0x0080; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_ABSTRACT` [INFO] [stderr] --> src/reader/class_reader.rs:98:1 [INFO] [stderr] | [INFO] [stderr] 98 | pub const ACC_ABSTRACT: u16 = 0x400; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_SYNTHETIC` [INFO] [stderr] --> src/reader/class_reader.rs:99:1 [INFO] [stderr] | [INFO] [stderr] 99 | pub const ACC_SYNTHETIC: u16 = 0x1000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ACC_ENUM` [INFO] [stderr] --> src/reader/class_reader.rs:100:1 [INFO] [stderr] | [INFO] [stderr] 100 | pub const ACC_ENUM: u16 = 0x4000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `run` [INFO] [stderr] --> src/reader/runner.rs:410:1 [INFO] [stderr] | [INFO] [stderr] 410 | pub fn run(class_paths: &Vec, jars: Vec>, class: &ClassResult) -> Result<(), RunnerError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `register_array_object` [INFO] [stderr] --> src/reader/jvm/gc.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn register_array_object(_runtime: &mut Runtime, _obj: &Rc) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a `i32` to a `f32` [INFO] [stderr] --> src/reader/builtins/java_lang.rs:237:33 [INFO] [stderr] | [INFO] [stderr] 237 | let float = unsafe {std::mem::transmute::(int)}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f32::from_bits(int as u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_int_to_float [INFO] [stderr] [INFO] [stderr] warning: transmute from a `i64` to a `f64` [INFO] [stderr] --> src/reader/builtins/java_lang.rs:249:34 [INFO] [stderr] | [INFO] [stderr] 249 | let double = unsafe {std::mem::transmute::(long)}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f64::from_bits(long as u64)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_int_to_float [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/reader/builtins/java_lang.rs:266:17 [INFO] [stderr] | [INFO] [stderr] 266 | let ref descriptor = args[0].get_descriptor(); [INFO] [stderr] | ----^^^^^^^^^^^^^^---------------------------- help: try: `let descriptor = &args[0].get_descriptor();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `reader::class_reader::Code` [INFO] [stderr] --> src/reader/class_reader.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | / pub fn new() -> Code { [INFO] [stderr] 77 | | Code { max_locals: 0, max_stack: 0, code: Vec::new(), exceptions: Vec::new(), attributes: Vec::new() } [INFO] [stderr] 78 | | } [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] 67 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/java_other.rs:6:102 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 6 | pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &[Variable], runtime: &mut Runtime) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] help: change `args.clone()` to [INFO] [stderr] | [INFO] [stderr] 38| try!(invoke_nested(runtime, action.unwrap().type_ref().clone(), args.to_owned(), "run", "()Ljava/lang/Object;", false)); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: change `args.clone()` to [INFO] [stderr] | [INFO] [stderr] 43| try!(invoke_nested(runtime, action.unwrap().type_ref().clone(), args.to_owned(), "run", "()Ljava/lang/Object;", false)); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `reader::class_reader::FieldItem` [INFO] [stderr] --> src/reader/class_reader.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | / pub fn new() -> FieldItem { [INFO] [stderr] 112 | | FieldItem { access_flags: 0, name_index: 0, descriptor_index: 0, attributes: Vec::new() } [INFO] [stderr] 113 | | } [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] 103 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/sun.rs:7:52 [INFO] [stderr] | [INFO] [stderr] 7 | fn get_at_index(runtime: &mut Runtime, args: &Vec, desc: &str, validator: F)-> Result<(), RunnerError> [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `reader::class_reader::ClassResult` [INFO] [stderr] --> src/reader/class_reader.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | / pub fn new() -> ClassResult { [INFO] [stderr] 132 | | ClassResult { [INFO] [stderr] 133 | | constant_pool: ConstantPool::new(), [INFO] [stderr] 134 | | access_flags: 0, [INFO] [stderr] ... | [INFO] [stderr] 143 | | } [INFO] [stderr] 144 | | } [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] 130 | impl Default for reader::class_reader::ClassResult { [INFO] [stderr] 131 | fn default() -> Self { [INFO] [stderr] 132 | Self::new() [INFO] [stderr] 133 | } [INFO] [stderr] 134 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/sun.rs:19:56 [INFO] [stderr] | [INFO] [stderr] 19 | fn compare_and_swap(runtime: &mut Runtime, args: &Vec, desc: &str, extractor: F, second_offset: usize) -> Result<(), RunnerError> [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/reader/builtins/sun.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | / let ret; [INFO] [stderr] 31 | | if current == expected { [INFO] [stderr] 32 | | runnerPrint!(runtime, true, 3, "BUILTIN: {} swapped", desc); [INFO] [stderr] 33 | | obj.as_ref().unwrap().put_member_at_offset(offset as usize, swap); [INFO] [stderr] ... | [INFO] [stderr] 36 | | ret = false; [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let ret = if current == expected { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/sun.rs:53:102 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 32 [INFO] [stderr] --> src/reader/builtins/sun.rs:53:1 [INFO] [stderr] | [INFO] [stderr] 53 | / pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] 54 | | match (class_name.as_str(), method_name.as_str(), descriptor.as_str()) { [INFO] [stderr] 55 | | ("sun/misc/Signal", "findSignal", "(Ljava/lang/String;)I") => { [INFO] [stderr] 56 | | let signal = args[0].clone().extract_string(); [INFO] [stderr] ... | [INFO] [stderr] 135 | | return Ok(true); [INFO] [stderr] 136 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/class_reader.rs:176:25 [INFO] [stderr] | [INFO] [stderr] 176 | .nth(0).ok_or(ClassReadError::Parse2(String::from("Class method has no code")))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| ClassReadError::Parse2(String::from("Class method has no code")))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/class_reader.rs:172:17 [INFO] [stderr] | [INFO] [stderr] 172 | / match x { [INFO] [stderr] 173 | | &AttributeItem::Code(ref c) => Some(c), [INFO] [stderr] 174 | | _ => None [INFO] [stderr] 175 | | }) [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 172 | match *x { [INFO] [stderr] 173 | AttributeItem::Code(ref c) => Some(c), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:226:30 [INFO] [stderr] | [INFO] [stderr] 226 | try!(reader.take(code_length as u64).read_to_end(&mut code)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(code_length)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:255:30 [INFO] [stderr] | [INFO] [stderr] 255 | try!(reader.take(length as u64).read_to_end(&mut info)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(length)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/builtins/sun.rs:74:50 [INFO] [stderr] | [INFO] [stderr] 74 | runtime.push_on_stack(Variable::Long(slot as i64)); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(slot)` [INFO] [stderr] | [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:266:30 [INFO] [stderr] | [INFO] [stderr] 266 | try!(reader.take(length as u64).read_to_end(&mut info)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(length)` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*mut i64`) [INFO] [stderr] --> src/reader/builtins/sun.rs:93:23 [INFO] [stderr] | [INFO] [stderr] 93 | unsafe { *(ptr as *mut i64) = size; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/class_reader.rs:288:26 [INFO] [stderr] | [INFO] [stderr] 288 | fn string_from_utf8(buf: &Vec) -> Result { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:293:17 [INFO] [stderr] | [INFO] [stderr] 293 | let x = *maybe_x.unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*maybe_x.unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:297:21 [INFO] [stderr] | [INFO] [stderr] 297 | let y = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/mod.rs:8:102 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/class_reader.rs:298:72 [INFO] [stderr] | [INFO] [stderr] 298 | ret.push(try!(char::from_u32((y & 0x3F) | (x & 0x1F) << 6).ok_or(ClassReadError::UTF8Error(format!("Invalid 2 byte code {} {}", x, y))))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| ClassReadError::UTF8Error(format!("Invalid 2 byte code {} {}", x, y)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:300:21 [INFO] [stderr] | [INFO] [stderr] 300 | let y = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:301:21 [INFO] [stderr] | [INFO] [stderr] 301 | let z = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/class_reader.rs:302:90 [INFO] [stderr] | [INFO] [stderr] 302 | ret.push(try!(char::from_u32((z & 0x3F) | (y & 0x3F) << 6 | (x & 0xF) << 12).ok_or(ClassReadError::UTF8Error(format!("Invalid 3 byte code {} {} {}", x, y, z))))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| ClassReadError::UTF8Error(format!("Invalid 3 byte code {} {} {}", x, y, z)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:304:21 [INFO] [stderr] | [INFO] [stderr] 304 | let v = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:305:21 [INFO] [stderr] | [INFO] [stderr] 305 | let w = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:306:25 [INFO] [stderr] | [INFO] [stderr] 306 | let head2 = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:310:21 [INFO] [stderr] | [INFO] [stderr] 310 | let y = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:311:21 [INFO] [stderr] | [INFO] [stderr] 311 | let z = *iter.next().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(*iter.next().unwrap())` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/class_reader.rs:313:18 [INFO] [stderr] | [INFO] [stderr] 313 | .ok_or(ClassReadError::UTF8Error(format!("Invalid 2x3B code {} {} {} {} {} {}", x, v, w, head2, y, z))))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| ClassReadError::UTF8Error(format!("Invalid 2x3B code {} {} {} {} {} {}", x, v, w, head2, y, z)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/reader/jvm/class_objects.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | / let component_type; [INFO] [stderr] 64 | | if array_obj.element_type_ref.is_some() { [INFO] [stderr] 65 | | component_type = try!(get_class_object_from_descriptor(runtime, array_obj.element_type_str.clone().as_str())); [INFO] [stderr] 66 | | } else { [INFO] [stderr] 67 | | component_type = try!(get_primitive_class_object(runtime, array_obj.element_type_str.clone())); [INFO] [stderr] 68 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 63 | let component_type = if array_obj.element_type_ref.is_some() { match $ expr { [INFO] [stderr] 64 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 65 | :: Err ( err ) => { [INFO] [stderr] 66 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 67 | $ crate :: convert :: From :: from ( err ) ) } } } else { match $ expr { [INFO] [stderr] 68 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:330:30 [INFO] [stderr] | [INFO] [stderr] 330 | try!(reader.take(length as u64).read_to_end(&mut buf)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(length)` [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: transmute from a `u32` to a `f32` [INFO] [stderr] --> src/reader/class_reader.rs:343:40 [INFO] [stderr] | [INFO] [stderr] 343 | let value : f32 = unsafe { transmute(try!(reader.read_u32::())) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_int_to_float)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_int_to_float [INFO] [stderr] help: consider using [INFO] [stderr] | [INFO] [stderr] 343 | let value : f32 = unsafe { f32::from_bits(match $ expr { [INFO] [stderr] 344 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 345 | :: Err ( err ) => { [INFO] [stderr] 346 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 347 | $ crate :: convert :: From :: from ( err ) ) } }) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a `u64` to a `f64` [INFO] [stderr] --> src/reader/class_reader.rs:354:40 [INFO] [stderr] | [INFO] [stderr] 354 | let value : f64 = unsafe { transmute(try!(reader.read_u64::())) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_int_to_float [INFO] [stderr] help: consider using [INFO] [stderr] | [INFO] [stderr] 354 | let value : f64 = unsafe { f64::from_bits(match $ expr { [INFO] [stderr] 355 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 356 | :: Err ( err ) => { [INFO] [stderr] 357 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 358 | $ crate :: convert :: From :: from ( err ) ) } }) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/reader/jvm/construction.rs:36:32 [INFO] [stderr] | [INFO] [stderr] 36 | elements: RefCell::new(data.unwrap_or(Vec::new())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `data.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/reader/jvm/construction.rs:54:32 [INFO] [stderr] | [INFO] [stderr] 54 | elements: RefCell::new(data.unwrap_or(Vec::new())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `data.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:430:19 [INFO] [stderr] | [INFO] [stderr] 430 | let version = (major as f32) + ((minor as f32) / (base(minor) as f32)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f32::from(major)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:430:37 [INFO] [stderr] | [INFO] [stderr] 430 | let version = (major as f32) + ((minor as f32) / (base(minor) as f32)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f32::from(minor)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/reader/class_reader.rs:430:54 [INFO] [stderr] | [INFO] [stderr] 430 | let version = (major as f32) + ((minor as f32) / (base(minor) as f32)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(base(minor))` [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/reader/runner.rs:77:17 [INFO] [stderr] | [INFO] [stderr] 77 | / match &err { [INFO] [stderr] 78 | | &RunnerError::Exception(ref exception) => { [INFO] [stderr] 79 | | runnerPrint!(runtime, true, 3, "Exception {}", exception); [INFO] [stderr] 80 | | loop { [INFO] [stderr] ... | [INFO] [stderr] 117 | | _ => {} [INFO] [stderr] 118 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 77 | match err { [INFO] [stderr] 78 | RunnerError::Exception(ref exception) => { [INFO] [stderr] 79 | runnerPrint!(runtime, true, 3, "Exception {}", exception); [INFO] [stderr] 80 | loop { [INFO] [stderr] 81 | for e in &runtime.current_frame.code.exceptions.clone() { [INFO] [stderr] 82 | if current_position >= e.start_pc as u64 && current_position <= e.end_pc as u64 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/runner.rs:82:56 [INFO] [stderr] | [INFO] [stderr] 82 | if current_position >= e.start_pc as u64 && current_position <= e.end_pc as u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(e.start_pc)` [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 u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/runner.rs:82:97 [INFO] [stderr] | [INFO] [stderr] 82 | if current_position >= e.start_pc as u64 && current_position <= e.end_pc as u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(e.end_pc)` [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 u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/runner.rs:94:72 [INFO] [stderr] | [INFO] [stderr] 94 | runtime.current_frame.return_pos = e.handler_pc as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(e.handler_pc)` [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: equality checks against true are unnecessary [INFO] [stderr] --> src/reader/runner.rs:99:32 [INFO] [stderr] | [INFO] [stderr] 99 | if caught == true || runtime.previous_frames.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `caught` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/reader/runner.rs:99:50 [INFO] [stderr] | [INFO] [stderr] 99 | if caught == true || runtime.previous_frames.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `runtime.previous_frames.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/reader/runner.rs:120:20 [INFO] [stderr] | [INFO] [stderr] 120 | if caught == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!caught` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/reader/runner.rs:198:44 [INFO] [stderr] | [INFO] [stderr] 198 | return Err(RunnerError::ClassNotLoaded(String::from(name))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/reader/runner.rs:203:27 [INFO] [stderr] | [INFO] [stderr] 203 | let maybe_class = runtime.classes.get(name).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `runtime.classes.get(name).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader/runner.rs:267:17 [INFO] [stderr] | [INFO] [stderr] 267 | member_count = member_count + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `member_count += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/reader/runner.rs:279:9 [INFO] [stderr] | [INFO] [stderr] 279 | builtin_class_fields.get(class.name.as_str()).map(|extra_fields| [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 280 | || for field in extra_fields { [INFO] [stderr] 281 | || class.set_member_offset(Rc::new(String::from(*field)), member_count); [INFO] [stderr] 282 | || member_count = member_count + 1; [INFO] [stderr] 283 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(extra_fields) = builtin_class_fields.get(class.name.as_str()) { ... }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader/runner.rs:282:17 [INFO] [stderr] | [INFO] [stderr] 282 | member_count = member_count + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `member_count += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/reader/jvm/interpreter.rs:141:19 [INFO] [stderr] | [INFO] [stderr] 141 | name: String::from(class.name.clone() + method_name), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `class.name.clone() + method_name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader/runner.rs:303:9 [INFO] [stderr] | [INFO] [stderr] 303 | array_depth = array_depth + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `array_depth += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/reader/runner.rs:334:34 [INFO] [stderr] | [INFO] [stderr] 334 | class = Some(runtime.classes.get(type_string.as_str()).unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&runtime.classes[type_string.as_str()]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/runner.rs:370:41 [INFO] [stderr] | [INFO] [stderr] 370 | while {type_char = try!(iter.next().ok_or(RunnerError::ClassInvalid2(format!("Failed to parse {}", descriptor)))); type_char != ')'} { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| RunnerError::ClassInvalid2(format!("Failed to parse {}", descriptor)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/reader/jvm/interpreter.rs:169:15 [INFO] [stderr] | [INFO] [stderr] 169 | } else if pop1 == pop2 { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider comparing them within some error: `(pop1 - pop2).abs() < error` [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] --> src/reader/jvm/interpreter.rs:169:15 [INFO] [stderr] | [INFO] [stderr] 169 | } else if pop1 == pop2 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/reader/runner.rs:374:42 [INFO] [stderr] | [INFO] [stderr] 374 | type_char = try!(iter.next().ok_or(RunnerError::ClassInvalid2(format!("Failed to parse {}", descriptor)))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| RunnerError::ClassInvalid2(format!("Failed to parse {}", descriptor)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:186:55 [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] | [INFO] [stderr] 186 | let new_position = (current_position as i64 + branch_offset as i64) as u64; [INFO] [stderr] --> src/reader/runner.rs:399:94 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(branch_offset)` [INFO] [stderr] | [INFO] [stderr] 399 | fn execute_method(runtime: &mut Runtime, class: &str, method: &str, descriptor: &str, _args: &Vec, ret: bool) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [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] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/runner.rs:410:25 [INFO] [stderr] | [INFO] [stderr] 410 | pub fn run(class_paths: &Vec, jars: Vec>, class: &ClassResult) -> Result<(), RunnerError> { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 410 | pub fn run(class_paths: &[String], jars: Vec>, class: &ClassResult) -> Result<(), RunnerError> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] help: change `class_paths.clone()` to [INFO] [stderr] | [INFO] [stderr] 412 | let mut runtime = Runtime::new(class_paths.to_owned(), jars); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:201:50 [INFO] [stderr] | [INFO] [stderr] 201 | let new_pos = (current_position as i64 + branch_offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(branch_offset)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/runner.rs:425:33 [INFO] [stderr] | [INFO] [stderr] 425 | pub fn get_runtime(class_paths: &Vec, jars: Vec>, initialise: bool) -> Runtime { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 425 | pub fn get_runtime(class_paths: &[String], jars: Vec>, initialise: bool) -> Runtime { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] help: change `class_paths.clone()` to [INFO] [stderr] | [INFO] [stderr] 426 | let mut runtime = Runtime::new(class_paths.to_owned(), jars); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:217:55 [INFO] [stderr] | [INFO] [stderr] 217 | let new_position = (current_position as i64 + branch_offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(branch_offset)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/runner.rs:436:95 [INFO] [stderr] | [INFO] [stderr] 436 | pub fn run_method(runtime: &mut Runtime, class_result: &ClassResult, method: &str, arguments: &Vec, return_descriptor: String) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:252:55 [INFO] [stderr] | [INFO] [stderr] 252 | let new_position = (current_position as i64 + branch_offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(branch_offset)` [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/reader/util.rs:20:15 [INFO] [stderr] | [INFO] [stderr] 20 | return Ok(runtime.string_interns.get(&string).unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&runtime.string_interns[&string]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/reader/util.rs:56:38 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn type_name_to_descriptor(name: &String) -> String { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 56 | pub fn type_name_to_descriptor(name: &str) -> String { [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `name.as_str()` to [INFO] [stderr] | [INFO] [stderr] 57 | return String::from(match name { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/reader/jvm/interpreter.rs:260:26 [INFO] [stderr] | [INFO] [stderr] 260 | let maybe_cp_entry = runtime.current_frame.constant_pool.pool.get(&(index as u16)).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `runtime.current_frame.constant_pool.pool.get(&(index as u16)).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/jvm/interpreter.rs:265:9 [INFO] [stderr] | [INFO] [stderr] 265 | / match maybe_cp_entry.as_ref().unwrap() { [INFO] [stderr] 266 | | &ConstantPoolItem::CONSTANT_String { index } => { [INFO] [stderr] 267 | | let str = try!(runtime.current_frame.constant_pool.get_str(index)); [INFO] [stderr] 268 | | runnerPrint!(runtime, true, 2, "LDC string {}", str); [INFO] [stderr] ... | [INFO] [stderr] 301 | | _ => return Err(RunnerError::ClassInvalid2(format!("Unknown constant {:?}", maybe_cp_entry.as_ref().unwrap()))) [INFO] [stderr] 302 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 265 | match *maybe_cp_entry.as_ref().unwrap() { [INFO] [stderr] 266 | ConstantPoolItem::CONSTANT_String { index } => { [INFO] [stderr] 267 | let str = try!(runtime.current_frame.constant_pool.get_str(index)); [INFO] [stderr] 268 | runnerPrint!(runtime, true, 2, "LDC string {}", str); [INFO] [stderr] 269 | let var = try!(make_string(runtime, str.as_str())); [INFO] [stderr] 270 | runtime.push_on_stack(var); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader/util.rs:95:9 [INFO] [stderr] | [INFO] [stderr] 95 | array_depth = array_depth + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `array_depth += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader/util.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | array_depth = array_depth - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `array_depth -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/util.rs:137:41 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn generate_method_descriptor(args: &Vec, return_descriptor: String, is_static: bool) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 162 [INFO] [stderr] --> src/reader/jvm/interpreter.rs:307:1 [INFO] [stderr] | [INFO] [stderr] 307 | / pub fn step(runtime: &mut Runtime, name: &str, buf: &mut Cursor<&Vec>) -> Result { [INFO] [stderr] 308 | | let current_position = buf.position(); [INFO] [stderr] 309 | | let op_code = try!(buf.read_u8()); [INFO] [stderr] 310 | | runnerPrint!(runtime, true, 3, "{} {} Op code {}", name, runtime.count, op_code); [INFO] [stderr] ... | [INFO] [stderr] 768 | | return Ok(false); [INFO] [stderr] 769 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/builtins/java_lang.rs:30:71 [INFO] [stderr] | [INFO] [stderr] 30 | try!(put_field(runtime, &var.to_ref(), "modifiers", Variable::Int(access as i32))); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(access)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/java_lang.rs:45:102 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 84 [INFO] [stderr] --> src/reader/builtins/java_lang.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | / pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] 46 | | match (class_name.as_str(), method_name.as_str(), descriptor.as_str()) { [INFO] [stderr] 47 | | ("java/lang/Class", "registerNatives", "()V") => {} [INFO] [stderr] 48 | | ("java/lang/Class", "isArray", "()Z") => { [INFO] [stderr] ... | [INFO] [stderr] 317 | | return Ok(true); [INFO] [stderr] 318 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/reader/builtins/java_lang.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | let ref class_loader = args[2]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^----------- help: try: `let class_loader = &args[2];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/reader/builtins/java_lang.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | let ref caller_class = args[3]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^----------- help: try: `let caller_class = &args[3];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: transmute from a `i32` to a `f32` [INFO] [stderr] --> src/reader/builtins/java_lang.rs:237:33 [INFO] [stderr] | [INFO] [stderr] 237 | let float = unsafe {std::mem::transmute::(int)}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f32::from_bits(int as u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_int_to_float [INFO] [stderr] [INFO] [stderr] warning: transmute from a `i64` to a `f64` [INFO] [stderr] --> src/reader/builtins/java_lang.rs:249:34 [INFO] [stderr] | [INFO] [stderr] 249 | let double = unsafe {std::mem::transmute::(long)}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `f64::from_bits(long as u64)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_int_to_float [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:319:23 [INFO] [stderr] | [INFO] [stderr] 319 | let val = (op_code as i32) - 3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i32::from(op_code)` [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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:324:23 [INFO] [stderr] | [INFO] [stderr] 324 | let val = (op_code as i64) - 9; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(op_code)` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/reader/builtins/java_lang.rs:266:17 [INFO] [stderr] | [INFO] [stderr] 266 | let ref descriptor = args[0].get_descriptor(); [INFO] [stderr] | ----^^^^^^^^^^^^^^---------------------------- help: try: `let descriptor = &args[0].get_descriptor();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:329:23 [INFO] [stderr] | [INFO] [stderr] 329 | let val = (op_code - 11) as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(op_code - 11)` [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 i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:334:24 [INFO] [stderr] | [INFO] [stderr] 334 | let byte = try!(buf.read_u8()) as i8 as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(try!(buf.read_u8()) as i8)` [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 i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:339:25 [INFO] [stderr] | [INFO] [stderr] 339 | let short = try!(buf.read_u16::()) as i16 as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(try!(buf.read_u16::()) as i16)` [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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/reader/jvm/interpreter.rs:353:34 [INFO] [stderr] | [INFO] [stderr] 353 | let maybe_cp_entry = runtime.current_frame.constant_pool.pool.get(&(index as u16)).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `runtime.current_frame.constant_pool.pool.get(&(index as u16)).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/jvm/interpreter.rs:358:17 [INFO] [stderr] | [INFO] [stderr] 358 | / match maybe_cp_entry.as_ref().unwrap() { [INFO] [stderr] 359 | | &ConstantPoolItem::CONSTANT_Long { value } => { [INFO] [stderr] 360 | | runnerPrint!(runtime, true, 2, "LDC2W long {}", value); [INFO] [stderr] 361 | | runtime.push_on_stack(Variable::Long(value as i64)); [INFO] [stderr] ... | [INFO] [stderr] 367 | | _ => return Err(RunnerError::ClassInvalid2(format!("Invalid constant for LDC2W {:?}", maybe_cp_entry.as_ref().unwrap()))) [INFO] [stderr] 368 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 358 | match *maybe_cp_entry.as_ref().unwrap() { [INFO] [stderr] 359 | ConstantPoolItem::CONSTANT_Long { value } => { [INFO] [stderr] 360 | runnerPrint!(runtime, true, 2, "LDC2W long {}", value); [INFO] [stderr] 361 | runtime.push_on_stack(Variable::Long(value as i64)); [INFO] [stderr] 362 | } [INFO] [stderr] 363 | ConstantPoolItem::CONSTANT_Double { value } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/java_other.rs:6:102 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 6 | pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &[Variable], runtime: &mut Runtime) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] help: change `args.clone()` to [INFO] [stderr] | [INFO] [stderr] 38| try!(invoke_nested(runtime, action.unwrap().type_ref().clone(), args.to_owned(), "run", "()Ljava/lang/Object;", false)); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: change `args.clone()` to [INFO] [stderr] | [INFO] [stderr] 43| try!(invoke_nested(runtime, action.unwrap().type_ref().clone(), args.to_owned(), "run", "()Ljava/lang/Object;", false)); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/sun.rs:7:52 [INFO] [stderr] | [INFO] [stderr] 7 | fn get_at_index(runtime: &mut Runtime, args: &Vec, desc: &str, validator: F)-> Result<(), RunnerError> [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/sun.rs:19:56 [INFO] [stderr] | [INFO] [stderr] 19 | fn compare_and_swap(runtime: &mut Runtime, args: &Vec, desc: &str, extractor: F, second_offset: usize) -> Result<(), RunnerError> [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/reader/builtins/sun.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | / let ret; [INFO] [stderr] 31 | | if current == expected { [INFO] [stderr] 32 | | runnerPrint!(runtime, true, 3, "BUILTIN: {} swapped", desc); [INFO] [stderr] 33 | | obj.as_ref().unwrap().put_member_at_offset(offset as usize, swap); [INFO] [stderr] ... | [INFO] [stderr] 36 | | ret = false; [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let ret = if current == expected { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/sun.rs:53:102 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 32 [INFO] [stderr] --> src/reader/builtins/sun.rs:53:1 [INFO] [stderr] | [INFO] [stderr] 53 | / pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] 54 | | match (class_name.as_str(), method_name.as_str(), descriptor.as_str()) { [INFO] [stderr] 55 | | ("sun/misc/Signal", "findSignal", "(Ljava/lang/String;)I") => { [INFO] [stderr] 56 | | let signal = args[0].clone().extract_string(); [INFO] [stderr] ... | [INFO] [stderr] 135 | | return Ok(true); [INFO] [stderr] 136 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:492:93 [INFO] [stderr] | [INFO] [stderr] 492 | runtime.current_frame.local_variables[index as usize] = Variable::Int(old_val + constt as i32); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(constt)` [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/reader/jvm/interpreter.rs:494:56 [INFO] [stderr] | [INFO] [stderr] 494 | 133 => cast("I2L", runtime, |x| Variable::Long(x.to_int() as i64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i64::from(x.to_int())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:496:58 [INFO] [stderr] | [INFO] [stderr] 496 | 135 => cast("I2D", runtime, |x| Variable::Double(x.to_int() as f64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(x.to_int())` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:500:58 [INFO] [stderr] | [INFO] [stderr] 500 | 141 => cast("F2D", runtime, |x| Variable::Double(x.to_float() as f64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x.to_float())` [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 i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:539:54 [INFO] [stderr] | [INFO] [stderr] 539 | let new_pos = (current_position as i64 + branch_offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(branch_offset)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:552:58 [INFO] [stderr] | [INFO] [stderr] 552 | let new_pos = (current_position as i64 + default as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(default)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:557:40 [INFO] [stderr] | [INFO] [stderr] 557 | buf.set_position(pos + (value_int - low) as u64 * 4); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(value_int - low)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:559:58 [INFO] [stderr] | [INFO] [stderr] 559 | let new_pos = (current_position as i64 + jump as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(jump)` [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/reader/jvm/interpreter.rs:576:62 [INFO] [stderr] | [INFO] [stderr] 576 | let new_pos = (current_position as i64 + offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(offset)` [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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/reader/jvm/interpreter.rs:583:16 [INFO] [stderr] | [INFO] [stderr] 583 | if matched == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!matched` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:584:58 [INFO] [stderr] | [INFO] [stderr] 584 | let new_pos = (current_position as i64 + default as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(default)` [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/reader/builtins/sun.rs:74:50 [INFO] [stderr] | [INFO] [stderr] 74 | runtime.push_on_stack(Variable::Long(slot as i64)); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(slot)` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*mut i64`) [INFO] [stderr] --> src/reader/builtins/sun.rs:93:23 [INFO] [stderr] | [INFO] [stderr] 93 | unsafe { *(ptr as *mut i64) = size; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/builtins/mod.rs:8:102 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn try_builtin(class_name: &Rc, method_name: &Rc, descriptor: &Rc, args: &Vec, runtime: &mut Runtime) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/reader/jvm/interpreter.rs:701:25 [INFO] [stderr] | [INFO] [stderr] 701 | let class = runtime.classes.get(&*class_name).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&runtime.classes[&*class_name]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/reader/jvm/interpreter.rs:744:13 [INFO] [stderr] | [INFO] [stderr] 744 | / let mut matches = 0; [INFO] [stderr] 745 | | if var_ref.is_some() && Class::find_superclass(var_ref.unwrap().type_ref(), class_name).is_some() { [INFO] [stderr] 746 | | matches = 1; [INFO] [stderr] 747 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let matches = if var_ref.is_some() && Class::find_superclass(var_ref.unwrap().type_ref(), class_name).is_some() { 1 } else { 0 };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/reader/jvm/class_objects.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | / let component_type; [INFO] [stderr] 64 | | if array_obj.element_type_ref.is_some() { [INFO] [stderr] 65 | | component_type = try!(get_class_object_from_descriptor(runtime, array_obj.element_type_str.clone().as_str())); [INFO] [stderr] 66 | | } else { [INFO] [stderr] 67 | | component_type = try!(get_primitive_class_object(runtime, array_obj.element_type_str.clone())); [INFO] [stderr] 68 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 63 | let component_type = if array_obj.element_type_ref.is_some() { match $ expr { [INFO] [stderr] 64 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 65 | :: Err ( err ) => { [INFO] [stderr] 66 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 67 | $ crate :: convert :: From :: from ( err ) ) } } } else { match $ expr { [INFO] [stderr] 68 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/reader/jvm/construction.rs:36:32 [INFO] [stderr] | [INFO] [stderr] 36 | elements: RefCell::new(data.unwrap_or(Vec::new())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `data.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/reader/jvm/construction.rs:54:32 [INFO] [stderr] | [INFO] [stderr] 54 | elements: RefCell::new(data.unwrap_or(Vec::new())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `data.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/jvm/gc.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | / match var { [INFO] [stderr] 16 | | &Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 17 | | collectable_objects.retain(|x| x.upgrade().map(|y| &y != obj.as_ref().unwrap()).unwrap_or(false)); [INFO] [stderr] 18 | | }, [INFO] [stderr] ... | [INFO] [stderr] 22 | | _ => {} [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 15 | match *var { [INFO] [stderr] 16 | Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 17 | collectable_objects.retain(|x| x.upgrade().map(|y| &y != obj.as_ref().unwrap()).unwrap_or(false)); [INFO] [stderr] 18 | }, [INFO] [stderr] 19 | Variable::ArrayReference(ref _obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/reader/types/class.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new(name: &String, cr: &ClassResult) -> Class { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new(name: &str, cr: &ClassResult) -> Class { [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `name.clone()` to [INFO] [stderr] | [INFO] [stderr] 24 | name: name.to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/reader/types/class.rs:50:44 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn find_member_offset(&self, name: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/reader/types/class.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | / if maybe_super_class.is_none() { [INFO] [stderr] 82 | | return None; [INFO] [stderr] 83 | | } [INFO] [stderr] | |_____________^ help: replace_it_with: `maybe_super_class?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `reader::types::constant_pool::ConstantPool` [INFO] [stderr] --> src/reader/types/constant_pool.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / pub fn new() -> ConstantPool { [INFO] [stderr] 12 | | ConstantPool {pool: HashMap::new()} [INFO] [stderr] 13 | | } [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] 6 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/reader/jvm/interpreter.rs:141:19 [INFO] [stderr] | [INFO] [stderr] 141 | name: String::from(class.name.clone() + method_name), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `class.name.clone() + method_name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/reader/types/constant_pool.rs:74:44 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn get_field(&self, index: u16) -> Result<(Rc, Rc, Rc), ClassReadError> { [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/reader/jvm/interpreter.rs:169:15 [INFO] [stderr] | [INFO] [stderr] 169 | } else if pop1 == pop2 { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider comparing them within some error: `(pop1 - pop2).abs() < error` [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] --> src/reader/jvm/interpreter.rs:169:15 [INFO] [stderr] | [INFO] [stderr] 169 | } else if pop1 == pop2 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/reader/types/constant_pool.rs:93:45 [INFO] [stderr] | [INFO] [stderr] 93 | pub fn get_method(&self, index: u16) -> Result<(Rc, Rc, Rc), ClassReadError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:186:55 [INFO] [stderr] | [INFO] [stderr] 186 | let new_position = (current_position as i64 + branch_offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(branch_offset)` [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 `reader::types::frame::Frame` [INFO] [stderr] --> src/reader/types/frame.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / pub fn new() -> Frame { [INFO] [stderr] 17 | | Frame { [INFO] [stderr] 18 | | class: None, [INFO] [stderr] 19 | | constant_pool: ConstantPool::new(), [INFO] [stderr] ... | [INFO] [stderr] 24 | | name: String::new()} [INFO] [stderr] 25 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 15 | impl Default for reader::types::frame::Frame { [INFO] [stderr] 16 | fn default() -> Self { [INFO] [stderr] 17 | Self::new() [INFO] [stderr] 18 | } [INFO] [stderr] 19 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/reader/types/objects.rs:35:36 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn get_member(&self, name: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/reader/types/objects.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn put_member(&self, name: &String, var: Variable) -> Option<()> { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:201:50 [INFO] [stderr] | [INFO] [stderr] 201 | let new_pos = (current_position as i64 + branch_offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(branch_offset)` [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 i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:217:55 [INFO] [stderr] | [INFO] [stderr] 217 | let new_position = (current_position as i64 + branch_offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(branch_offset)` [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 i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:252:55 [INFO] [stderr] | [INFO] [stderr] 252 | let new_position = (current_position as i64 + branch_offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(branch_offset)` [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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/reader/jvm/interpreter.rs:260:26 [INFO] [stderr] | [INFO] [stderr] 260 | let maybe_cp_entry = runtime.current_frame.constant_pool.pool.get(&(index as u16)).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `runtime.current_frame.constant_pool.pool.get(&(index as u16)).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/jvm/interpreter.rs:265:9 [INFO] [stderr] | [INFO] [stderr] 265 | / match maybe_cp_entry.as_ref().unwrap() { [INFO] [stderr] 266 | | &ConstantPoolItem::CONSTANT_String { index } => { [INFO] [stderr] 267 | | let str = try!(runtime.current_frame.constant_pool.get_str(index)); [INFO] [stderr] 268 | | runnerPrint!(runtime, true, 2, "LDC string {}", str); [INFO] [stderr] ... | [INFO] [stderr] 301 | | _ => return Err(RunnerError::ClassInvalid2(format!("Unknown constant {:?}", maybe_cp_entry.as_ref().unwrap()))) [INFO] [stderr] 302 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/reader/types/runtime.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | maybe_var.as_ref().map(|x| {if !x.is_type_1() {self.current_frame.operand_stack.pop();}}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(x) = maybe_var.as_ref() { ... }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 265 | match *maybe_cp_entry.as_ref().unwrap() { [INFO] [stderr] 266 | ConstantPoolItem::CONSTANT_String { index } => { [INFO] [stderr] 267 | let str = try!(runtime.current_frame.constant_pool.get_str(index)); [INFO] [stderr] 268 | runnerPrint!(runtime, true, 2, "LDC string {}", str); [INFO] [stderr] 269 | let var = try!(make_string(runtime, str.as_str())); [INFO] [stderr] 270 | runtime.push_on_stack(var); [INFO] [stderr] ... [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/types/runtime.rs:73:48 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn add_arguments(&mut self, arguments: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/runtime.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | / match arg { [INFO] [stderr] 76 | | &Variable::Long(ref _x) => { [INFO] [stderr] 77 | | self.current_frame.local_variables.push(arg.clone()); [INFO] [stderr] 78 | | self.current_frame.local_variables.push(arg.clone()); [INFO] [stderr] ... | [INFO] [stderr] 86 | | } [INFO] [stderr] 87 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 75 | match *arg { [INFO] [stderr] 76 | Variable::Long(ref _x) => { [INFO] [stderr] 77 | self.current_frame.local_variables.push(arg.clone()); [INFO] [stderr] 78 | self.current_frame.local_variables.push(arg.clone()); [INFO] [stderr] 79 | }, [INFO] [stderr] 80 | Variable::Double(ref _x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 162 [INFO] [stderr] --> src/reader/jvm/interpreter.rs:307:1 [INFO] [stderr] | [INFO] [stderr] 307 | / pub fn step(runtime: &mut Runtime, name: &str, buf: &mut Cursor<&Vec>) -> Result { [INFO] [stderr] 308 | | let current_position = buf.position(); [INFO] [stderr] 309 | | let op_code = try!(buf.read_u8()); [INFO] [stderr] 310 | | runnerPrint!(runtime, true, 3, "{} {} Op code {}", name, runtime.count, op_code); [INFO] [stderr] ... | [INFO] [stderr] 768 | | return Ok(false); [INFO] [stderr] 769 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / match self { [INFO] [stderr] 26 | | &Variable::Boolean(ref x) => { [INFO] [stderr] 27 | | return *x; [INFO] [stderr] 28 | | }, [INFO] [stderr] ... | [INFO] [stderr] 34 | | } [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 25 | match *self { [INFO] [stderr] 26 | Variable::Boolean(ref x) => { [INFO] [stderr] 27 | return *x; [INFO] [stderr] 28 | }, [INFO] [stderr] 29 | Variable::Int(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | / match self { [INFO] [stderr] 39 | | &Variable::Char(ref x) => { [INFO] [stderr] 40 | | return *x; [INFO] [stderr] 41 | | }, [INFO] [stderr] ... | [INFO] [stderr] 44 | | } [INFO] [stderr] 45 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 38 | match *self { [INFO] [stderr] 39 | Variable::Char(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | / match self { [INFO] [stderr] 49 | | &Variable::Int(ref x) => { [INFO] [stderr] 50 | | return *x as u8; [INFO] [stderr] 51 | | }, [INFO] [stderr] ... | [INFO] [stderr] 57 | | } [INFO] [stderr] 58 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 48 | match *self { [INFO] [stderr] 49 | Variable::Int(ref x) => { [INFO] [stderr] 50 | return *x as u8; [INFO] [stderr] 51 | }, [INFO] [stderr] 52 | Variable::Byte(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | / match self { [INFO] [stderr] 62 | | &Variable::Int(ref x) => { [INFO] [stderr] 63 | | return *x as i16; [INFO] [stderr] 64 | | }, [INFO] [stderr] ... | [INFO] [stderr] 70 | | } [INFO] [stderr] 71 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 61 | match *self { [INFO] [stderr] 62 | Variable::Int(ref x) => { [INFO] [stderr] 63 | return *x as i16; [INFO] [stderr] 64 | }, [INFO] [stderr] 65 | Variable::Short(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | / match self { [INFO] [stderr] 75 | | &Variable::Boolean(ref x) => { [INFO] [stderr] 76 | | return if *x { 1 } else { 0 }; [INFO] [stderr] 77 | | }, [INFO] [stderr] ... | [INFO] [stderr] 92 | | } [INFO] [stderr] 93 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 74 | match *self { [INFO] [stderr] 75 | Variable::Boolean(ref x) => { [INFO] [stderr] 76 | return if *x { 1 } else { 0 }; [INFO] [stderr] 77 | }, [INFO] [stderr] 78 | Variable::Char(ref x) => { [INFO] [stderr] 79 | return *x as i32; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/types/variable.rs:82:24 [INFO] [stderr] | [INFO] [stderr] 82 | return *x as i32; [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(*x)` [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 i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/types/variable.rs:85:24 [INFO] [stderr] | [INFO] [stderr] 85 | return *x as i32; [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(*x)` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | / match self { [INFO] [stderr] 98 | | &Variable::Long(ref x) => { [INFO] [stderr] 99 | | return *x; [INFO] [stderr] 100 | | }, [INFO] [stderr] ... | [INFO] [stderr] 103 | | } [INFO] [stderr] 104 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 97 | match *self { [INFO] [stderr] 98 | Variable::Long(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | / match self { [INFO] [stderr] 108 | | &Variable::Float(ref x) => { [INFO] [stderr] 109 | | return *x; [INFO] [stderr] 110 | | }, [INFO] [stderr] ... | [INFO] [stderr] 113 | | } [INFO] [stderr] 114 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 107 | match *self { [INFO] [stderr] 108 | Variable::Float(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | / match self { [INFO] [stderr] 118 | | &Variable::Double(ref x) => { [INFO] [stderr] 119 | | return *x; [INFO] [stderr] 120 | | }, [INFO] [stderr] ... | [INFO] [stderr] 123 | | } [INFO] [stderr] 124 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 117 | match *self { [INFO] [stderr] 118 | Variable::Double(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | / match self { [INFO] [stderr] 128 | | &Variable::Reference(ref class, ref _obj) => { [INFO] [stderr] 129 | | return class.clone(); [INFO] [stderr] 130 | | }, [INFO] [stderr] ... | [INFO] [stderr] 133 | | } [INFO] [stderr] 134 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 127 | match *self { [INFO] [stderr] 128 | Variable::Reference(ref class, ref _obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | / match self { [INFO] [stderr] 138 | | &Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 139 | | return obj.clone(); [INFO] [stderr] 140 | | }, [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#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 137 | match *self { [INFO] [stderr] 138 | Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | / match self { [INFO] [stderr] 148 | | &Variable::Reference(ref _class, ref _obj) => { [INFO] [stderr] 149 | | return true; [INFO] [stderr] 150 | | }, [INFO] [stderr] ... | [INFO] [stderr] 153 | | } [INFO] [stderr] 154 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 147 | match *self { [INFO] [stderr] 148 | Variable::Reference(ref _class, ref _obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | / match self { [INFO] [stderr] 158 | | &Variable::ArrayReference(ref _array) => { [INFO] [stderr] 159 | | return true; [INFO] [stderr] 160 | | }, [INFO] [stderr] ... | [INFO] [stderr] 163 | | } [INFO] [stderr] 164 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 157 | match *self { [INFO] [stderr] 158 | Variable::ArrayReference(ref _array) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | / match self { [INFO] [stderr] 168 | | &Variable::Reference(ref _class, ref _obj) => { [INFO] [stderr] 169 | | return true; [INFO] [stderr] 170 | | }, [INFO] [stderr] ... | [INFO] [stderr] 176 | | } [INFO] [stderr] 177 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 167 | match *self { [INFO] [stderr] 168 | Variable::Reference(ref _class, ref _obj) => { [INFO] [stderr] 169 | return true; [INFO] [stderr] 170 | }, [INFO] [stderr] 171 | Variable::ArrayReference(ref _array) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:180:9 [INFO] [stderr] | [INFO] [stderr] 180 | / match self { [INFO] [stderr] 181 | | &Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 182 | | return obj.is_none(); [INFO] [stderr] 183 | | }, [INFO] [stderr] ... | [INFO] [stderr] 192 | | } [INFO] [stderr] 193 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 180 | match *self { [INFO] [stderr] 181 | Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 182 | return obj.is_none(); [INFO] [stderr] 183 | }, [INFO] [stderr] 184 | Variable::ArrayReference(ref array) => { [INFO] [stderr] 185 | return array.is_null; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:196:9 [INFO] [stderr] | [INFO] [stderr] 196 | / match self { [INFO] [stderr] 197 | | &Variable::ArrayReference(ref array) => { [INFO] [stderr] 198 | | return array.clone(); [INFO] [stderr] 199 | | }, [INFO] [stderr] ... | [INFO] [stderr] 202 | | } [INFO] [stderr] 203 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 196 | match *self { [INFO] [stderr] 197 | Variable::ArrayReference(ref array) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | / match self { [INFO] [stderr] 207 | | &Variable::Long(_x) => { [INFO] [stderr] 208 | | return false; [INFO] [stderr] 209 | | }, [INFO] [stderr] ... | [INFO] [stderr] 215 | | } [INFO] [stderr] 216 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 206 | match *self { [INFO] [stderr] 207 | Variable::Long(_x) => { [INFO] [stderr] 208 | return false; [INFO] [stderr] 209 | }, [INFO] [stderr] 210 | Variable::Double(_y) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:219:16 [INFO] [stderr] | [INFO] [stderr] 219 | return match self { [INFO] [stderr] | ________________^ [INFO] [stderr] 220 | | &Variable::Boolean(_x) => true, [INFO] [stderr] 221 | | &Variable::Byte(_x) => true, [INFO] [stderr] 222 | | &Variable::Short(_x) => true, [INFO] [stderr] ... | [INFO] [stderr] 225 | | _ => false, [INFO] [stderr] 226 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 219 | return match *self { [INFO] [stderr] 220 | Variable::Boolean(_x) => true, [INFO] [stderr] 221 | Variable::Byte(_x) => true, [INFO] [stderr] 222 | Variable::Short(_x) => true, [INFO] [stderr] 223 | Variable::Char(_x) => true, [INFO] [stderr] 224 | Variable::Int(_x) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:229:16 [INFO] [stderr] | [INFO] [stderr] 229 | return match self { [INFO] [stderr] | ________________^ [INFO] [stderr] 230 | | &Variable::Reference(ref _class, ref _x) => false, [INFO] [stderr] 231 | | &Variable::ArrayReference(ref _x) => false, [INFO] [stderr] 232 | | &Variable::InterfaceReference(ref _x) => false, [INFO] [stderr] 233 | | &Variable::UnresolvedReference(ref _x) => false, [INFO] [stderr] 234 | | _ => true, [INFO] [stderr] 235 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 229 | return match *self { [INFO] [stderr] 230 | Variable::Reference(ref _class, ref _x) => false, [INFO] [stderr] 231 | Variable::ArrayReference(ref _x) => false, [INFO] [stderr] 232 | Variable::InterfaceReference(ref _x) => false, [INFO] [stderr] 233 | Variable::UnresolvedReference(ref _x) => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:239:16 [INFO] [stderr] | [INFO] [stderr] 239 | return match self { [INFO] [stderr] | ________________^ [INFO] [stderr] 240 | | &Variable::UnresolvedReference(ref _x) => true, [INFO] [stderr] 241 | | _ => false, [INFO] [stderr] 242 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 239 | return match *self { [INFO] [stderr] 240 | Variable::UnresolvedReference(ref _x) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:246:16 [INFO] [stderr] | [INFO] [stderr] 246 | return match self { [INFO] [stderr] | ________________^ [INFO] [stderr] 247 | | &Variable::UnresolvedReference(ref type_name) => type_name.clone(), [INFO] [stderr] 248 | | _ => panic!("Cannot get unresolved type name of {}", self), [INFO] [stderr] 249 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 246 | return match *self { [INFO] [stderr] 247 | Variable::UnresolvedReference(ref type_name) => type_name.clone(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | / match self { [INFO] [stderr] 254 | | &Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 255 | | if obj.is_none() { [INFO] [stderr] 256 | | let exception = try!(construct_object(runtime, &"java/lang/NullPointerException")); [INFO] [stderr] ... | [INFO] [stderr] 272 | | } [INFO] [stderr] 273 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 253 | match *self { [INFO] [stderr] 254 | Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 255 | if obj.is_none() { [INFO] [stderr] 256 | let exception = try!(construct_object(runtime, &"java/lang/NullPointerException")); [INFO] [stderr] 257 | return Err(RunnerError::Exception(exception)); [INFO] [stderr] 258 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:278:9 [INFO] [stderr] | [INFO] [stderr] 278 | / match self { [INFO] [stderr] 279 | | &Variable::Byte(_v) => {ret.push('B');}, [INFO] [stderr] 280 | | &Variable::Char(_v) => {ret.push('C');}, [INFO] [stderr] 281 | | &Variable::Double(_v) => {ret.push('D');}, [INFO] [stderr] ... | [INFO] [stderr] 301 | | _ => {panic!("Type not covered");} [INFO] [stderr] 302 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 278 | match *self { [INFO] [stderr] 279 | Variable::Byte(_v) => {ret.push('B');}, [INFO] [stderr] 280 | Variable::Char(_v) => {ret.push('C');}, [INFO] [stderr] 281 | Variable::Double(_v) => {ret.push('D');}, [INFO] [stderr] 282 | Variable::Float(_v) => {ret.push('F');}, [INFO] [stderr] 283 | Variable::Int(_v) => {ret.push('I');}, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:307:16 [INFO] [stderr] | [INFO] [stderr] 307 | return match self { [INFO] [stderr] | ________________^ [INFO] [stderr] 308 | | &Variable::Reference(ref class, ref obj) => [INFO] [stderr] 309 | | if obj.is_some() { [INFO] [stderr] 310 | | format!("Reference of type {} with content {}", class.name, obj.as_ref().unwrap()) [INFO] [stderr] ... | [INFO] [stderr] 324 | | &Variable::UnresolvedReference(ref name) => format!("UnresolvedReference {}", name), [INFO] [stderr] 325 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 307 | return match *self { [INFO] [stderr] 308 | Variable::Reference(ref class, ref obj) => [INFO] [stderr] 309 | if obj.is_some() { [INFO] [stderr] 310 | format!("Reference of type {} with content {}", class.name, obj.as_ref().unwrap()) [INFO] [stderr] 311 | } else { [INFO] [stderr] 312 | format!("", class.name) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:329:9 [INFO] [stderr] | [INFO] [stderr] 329 | / match self { [INFO] [stderr] 330 | | &Variable::Reference(ref class, ref obj) => { [INFO] [stderr] 331 | | match class.name.as_str() { [INFO] [stderr] 332 | | "java/lang/String" => { [INFO] [stderr] ... | [INFO] [stderr] 338 | | _ => {panic!("{} is not a string", self);} [INFO] [stderr] 339 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 329 | match *self { [INFO] [stderr] 330 | Variable::Reference(ref class, ref obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/lib.rs:59:39 [INFO] [stderr] | [INFO] [stderr] 59 | let reader = File::open(filename).expect(format!("Could not open {}", filename.display()).as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Could not open {}", filename.display()))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:67:33 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn get_runtime(class_paths: &Vec) -> reader::runner::Runtime { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:71:55 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn get_runtime_bypass_initialisation(class_paths: &Vec) -> Runtime { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:75:100 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn run_method(runtime: &mut reader::runner::Runtime, filename: &Path, method: &str, arguments: &Vec, return_descriptor: &str) -> reader::runner::Variable { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[reader::runner::Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:319:23 [INFO] [stderr] | [INFO] [stderr] 319 | let val = (op_code as i32) - 3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i32::from(op_code)` [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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:324:23 [INFO] [stderr] | [INFO] [stderr] 324 | let val = (op_code as i64) - 9; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(op_code)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:329:23 [INFO] [stderr] | [INFO] [stderr] 329 | let val = (op_code - 11) as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(op_code - 11)` [INFO] [stderr] error: Could not compile `rjvm`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [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 i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:334:24 [INFO] [stderr] | [INFO] [stderr] 334 | let byte = try!(buf.read_u8()) as i8 as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(try!(buf.read_u8()) as i8)` [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 i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:339:25 [INFO] [stderr] | [INFO] [stderr] 339 | let short = try!(buf.read_u16::()) as i16 as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(try!(buf.read_u16::()) as i16)` [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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/reader/jvm/interpreter.rs:353:34 [INFO] [stderr] | [INFO] [stderr] 353 | let maybe_cp_entry = runtime.current_frame.constant_pool.pool.get(&(index as u16)).map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `runtime.current_frame.constant_pool.pool.get(&(index as u16)).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/jvm/interpreter.rs:358:17 [INFO] [stderr] | [INFO] [stderr] 358 | / match maybe_cp_entry.as_ref().unwrap() { [INFO] [stderr] 359 | | &ConstantPoolItem::CONSTANT_Long { value } => { [INFO] [stderr] 360 | | runnerPrint!(runtime, true, 2, "LDC2W long {}", value); [INFO] [stderr] 361 | | runtime.push_on_stack(Variable::Long(value as i64)); [INFO] [stderr] ... | [INFO] [stderr] 367 | | _ => return Err(RunnerError::ClassInvalid2(format!("Invalid constant for LDC2W {:?}", maybe_cp_entry.as_ref().unwrap()))) [INFO] [stderr] 368 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 358 | match *maybe_cp_entry.as_ref().unwrap() { [INFO] [stderr] 359 | ConstantPoolItem::CONSTANT_Long { value } => { [INFO] [stderr] 360 | runnerPrint!(runtime, true, 2, "LDC2W long {}", value); [INFO] [stderr] 361 | runtime.push_on_stack(Variable::Long(value as i64)); [INFO] [stderr] 362 | } [INFO] [stderr] 363 | ConstantPoolItem::CONSTANT_Double { value } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:492:93 [INFO] [stderr] | [INFO] [stderr] 492 | runtime.current_frame.local_variables[index as usize] = Variable::Int(old_val + constt as i32); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(constt)` [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/reader/jvm/interpreter.rs:494:56 [INFO] [stderr] | [INFO] [stderr] 494 | 133 => cast("I2L", runtime, |x| Variable::Long(x.to_int() as i64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i64::from(x.to_int())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:496:58 [INFO] [stderr] | [INFO] [stderr] 496 | 135 => cast("I2D", runtime, |x| Variable::Double(x.to_int() as f64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(x.to_int())` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:500:58 [INFO] [stderr] | [INFO] [stderr] 500 | 141 => cast("F2D", runtime, |x| Variable::Double(x.to_float() as f64)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x.to_float())` [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 i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:539:54 [INFO] [stderr] | [INFO] [stderr] 539 | let new_pos = (current_position as i64 + branch_offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(branch_offset)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:552:58 [INFO] [stderr] | [INFO] [stderr] 552 | let new_pos = (current_position as i64 + default as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(default)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:557:40 [INFO] [stderr] | [INFO] [stderr] 557 | buf.set_position(pos + (value_int - low) as u64 * 4); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(value_int - low)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:559:58 [INFO] [stderr] | [INFO] [stderr] 559 | let new_pos = (current_position as i64 + jump as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(jump)` [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/reader/jvm/interpreter.rs:576:62 [INFO] [stderr] | [INFO] [stderr] 576 | let new_pos = (current_position as i64 + offset as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(offset)` [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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/reader/jvm/interpreter.rs:583:16 [INFO] [stderr] | [INFO] [stderr] 583 | if matched == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!matched` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/reader/jvm/interpreter.rs:584:58 [INFO] [stderr] | [INFO] [stderr] 584 | let new_pos = (current_position as i64 + default as i64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(default)` [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/reader/jvm/interpreter.rs:701:25 [INFO] [stderr] | [INFO] [stderr] 701 | let class = runtime.classes.get(&*class_name).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&runtime.classes[&*class_name]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/reader/jvm/interpreter.rs:744:13 [INFO] [stderr] | [INFO] [stderr] 744 | / let mut matches = 0; [INFO] [stderr] 745 | | if var_ref.is_some() && Class::find_superclass(var_ref.unwrap().type_ref(), class_name).is_some() { [INFO] [stderr] 746 | | matches = 1; [INFO] [stderr] 747 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let matches = if var_ref.is_some() && Class::find_superclass(var_ref.unwrap().type_ref(), class_name).is_some() { 1 } else { 0 };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/jvm/gc.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | / match var { [INFO] [stderr] 16 | | &Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 17 | | collectable_objects.retain(|x| x.upgrade().map(|y| &y != obj.as_ref().unwrap()).unwrap_or(false)); [INFO] [stderr] 18 | | }, [INFO] [stderr] ... | [INFO] [stderr] 22 | | _ => {} [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 15 | match *var { [INFO] [stderr] 16 | Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 17 | collectable_objects.retain(|x| x.upgrade().map(|y| &y != obj.as_ref().unwrap()).unwrap_or(false)); [INFO] [stderr] 18 | }, [INFO] [stderr] 19 | Variable::ArrayReference(ref _obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/reader/types/class.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new(name: &String, cr: &ClassResult) -> Class { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new(name: &str, cr: &ClassResult) -> Class { [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `name.clone()` to [INFO] [stderr] | [INFO] [stderr] 24 | name: name.to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/reader/types/class.rs:50:44 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn find_member_offset(&self, name: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/reader/types/class.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | / if maybe_super_class.is_none() { [INFO] [stderr] 82 | | return None; [INFO] [stderr] 83 | | } [INFO] [stderr] | |_____________^ help: replace_it_with: `maybe_super_class?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `reader::types::constant_pool::ConstantPool` [INFO] [stderr] --> src/reader/types/constant_pool.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / pub fn new() -> ConstantPool { [INFO] [stderr] 12 | | ConstantPool {pool: HashMap::new()} [INFO] [stderr] 13 | | } [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] 6 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/reader/types/constant_pool.rs:74:44 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn get_field(&self, index: u16) -> Result<(Rc, Rc, Rc), ClassReadError> { [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/reader/types/constant_pool.rs:93:45 [INFO] [stderr] | [INFO] [stderr] 93 | pub fn get_method(&self, index: u16) -> Result<(Rc, Rc, Rc), ClassReadError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `reader::types::frame::Frame` [INFO] [stderr] --> src/reader/types/frame.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / pub fn new() -> Frame { [INFO] [stderr] 17 | | Frame { [INFO] [stderr] 18 | | class: None, [INFO] [stderr] 19 | | constant_pool: ConstantPool::new(), [INFO] [stderr] ... | [INFO] [stderr] 24 | | name: String::new()} [INFO] [stderr] 25 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 15 | impl Default for reader::types::frame::Frame { [INFO] [stderr] 16 | fn default() -> Self { [INFO] [stderr] 17 | Self::new() [INFO] [stderr] 18 | } [INFO] [stderr] 19 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/reader/types/objects.rs:35:36 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn get_member(&self, name: &String) -> Option { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/reader/types/objects.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn put_member(&self, name: &String, var: Variable) -> Option<()> { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/reader/types/runtime.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | maybe_var.as_ref().map(|x| {if !x.is_type_1() {self.current_frame.operand_stack.pop();}}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(x) = maybe_var.as_ref() { ... }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/reader/types/runtime.rs:73:48 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn add_arguments(&mut self, arguments: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/runtime.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | / match arg { [INFO] [stderr] 76 | | &Variable::Long(ref _x) => { [INFO] [stderr] 77 | | self.current_frame.local_variables.push(arg.clone()); [INFO] [stderr] 78 | | self.current_frame.local_variables.push(arg.clone()); [INFO] [stderr] ... | [INFO] [stderr] 86 | | } [INFO] [stderr] 87 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 75 | match *arg { [INFO] [stderr] 76 | Variable::Long(ref _x) => { [INFO] [stderr] 77 | self.current_frame.local_variables.push(arg.clone()); [INFO] [stderr] 78 | self.current_frame.local_variables.push(arg.clone()); [INFO] [stderr] 79 | }, [INFO] [stderr] 80 | Variable::Double(ref _x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / match self { [INFO] [stderr] 26 | | &Variable::Boolean(ref x) => { [INFO] [stderr] 27 | | return *x; [INFO] [stderr] 28 | | }, [INFO] [stderr] ... | [INFO] [stderr] 34 | | } [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 25 | match *self { [INFO] [stderr] 26 | Variable::Boolean(ref x) => { [INFO] [stderr] 27 | return *x; [INFO] [stderr] 28 | }, [INFO] [stderr] 29 | Variable::Int(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | / match self { [INFO] [stderr] 39 | | &Variable::Char(ref x) => { [INFO] [stderr] 40 | | return *x; [INFO] [stderr] 41 | | }, [INFO] [stderr] ... | [INFO] [stderr] 44 | | } [INFO] [stderr] 45 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 38 | match *self { [INFO] [stderr] 39 | Variable::Char(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | / match self { [INFO] [stderr] 49 | | &Variable::Int(ref x) => { [INFO] [stderr] 50 | | return *x as u8; [INFO] [stderr] 51 | | }, [INFO] [stderr] ... | [INFO] [stderr] 57 | | } [INFO] [stderr] 58 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 48 | match *self { [INFO] [stderr] 49 | Variable::Int(ref x) => { [INFO] [stderr] 50 | return *x as u8; [INFO] [stderr] 51 | }, [INFO] [stderr] 52 | Variable::Byte(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | / match self { [INFO] [stderr] 62 | | &Variable::Int(ref x) => { [INFO] [stderr] 63 | | return *x as i16; [INFO] [stderr] 64 | | }, [INFO] [stderr] ... | [INFO] [stderr] 70 | | } [INFO] [stderr] 71 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 61 | match *self { [INFO] [stderr] 62 | Variable::Int(ref x) => { [INFO] [stderr] 63 | return *x as i16; [INFO] [stderr] 64 | }, [INFO] [stderr] 65 | Variable::Short(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | / match self { [INFO] [stderr] 75 | | &Variable::Boolean(ref x) => { [INFO] [stderr] 76 | | return if *x { 1 } else { 0 }; [INFO] [stderr] 77 | | }, [INFO] [stderr] ... | [INFO] [stderr] 92 | | } [INFO] [stderr] 93 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 74 | match *self { [INFO] [stderr] 75 | Variable::Boolean(ref x) => { [INFO] [stderr] 76 | return if *x { 1 } else { 0 }; [INFO] [stderr] 77 | }, [INFO] [stderr] 78 | Variable::Char(ref x) => { [INFO] [stderr] 79 | return *x as i32; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/types/variable.rs:82:24 [INFO] [stderr] | [INFO] [stderr] 82 | return *x as i32; [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(*x)` [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 i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/reader/types/variable.rs:85:24 [INFO] [stderr] | [INFO] [stderr] 85 | return *x as i32; [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(*x)` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | / match self { [INFO] [stderr] 98 | | &Variable::Long(ref x) => { [INFO] [stderr] 99 | | return *x; [INFO] [stderr] 100 | | }, [INFO] [stderr] ... | [INFO] [stderr] 103 | | } [INFO] [stderr] 104 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 97 | match *self { [INFO] [stderr] 98 | Variable::Long(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | / match self { [INFO] [stderr] 108 | | &Variable::Float(ref x) => { [INFO] [stderr] 109 | | return *x; [INFO] [stderr] 110 | | }, [INFO] [stderr] ... | [INFO] [stderr] 113 | | } [INFO] [stderr] 114 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 107 | match *self { [INFO] [stderr] 108 | Variable::Float(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | / match self { [INFO] [stderr] 118 | | &Variable::Double(ref x) => { [INFO] [stderr] 119 | | return *x; [INFO] [stderr] 120 | | }, [INFO] [stderr] ... | [INFO] [stderr] 123 | | } [INFO] [stderr] 124 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 117 | match *self { [INFO] [stderr] 118 | Variable::Double(ref x) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | / match self { [INFO] [stderr] 128 | | &Variable::Reference(ref class, ref _obj) => { [INFO] [stderr] 129 | | return class.clone(); [INFO] [stderr] 130 | | }, [INFO] [stderr] ... | [INFO] [stderr] 133 | | } [INFO] [stderr] 134 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 127 | match *self { [INFO] [stderr] 128 | Variable::Reference(ref class, ref _obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | / match self { [INFO] [stderr] 138 | | &Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 139 | | return obj.clone(); [INFO] [stderr] 140 | | }, [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#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 137 | match *self { [INFO] [stderr] 138 | Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | / match self { [INFO] [stderr] 148 | | &Variable::Reference(ref _class, ref _obj) => { [INFO] [stderr] 149 | | return true; [INFO] [stderr] 150 | | }, [INFO] [stderr] ... | [INFO] [stderr] 153 | | } [INFO] [stderr] 154 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 147 | match *self { [INFO] [stderr] 148 | Variable::Reference(ref _class, ref _obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | / match self { [INFO] [stderr] 158 | | &Variable::ArrayReference(ref _array) => { [INFO] [stderr] 159 | | return true; [INFO] [stderr] 160 | | }, [INFO] [stderr] ... | [INFO] [stderr] 163 | | } [INFO] [stderr] 164 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 157 | match *self { [INFO] [stderr] 158 | Variable::ArrayReference(ref _array) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | / match self { [INFO] [stderr] 168 | | &Variable::Reference(ref _class, ref _obj) => { [INFO] [stderr] 169 | | return true; [INFO] [stderr] 170 | | }, [INFO] [stderr] ... | [INFO] [stderr] 176 | | } [INFO] [stderr] 177 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 167 | match *self { [INFO] [stderr] 168 | Variable::Reference(ref _class, ref _obj) => { [INFO] [stderr] 169 | return true; [INFO] [stderr] 170 | }, [INFO] [stderr] 171 | Variable::ArrayReference(ref _array) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:180:9 [INFO] [stderr] | [INFO] [stderr] 180 | / match self { [INFO] [stderr] 181 | | &Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 182 | | return obj.is_none(); [INFO] [stderr] 183 | | }, [INFO] [stderr] ... | [INFO] [stderr] 192 | | } [INFO] [stderr] 193 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 180 | match *self { [INFO] [stderr] 181 | Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 182 | return obj.is_none(); [INFO] [stderr] 183 | }, [INFO] [stderr] 184 | Variable::ArrayReference(ref array) => { [INFO] [stderr] 185 | return array.is_null; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:196:9 [INFO] [stderr] | [INFO] [stderr] 196 | / match self { [INFO] [stderr] 197 | | &Variable::ArrayReference(ref array) => { [INFO] [stderr] 198 | | return array.clone(); [INFO] [stderr] 199 | | }, [INFO] [stderr] ... | [INFO] [stderr] 202 | | } [INFO] [stderr] 203 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 196 | match *self { [INFO] [stderr] 197 | Variable::ArrayReference(ref array) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | / match self { [INFO] [stderr] 207 | | &Variable::Long(_x) => { [INFO] [stderr] 208 | | return false; [INFO] [stderr] 209 | | }, [INFO] [stderr] ... | [INFO] [stderr] 215 | | } [INFO] [stderr] 216 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 206 | match *self { [INFO] [stderr] 207 | Variable::Long(_x) => { [INFO] [stderr] 208 | return false; [INFO] [stderr] 209 | }, [INFO] [stderr] 210 | Variable::Double(_y) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:219:16 [INFO] [stderr] | [INFO] [stderr] 219 | return match self { [INFO] [stderr] | ________________^ [INFO] [stderr] 220 | | &Variable::Boolean(_x) => true, [INFO] [stderr] 221 | | &Variable::Byte(_x) => true, [INFO] [stderr] 222 | | &Variable::Short(_x) => true, [INFO] [stderr] ... | [INFO] [stderr] 225 | | _ => false, [INFO] [stderr] 226 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 219 | return match *self { [INFO] [stderr] 220 | Variable::Boolean(_x) => true, [INFO] [stderr] 221 | Variable::Byte(_x) => true, [INFO] [stderr] 222 | Variable::Short(_x) => true, [INFO] [stderr] 223 | Variable::Char(_x) => true, [INFO] [stderr] 224 | Variable::Int(_x) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:229:16 [INFO] [stderr] | [INFO] [stderr] 229 | return match self { [INFO] [stderr] | ________________^ [INFO] [stderr] 230 | | &Variable::Reference(ref _class, ref _x) => false, [INFO] [stderr] 231 | | &Variable::ArrayReference(ref _x) => false, [INFO] [stderr] 232 | | &Variable::InterfaceReference(ref _x) => false, [INFO] [stderr] 233 | | &Variable::UnresolvedReference(ref _x) => false, [INFO] [stderr] 234 | | _ => true, [INFO] [stderr] 235 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 229 | return match *self { [INFO] [stderr] 230 | Variable::Reference(ref _class, ref _x) => false, [INFO] [stderr] 231 | Variable::ArrayReference(ref _x) => false, [INFO] [stderr] 232 | Variable::InterfaceReference(ref _x) => false, [INFO] [stderr] 233 | Variable::UnresolvedReference(ref _x) => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:239:16 [INFO] [stderr] | [INFO] [stderr] 239 | return match self { [INFO] [stderr] | ________________^ [INFO] [stderr] 240 | | &Variable::UnresolvedReference(ref _x) => true, [INFO] [stderr] 241 | | _ => false, [INFO] [stderr] 242 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 239 | return match *self { [INFO] [stderr] 240 | Variable::UnresolvedReference(ref _x) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:246:16 [INFO] [stderr] | [INFO] [stderr] 246 | return match self { [INFO] [stderr] | ________________^ [INFO] [stderr] 247 | | &Variable::UnresolvedReference(ref type_name) => type_name.clone(), [INFO] [stderr] 248 | | _ => panic!("Cannot get unresolved type name of {}", self), [INFO] [stderr] 249 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 246 | return match *self { [INFO] [stderr] 247 | Variable::UnresolvedReference(ref type_name) => type_name.clone(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | / match self { [INFO] [stderr] 254 | | &Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 255 | | if obj.is_none() { [INFO] [stderr] 256 | | let exception = try!(construct_object(runtime, &"java/lang/NullPointerException")); [INFO] [stderr] ... | [INFO] [stderr] 272 | | } [INFO] [stderr] 273 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 253 | match *self { [INFO] [stderr] 254 | Variable::Reference(ref _class, ref obj) => { [INFO] [stderr] 255 | if obj.is_none() { [INFO] [stderr] 256 | let exception = try!(construct_object(runtime, &"java/lang/NullPointerException")); [INFO] [stderr] 257 | return Err(RunnerError::Exception(exception)); [INFO] [stderr] 258 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:278:9 [INFO] [stderr] | [INFO] [stderr] 278 | / match self { [INFO] [stderr] 279 | | &Variable::Byte(_v) => {ret.push('B');}, [INFO] [stderr] 280 | | &Variable::Char(_v) => {ret.push('C');}, [INFO] [stderr] 281 | | &Variable::Double(_v) => {ret.push('D');}, [INFO] [stderr] ... | [INFO] [stderr] 301 | | _ => {panic!("Type not covered");} [INFO] [stderr] 302 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 278 | match *self { [INFO] [stderr] 279 | Variable::Byte(_v) => {ret.push('B');}, [INFO] [stderr] 280 | Variable::Char(_v) => {ret.push('C');}, [INFO] [stderr] 281 | Variable::Double(_v) => {ret.push('D');}, [INFO] [stderr] 282 | Variable::Float(_v) => {ret.push('F');}, [INFO] [stderr] 283 | Variable::Int(_v) => {ret.push('I');}, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:307:16 [INFO] [stderr] | [INFO] [stderr] 307 | return match self { [INFO] [stderr] | ________________^ [INFO] [stderr] 308 | | &Variable::Reference(ref class, ref obj) => [INFO] [stderr] 309 | | if obj.is_some() { [INFO] [stderr] 310 | | format!("Reference of type {} with content {}", class.name, obj.as_ref().unwrap()) [INFO] [stderr] ... | [INFO] [stderr] 324 | | &Variable::UnresolvedReference(ref name) => format!("UnresolvedReference {}", name), [INFO] [stderr] 325 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 307 | return match *self { [INFO] [stderr] 308 | Variable::Reference(ref class, ref obj) => [INFO] [stderr] 309 | if obj.is_some() { [INFO] [stderr] 310 | format!("Reference of type {} with content {}", class.name, obj.as_ref().unwrap()) [INFO] [stderr] 311 | } else { [INFO] [stderr] 312 | format!("", class.name) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/reader/types/variable.rs:329:9 [INFO] [stderr] | [INFO] [stderr] 329 | / match self { [INFO] [stderr] 330 | | &Variable::Reference(ref class, ref obj) => { [INFO] [stderr] 331 | | match class.name.as_str() { [INFO] [stderr] 332 | | "java/lang/String" => { [INFO] [stderr] ... | [INFO] [stderr] 338 | | _ => {panic!("{} is not a string", self);} [INFO] [stderr] 339 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 329 | match *self { [INFO] [stderr] 330 | Variable::Reference(ref class, ref obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/lib.rs:59:39 [INFO] [stderr] | [INFO] [stderr] 59 | let reader = File::open(filename).expect(format!("Could not open {}", filename.display()).as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Could not open {}", filename.display()))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:67:33 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn get_runtime(class_paths: &Vec) -> reader::runner::Runtime { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:71:55 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn get_runtime_bypass_initialisation(class_paths: &Vec) -> Runtime { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:75:100 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn run_method(runtime: &mut reader::runner::Runtime, filename: &Path, method: &str, arguments: &Vec, return_descriptor: &str) -> reader::runner::Variable { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[reader::runner::Variable]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rjvm`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "b9cdb30acb6622c37dd9dcc2fbc3f52482a0538e090f4fcc48db399b2803f5b9"` [INFO] running `"docker" "rm" "-f" "b9cdb30acb6622c37dd9dcc2fbc3f52482a0538e090f4fcc48db399b2803f5b9"` [INFO] [stdout] b9cdb30acb6622c37dd9dcc2fbc3f52482a0538e090f4fcc48db399b2803f5b9