[INFO] cloning repository https://github.com/unyt-org/jusix [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/unyt-org/jusix" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Funyt-org%2Fjusix", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Funyt-org%2Fjusix'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9dc71cf2df29e0a734dd5524048b066946901838 [INFO] linting unyt-org/jusix against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Funyt-org%2Fjusix" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-2-tc1/source/.cargo/config [INFO] started tweaking git repo https://github.com/unyt-org/jusix [INFO] finished tweaking git repo https://github.com/unyt-org/jusix [INFO] tweaked toml for git repo https://github.com/unyt-org/jusix written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/unyt-org/jusix on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/unyt-org/jusix already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded new_debug_unreachable v1.0.6 [INFO] [stderr] Downloaded swc_eq_ignore_macros v0.1.4 [INFO] [stderr] Downloaded swc_visit v0.6.2 [INFO] [stderr] Downloaded unicode-id-start v1.2.0 [INFO] [stderr] Downloaded string_enum v0.4.4 [INFO] [stderr] Downloaded better_scoped_tls v0.1.1 [INFO] [stderr] Downloaded stacker v0.1.17 [INFO] [stderr] Downloaded typed-arena v2.0.2 [INFO] [stderr] Downloaded is-macro v0.3.6 [INFO] [stderr] Downloaded smartstring v1.0.1 [INFO] [stderr] Downloaded psm v0.1.22 [INFO] [stderr] Downloaded triomphe v0.1.13 [INFO] [stderr] Downloaded swc_ecma_ast v0.118.2 [INFO] [stderr] Downloaded cc v1.1.15 [INFO] [stderr] Downloaded swc_common v0.37.5 [INFO] [stderr] Downloaded serde_derive v1.0.209 [INFO] [stderr] Downloaded serde v1.0.209 [INFO] [stderr] Downloaded swc_ecma_parser v0.149.1 [INFO] [stderr] Downloaded allocator-api2 v0.2.18 [INFO] [stderr] Downloaded swc_common v0.36.2 [INFO] [stderr] Downloaded phf v0.11.2 [INFO] [stderr] Downloaded syn v2.0.77 [INFO] [stderr] Downloaded hstr v0.2.12 [INFO] [stderr] Downloaded swc_atoms v0.6.7 [INFO] [stderr] Downloaded phf_macros v0.11.2 [INFO] [stderr] Downloaded from_variant v0.1.9 [INFO] [stderr] Downloaded ptr_meta v0.1.4 [INFO] [stderr] Downloaded swc_allocator v0.1.8 [INFO] [stderr] Downloaded swc_ecma_visit v0.103.3 [INFO] [stderr] Downloaded swc_macros_common v0.3.13 [INFO] [stderr] Downloaded unicode-width v0.1.13 [INFO] [stderr] Downloaded ptr_meta_derive v0.1.4 [INFO] [stderr] Downloaded ast_node v0.9.9 [INFO] [stderr] Downloaded phf_generator v0.11.2 [INFO] [stderr] Downloaded phf_shared v0.11.2 [INFO] [stderr] Downloaded swc_ecma_ast v0.117.4 [INFO] [stderr] Downloaded libc v0.2.158 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8b52fce99029adbaebfead791c6a9680149c3252f28a7fbb80b26a126ab37471 [INFO] running `Command { std: "docker" "start" "-a" "8b52fce99029adbaebfead791c6a9680149c3252f28a7fbb80b26a126ab37471", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8b52fce99029adbaebfead791c6a9680149c3252f28a7fbb80b26a126ab37471", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8b52fce99029adbaebfead791c6a9680149c3252f28a7fbb80b26a126ab37471", kill_on_drop: false }` [INFO] [stdout] 8b52fce99029adbaebfead791c6a9680149c3252f28a7fbb80b26a126ab37471 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 53ced7ddef06eef32fd20460490f6a52b73d81aee21e97f0007fb7399f9352c9 [INFO] running `Command { std: "docker" "start" "-a" "53ced7ddef06eef32fd20460490f6a52b73d81aee21e97f0007fb7399f9352c9", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling serde v1.0.209 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Compiling siphasher v0.3.11 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking allocator-api2 v0.2.18 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Checking rustc-hash v1.1.0 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Checking tinyvec v1.8.0 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling cc v1.1.15 [INFO] [stderr] Checking phf_shared v0.11.2 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking pin-project-lite v0.2.14 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Checking better_scoped_tls v0.1.1 [INFO] [stderr] Checking unicode-width v0.1.13 [INFO] [stderr] Compiling Inflector v0.11.4 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking unicode-id-start v1.2.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Compiling smartstring v1.0.1 [INFO] [stderr] Checking typed-arena v2.0.2 [INFO] [stderr] Checking swc_visit v0.6.2 [INFO] [stderr] Compiling phf_generator v0.11.2 [INFO] [stderr] Checking bumpalo v3.16.0 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling psm v0.1.22 [INFO] [stderr] Compiling stacker v0.1.17 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Compiling ptr_meta_derive v0.1.4 [INFO] [stderr] Checking ptr_meta v0.1.4 [INFO] [stderr] Compiling swc_macros_common v0.3.13 [INFO] [stderr] Compiling serde_derive v1.0.209 [INFO] [stderr] Compiling phf_macros v0.11.2 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling swc_eq_ignore_macros v0.1.4 [INFO] [stderr] Compiling from_variant v0.1.9 [INFO] [stderr] Compiling ast_node v0.9.9 [INFO] [stderr] Compiling is-macro v0.3.6 [INFO] [stderr] Compiling string_enum v0.4.4 [INFO] [stderr] Checking phf v0.11.2 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking triomphe v0.1.13 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking hstr v0.2.12 [INFO] [stderr] Checking swc_allocator v0.1.8 [INFO] [stderr] Checking swc_atoms v0.6.7 [INFO] [stderr] Checking swc_common v0.36.2 [INFO] [stderr] Checking swc_common v0.37.5 [INFO] [stderr] Checking swc_ecma_ast v0.118.2 [INFO] [stderr] Checking swc_ecma_ast v0.117.4 [INFO] [stderr] Checking swc_ecma_parser v0.149.1 [INFO] [stderr] Checking swc_ecma_visit v0.103.3 [INFO] [stderr] Checking jusix v0.1.8 (/opt/rustwide/workdir) [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/visitor.rs:52:25 [INFO] [stdout] | [INFO] [stdout] 52 | const DOLLAR_METHODS: [&'static str; 3] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/visitor.rs:52:25 [INFO] [stdout] | [INFO] [stdout] 52 | const DOLLAR_METHODS: [&'static str; 3] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/visitor.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | obj: obj, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `obj` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/visitor.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | obj: obj, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `obj` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `swc_atoms::Atom` [INFO] [stdout] --> src/visitor.rs:99:48 [INFO] [stdout] | [INFO] [stdout] 99 | ... value: m.prop.as_ident().unwrap().sym.clone().into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `m.prop.as_ident().unwrap().sym.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/visitor.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 214 | if collector.variables.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!collector.variables.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/visitor.rs:228:37 [INFO] [stdout] | [INFO] [stdout] 228 | .filter(|v| !(*v == "use")) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `(*v != "use")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `swc_atoms::Atom` [INFO] [stdout] --> src/visitor.rs:99:48 [INFO] [stdout] | [INFO] [stdout] 99 | ... value: m.prop.as_ident().unwrap().sym.clone().into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `m.prop.as_ident().unwrap().sym.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/visitor.rs:311:9 [INFO] [stdout] | [INFO] [stdout] 311 | / return match &call.callee { [INFO] [stdout] 312 | | Callee::Expr(e) => { [INFO] [stdout] 313 | | let arg = TransformVisitor::get_first_arg(&call); [INFO] [stdout] ... | [INFO] [stdout] 376 | | _ => call, [INFO] [stdout] 377 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 311 ~ match &call.callee { [INFO] [stdout] 312 + Callee::Expr(e) => { [INFO] [stdout] 313 + let arg = TransformVisitor::get_first_arg(&call); [INFO] [stdout] 314 + [INFO] [stdout] 315 + return match e.unwrap_parens() { [INFO] [stdout] 316 + Expr::Ident(i) if i.sym.eq_ignore_ascii_case("$") => { [INFO] [stdout] 317 + return match arg.unwrap_parens() { [INFO] [stdout] 318 + // $$ () [INFO] [stdout] 319 + Expr::Lit(_) | Expr::JSXElement(_) | Expr::Ident(_) => CallExpr { [INFO] [stdout] 320 + span: DUMMY_SP, [INFO] [stdout] 321 + callee: Callee::Expr(Box::new(Expr::Ident(Ident::new( [INFO] [stdout] 322 + "$$".into(), [INFO] [stdout] 323 + DUMMY_SP, [INFO] [stdout] 324 + call.ctxt, [INFO] [stdout] 325 + )))), [INFO] [stdout] 326 + args: vec![arg.fold_with(self).into()], [INFO] [stdout] 327 + type_args: Take::dummy(), [INFO] [stdout] 328 + ctxt: call.ctxt, [INFO] [stdout] 329 + }, [INFO] [stdout] 330 + [INFO] [stdout] 331 + // default: wrap in always [INFO] [stdout] 332 + _ => { [INFO] [stdout] 333 + let reactive = self.transform_expr_reactive(arg.clone()); [INFO] [stdout] 334 + match reactive.unwrap_parens() { [INFO] [stdout] 335 + Expr::Call(c) => c.clone(), [INFO] [stdout] 336 + // transform_expr_reactive returns a CallExpr in all cases except for Expr::Arrow(_) | Expr::Fn [INFO] [stdout] 337 + _ => CallExpr { [INFO] [stdout] 338 + span: DUMMY_SP, [INFO] [stdout] 339 + callee: Callee::Expr(Box::new(Expr::Ident(Ident::new( [INFO] [stdout] 340 + "_$".into(), [INFO] [stdout] 341 + DUMMY_SP, [INFO] [stdout] 342 + call.ctxt, [INFO] [stdout] 343 + )))), [INFO] [stdout] 344 + args: vec![ [INFO] [stdout] 345 + match arg.unwrap_parens() { [INFO] [stdout] 346 + Expr::Arrow(_) | Expr::Fn(_) => arg.into(), [INFO] [stdout] 347 + _ => Expr::Arrow(ArrowExpr { [INFO] [stdout] 348 + span: DUMMY_SP, [INFO] [stdout] 349 + params: Take::dummy(), [INFO] [stdout] 350 + body: Box::new(BlockStmtOrExpr::Expr(arg)), [INFO] [stdout] 351 + is_async: false, [INFO] [stdout] 352 + is_generator: false, [INFO] [stdout] 353 + type_params: Take::dummy(), [INFO] [stdout] 354 + return_type: Take::dummy(), [INFO] [stdout] 355 + ctxt: call.ctxt, [INFO] [stdout] 356 + }) [INFO] [stdout] 357 + .into(), [INFO] [stdout] 358 + } [INFO] [stdout] 359 + ], [INFO] [stdout] 360 + type_args: Take::dummy(), [INFO] [stdout] 361 + ctxt: call.ctxt, [INFO] [stdout] 362 + } [INFO] [stdout] 363 + } [INFO] [stdout] 364 + } [INFO] [stdout] 365 + }; [INFO] [stdout] 366 + } [INFO] [stdout] 367 + [INFO] [stdout] 368 + Expr::Ident(i) if i.sym.eq_ignore_ascii_case("run") => { [INFO] [stdout] 369 + // add "use()" to run (()=>{}) [INFO] [stdout] 370 + return TransformVisitor::transform_transferable_call_expr(&call); [INFO] [stdout] 371 + } [INFO] [stdout] 372 + [INFO] [stdout] 373 + _ => call, [INFO] [stdout] 374 + }; [INFO] [stdout] 375 + } [INFO] [stdout] 376 + _ => call, [INFO] [stdout] 377 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/visitor.rs:409:51 [INFO] [stdout] | [INFO] [stdout] 409 | ... Expr::Arrow(a) => return JSXAttr { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 410 | | ... span: node.span, [INFO] [stdout] 411 | | ... name: node.name.clone(), [INFO] [stdout] 412 | | ... value: Some(JSXAttrValue::JSXExprContainer(JSXExprContainer { [INFO] [stdout] ... | [INFO] [stdout] 419 | | ... })), [INFO] [stdout] 420 | | ... }, [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 409 ~ Expr::Arrow(a) => JSXAttr { [INFO] [stdout] 410 + span: node.span, [INFO] [stdout] 411 + name: node.name.clone(), [INFO] [stdout] 412 + value: Some(JSXAttrValue::JSXExprContainer(JSXExprContainer { [INFO] [stdout] 413 + span: DUMMY_SP, [INFO] [stdout] 414 + expr: JSXExpr::Expr(Box::new(Expr::Arrow( [INFO] [stdout] 415 + TransformVisitor::transform_transferable_closure( [INFO] [stdout] 416 + &a, a.ctxt, [INFO] [stdout] 417 + ), [INFO] [stdout] 418 + ))), [INFO] [stdout] 419 + })), [INFO] [stdout] 420 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/visitor.rs:421:50 [INFO] [stdout] | [INFO] [stdout] 421 | ... Expr::Call(c) => return JSXAttr { [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 422 | | ... span: node.span, [INFO] [stdout] 423 | | ... name: node.name.clone(), [INFO] [stdout] 424 | | ... value: Some(JSXAttrValue::JSXExprContainer(JSXExprContainer { [INFO] [stdout] ... | [INFO] [stdout] 429 | | ... })), [INFO] [stdout] 430 | | ... }, [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 421 ~ Expr::Call(c) => JSXAttr { [INFO] [stdout] 422 + span: node.span, [INFO] [stdout] 423 + name: node.name.clone(), [INFO] [stdout] 424 + value: Some(JSXAttrValue::JSXExprContainer(JSXExprContainer { [INFO] [stdout] 425 + span: DUMMY_SP, [INFO] [stdout] 426 + expr: JSXExpr::Expr(Box::new(Expr::Call( [INFO] [stdout] 427 + TransformVisitor::transform_transferable_call_expr(&c), [INFO] [stdout] 428 + ))), [INFO] [stdout] 429 + })), [INFO] [stdout] 430 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/visitor.rs:416:49 [INFO] [stdout] | [INFO] [stdout] 416 | ... &a, a.ctxt, [INFO] [stdout] | ^^ help: change this to: `a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/visitor.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 214 | if collector.variables.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!collector.variables.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/visitor.rs:427:96 [INFO] [stdout] | [INFO] [stdout] 427 | ... TransformVisitor::transform_transferable_call_expr(&c), [INFO] [stdout] | ^^ help: change this to: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/visitor.rs:228:37 [INFO] [stdout] | [INFO] [stdout] 228 | .filter(|v| !(*v == "use")) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `(*v != "use")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/visitor.rs:311:9 [INFO] [stdout] | [INFO] [stdout] 311 | / return match &call.callee { [INFO] [stdout] 312 | | Callee::Expr(e) => { [INFO] [stdout] 313 | | let arg = TransformVisitor::get_first_arg(&call); [INFO] [stdout] ... | [INFO] [stdout] 376 | | _ => call, [INFO] [stdout] 377 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 311 ~ match &call.callee { [INFO] [stdout] 312 + Callee::Expr(e) => { [INFO] [stdout] 313 + let arg = TransformVisitor::get_first_arg(&call); [INFO] [stdout] 314 + [INFO] [stdout] 315 + return match e.unwrap_parens() { [INFO] [stdout] 316 + Expr::Ident(i) if i.sym.eq_ignore_ascii_case("$") => { [INFO] [stdout] 317 + return match arg.unwrap_parens() { [INFO] [stdout] 318 + // $$ () [INFO] [stdout] 319 + Expr::Lit(_) | Expr::JSXElement(_) | Expr::Ident(_) => CallExpr { [INFO] [stdout] 320 + span: DUMMY_SP, [INFO] [stdout] 321 + callee: Callee::Expr(Box::new(Expr::Ident(Ident::new( [INFO] [stdout] 322 + "$$".into(), [INFO] [stdout] 323 + DUMMY_SP, [INFO] [stdout] 324 + call.ctxt, [INFO] [stdout] 325 + )))), [INFO] [stdout] 326 + args: vec![arg.fold_with(self).into()], [INFO] [stdout] 327 + type_args: Take::dummy(), [INFO] [stdout] 328 + ctxt: call.ctxt, [INFO] [stdout] 329 + }, [INFO] [stdout] 330 + [INFO] [stdout] 331 + // default: wrap in always [INFO] [stdout] 332 + _ => { [INFO] [stdout] 333 + let reactive = self.transform_expr_reactive(arg.clone()); [INFO] [stdout] 334 + match reactive.unwrap_parens() { [INFO] [stdout] 335 + Expr::Call(c) => c.clone(), [INFO] [stdout] 336 + // transform_expr_reactive returns a CallExpr in all cases except for Expr::Arrow(_) | Expr::Fn [INFO] [stdout] 337 + _ => CallExpr { [INFO] [stdout] 338 + span: DUMMY_SP, [INFO] [stdout] 339 + callee: Callee::Expr(Box::new(Expr::Ident(Ident::new( [INFO] [stdout] 340 + "_$".into(), [INFO] [stdout] 341 + DUMMY_SP, [INFO] [stdout] 342 + call.ctxt, [INFO] [stdout] 343 + )))), [INFO] [stdout] 344 + args: vec![ [INFO] [stdout] 345 + match arg.unwrap_parens() { [INFO] [stdout] 346 + Expr::Arrow(_) | Expr::Fn(_) => arg.into(), [INFO] [stdout] 347 + _ => Expr::Arrow(ArrowExpr { [INFO] [stdout] 348 + span: DUMMY_SP, [INFO] [stdout] 349 + params: Take::dummy(), [INFO] [stdout] 350 + body: Box::new(BlockStmtOrExpr::Expr(arg)), [INFO] [stdout] 351 + is_async: false, [INFO] [stdout] 352 + is_generator: false, [INFO] [stdout] 353 + type_params: Take::dummy(), [INFO] [stdout] 354 + return_type: Take::dummy(), [INFO] [stdout] 355 + ctxt: call.ctxt, [INFO] [stdout] 356 + }) [INFO] [stdout] 357 + .into(), [INFO] [stdout] 358 + } [INFO] [stdout] 359 + ], [INFO] [stdout] 360 + type_args: Take::dummy(), [INFO] [stdout] 361 + ctxt: call.ctxt, [INFO] [stdout] 362 + } [INFO] [stdout] 363 + } [INFO] [stdout] 364 + } [INFO] [stdout] 365 + }; [INFO] [stdout] 366 + } [INFO] [stdout] 367 + [INFO] [stdout] 368 + Expr::Ident(i) if i.sym.eq_ignore_ascii_case("run") => { [INFO] [stdout] 369 + // add "use()" to run (()=>{}) [INFO] [stdout] 370 + return TransformVisitor::transform_transferable_call_expr(&call); [INFO] [stdout] 371 + } [INFO] [stdout] 372 + [INFO] [stdout] 373 + _ => call, [INFO] [stdout] 374 + }; [INFO] [stdout] 375 + } [INFO] [stdout] 376 + _ => call, [INFO] [stdout] 377 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/visitor.rs:409:51 [INFO] [stdout] | [INFO] [stdout] 409 | ... Expr::Arrow(a) => return JSXAttr { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 410 | | ... span: node.span, [INFO] [stdout] 411 | | ... name: node.name.clone(), [INFO] [stdout] 412 | | ... value: Some(JSXAttrValue::JSXExprContainer(JSXExprContainer { [INFO] [stdout] ... | [INFO] [stdout] 419 | | ... })), [INFO] [stdout] 420 | | ... }, [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 409 ~ Expr::Arrow(a) => JSXAttr { [INFO] [stdout] 410 + span: node.span, [INFO] [stdout] 411 + name: node.name.clone(), [INFO] [stdout] 412 + value: Some(JSXAttrValue::JSXExprContainer(JSXExprContainer { [INFO] [stdout] 413 + span: DUMMY_SP, [INFO] [stdout] 414 + expr: JSXExpr::Expr(Box::new(Expr::Arrow( [INFO] [stdout] 415 + TransformVisitor::transform_transferable_closure( [INFO] [stdout] 416 + &a, a.ctxt, [INFO] [stdout] 417 + ), [INFO] [stdout] 418 + ))), [INFO] [stdout] 419 + })), [INFO] [stdout] 420 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/visitor.rs:421:50 [INFO] [stdout] | [INFO] [stdout] 421 | ... Expr::Call(c) => return JSXAttr { [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 422 | | ... span: node.span, [INFO] [stdout] 423 | | ... name: node.name.clone(), [INFO] [stdout] 424 | | ... value: Some(JSXAttrValue::JSXExprContainer(JSXExprContainer { [INFO] [stdout] ... | [INFO] [stdout] 429 | | ... })), [INFO] [stdout] 430 | | ... }, [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 421 ~ Expr::Call(c) => JSXAttr { [INFO] [stdout] 422 + span: node.span, [INFO] [stdout] 423 + name: node.name.clone(), [INFO] [stdout] 424 + value: Some(JSXAttrValue::JSXExprContainer(JSXExprContainer { [INFO] [stdout] 425 + span: DUMMY_SP, [INFO] [stdout] 426 + expr: JSXExpr::Expr(Box::new(Expr::Call( [INFO] [stdout] 427 + TransformVisitor::transform_transferable_call_expr(&c), [INFO] [stdout] 428 + ))), [INFO] [stdout] 429 + })), [INFO] [stdout] 430 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/visitor.rs:416:49 [INFO] [stdout] | [INFO] [stdout] 416 | ... &a, a.ctxt, [INFO] [stdout] | ^^ help: change this to: `a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/visitor.rs:427:96 [INFO] [stdout] | [INFO] [stdout] 427 | ... TransformVisitor::transform_transferable_call_expr(&c), [INFO] [stdout] | ^^ help: change this to: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 39.67s [INFO] running `Command { std: "docker" "inspect" "53ced7ddef06eef32fd20460490f6a52b73d81aee21e97f0007fb7399f9352c9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "53ced7ddef06eef32fd20460490f6a52b73d81aee21e97f0007fb7399f9352c9", kill_on_drop: false }` [INFO] [stdout] 53ced7ddef06eef32fd20460490f6a52b73d81aee21e97f0007fb7399f9352c9