[INFO] fetching crate secop-derive 0.1.3...
[INFO] testing secop-derive-0.1.3 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1
[INFO] extracting crate secop-derive 0.1.3 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate secop-derive 0.1.3
[INFO] finished tweaking crates.io crate secop-derive 0.1.3
[INFO] tweaked toml for crates.io crate secop-derive 0.1.3 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate secop-derive 0.1.3 on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 12 packages to latest compatible versions
[INFO] [stderr]       Adding darling v0.13.4 (available: v0.23.0)
[INFO] [stderr]       Adding syn v1.0.109 (available: v2.0.117)
[INFO] [stderr]       Adding synstructure v0.12.6 (available: v0.13.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded darling v0.13.4
[INFO] [stderr]   Downloaded darling_core v0.13.4
[INFO] [stderr]   Downloaded darling_macro v0.13.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 795ab56ec23121c2f5a8cd7cf099131bb33e1b4d95a3630507a15e6c41e96a6c
[INFO] running `Command { std: "docker" "start" "-a" "795ab56ec23121c2f5a8cd7cf099131bb33e1b4d95a3630507a15e6c41e96a6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "795ab56ec23121c2f5a8cd7cf099131bb33e1b4d95a3630507a15e6c41e96a6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "795ab56ec23121c2f5a8cd7cf099131bb33e1b4d95a3630507a15e6c41e96a6c", kill_on_drop: false }`
[INFO] [stdout] 795ab56ec23121c2f5a8cd7cf099131bb33e1b4d95a3630507a15e6c41e96a6c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 249b2fae46c11192a2c6a3e9238d4d83590a7d4a83f3099815238dd7534c6f8d
[INFO] running `Command { std: "docker" "start" "-a" "249b2fae46c11192a2c6a3e9238d4d83590a7d4a83f3099815238dd7534c6f8d", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling secop-derive v0.1.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.28s
[INFO] running `Command { std: "docker" "inspect" "249b2fae46c11192a2c6a3e9238d4d83590a7d4a83f3099815238dd7534c6f8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "249b2fae46c11192a2c6a3e9238d4d83590a7d4a83f3099815238dd7534c6f8d", kill_on_drop: false }`
[INFO] [stdout] 249b2fae46c11192a2c6a3e9238d4d83590a7d4a83f3099815238dd7534c6f8d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e3af003b800939a3ad2214ab8030eac615400fd008dc4f0027e76ec3b15663dc
[INFO] running `Command { std: "docker" "start" "-a" "e3af003b800939a3ad2214ab8030eac615400fd008dc4f0027e76ec3b15663dc", kill_on_drop: false }`
[INFO] [stderr]    Compiling secop-derive v0.1.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.36s
[INFO] running `Command { std: "docker" "inspect" "e3af003b800939a3ad2214ab8030eac615400fd008dc4f0027e76ec3b15663dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3af003b800939a3ad2214ab8030eac615400fd008dc4f0027e76ec3b15663dc", kill_on_drop: false }`
[INFO] [stdout] e3af003b800939a3ad2214ab8030eac615400fd008dc4f0027e76ec3b15663dc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] af49ffab87ea56f5bda21fe49d873ca1d6c811379c6d8c0f3fe4a3bd8aea589f
[INFO] running `Command { std: "docker" "start" "-a" "af49ffab87ea56f5bda21fe49d873ca1d6c811379c6d8c0f3fe4a3bd8aea589f", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/secop_derive-9c9f6ed19377f2ba)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests secop_derive
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test src/typedesc.rs - typedesc (line 54) ... FAILED
[INFO] [stdout] test src/typedesc.rs - typedesc (line 41) ... FAILED
[INFO] [stdout] test src/typedesc.rs - typedesc (line 72) ... FAILED
[INFO] [stdout] test src/module.rs - module (line 38) ... FAILED
[INFO] [stdout] test src/module.rs - module (line 60) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/typedesc.rs - typedesc (line 54) stdout ----
[INFO] [stdout] error: expected identifier, found `...`
[INFO] [stdout]   --> src/typedesc.rs:56:21
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct Controller { ... }
[INFO] [stdout]    |        ----------   ^^^ expected identifier
[INFO] [stdout]    |        |
[INFO] [stdout]    |        while parsing this struct
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/typedesc.rs:59:47
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn read_mode(&mut self) -> Result<Mode> { ... }
[INFO] [stdout]    |                                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 59 -     fn read_mode(&mut self) -> Result<Mode> { ... }
[INFO] [stdout] 59 +     fn read_mode(&mut self) -> Result<Mode> { .. }
[INFO] [stdout]    |
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 59 -     fn read_mode(&mut self) -> Result<Mode> { ... }
[INFO] [stdout] 59 +     fn read_mode(&mut self) -> Result<Mode> { ..= }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0586]: inclusive range with no end
[INFO] [stdout]   --> src/typedesc.rs:59:47
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn read_mode(&mut self) -> Result<Mode> { ... }
[INFO] [stdout]    |                                               ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
[INFO] [stdout] help: use `..` instead
[INFO] [stdout]    |
[INFO] [stdout] 59 -     fn read_mode(&mut self) -> Result<Mode> { ... }
[INFO] [stdout] 59 +     fn read_mode(&mut self) -> Result<Mode> { .. }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/typedesc.rs:60:58
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn write_mode(&mut self, mode: Mode) -> Result<()> { ... }
[INFO] [stdout]    |                                                          ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 60 -     fn write_mode(&mut self, mode: Mode) -> Result<()> { ... }
[INFO] [stdout] 60 +     fn write_mode(&mut self, mode: Mode) -> Result<()> { .. }
[INFO] [stdout]    |
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 60 -     fn write_mode(&mut self, mode: Mode) -> Result<()> { ... }
[INFO] [stdout] 60 +     fn write_mode(&mut self, mode: Mode) -> Result<()> { ..= }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0586]: inclusive range with no end
[INFO] [stdout]   --> src/typedesc.rs:60:58
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn write_mode(&mut self, mode: Mode) -> Result<()> { ... }
[INFO] [stdout]    |                                                          ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
[INFO] [stdout] help: use `..` instead
[INFO] [stdout]    |
[INFO] [stdout] 60 -     fn write_mode(&mut self, mode: Mode) -> Result<()> { ... }
[INFO] [stdout] 60 +     fn write_mode(&mut self, mode: Mode) -> Result<()> { .. }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `param` in this scope
[INFO] [stdout]   --> src/typedesc.rs:55:3
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[param(name="mode", datatype="ModeType", default="Mode::PID")]
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Mode` in this scope
[INFO] [stdout]   --> src/typedesc.rs:59:39
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn read_mode(&mut self) -> Result<Mode> { ... }
[INFO] [stdout]    |                                       ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl<Mode> Controller {
[INFO] [stdout]    |     ++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Mode` in this scope
[INFO] [stdout]   --> src/typedesc.rs:60:36
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn write_mode(&mut self, mode: Mode) -> Result<()> { ... }
[INFO] [stdout]    |                                    ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]   --> src/typedesc.rs:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn read_mode(&mut self) -> Result<Mode> { ... }
[INFO] [stdout]    |                                ^^^^^^ ---- supplied 1 generic argument
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                expected 2 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn read_mode(&mut self) -> Result<Mode, E> { ... }
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]   --> src/typedesc.rs:60:45
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn write_mode(&mut self, mode: Mode) -> Result<()> { ... }
[INFO] [stdout]    |                                             ^^^^^^ -- supplied 1 generic argument
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             expected 2 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn write_mode(&mut self, mode: Mode) -> Result<(), E> { ... }
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0425, E0586.
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/typedesc.rs - typedesc (line 41) stdout ----
[INFO] [stdout] error: cannot find derive macro `TypeDesc` in this scope
[INFO] [stdout]   --> src/typedesc.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[derive(TypeDesc, Clone, PartialEq)]
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this derive macro
[INFO] [stdout]    |
[INFO] [stdout] 41 + use secop_derive::TypeDesc;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/typedesc.rs - typedesc (line 72) stdout ----
[INFO] [stdout] error: cannot find derive macro `TypeDesc` in this scope
[INFO] [stdout]   --> src/typedesc.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[derive(TypeDesc, Clone, PartialEq)]
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this derive macro
[INFO] [stdout]    |
[INFO] [stdout] 72 + use secop_derive::TypeDesc;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `datatype` in this scope
[INFO] [stdout]   --> src/typedesc.rs:75:7
[INFO] [stdout]    |
[INFO] [stdout] 75 |     #[datatype="DoubleFrom(0.0)"]
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `datatype` in this scope
[INFO] [stdout]   --> src/typedesc.rs:77:7
[INFO] [stdout]    |
[INFO] [stdout] 77 |     #[datatype="DoubleFrom(0.0)"]
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `datatype` in this scope
[INFO] [stdout]   --> src/typedesc.rs:79:7
[INFO] [stdout]    |
[INFO] [stdout] 79 |     #[datatype="DoubleFrom(0.0)"]
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/module.rs - module (line 38) stdout ----
[INFO] [stdout] error: cannot find derive macro `ModuleBase` in this scope
[INFO] [stdout]   --> src/module.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[derive(ModuleBase)]
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this derive macro
[INFO] [stdout]    |
[INFO] [stdout] 38 + use secop_derive::ModuleBase;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `param` in this scope
[INFO] [stdout]   --> src/module.rs:40:3
[INFO] [stdout]    |
[INFO] [stdout] 40 | #[param(name="status", datatype="StatusType", readonly=True)]
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `param` in this scope
[INFO] [stdout]   --> src/module.rs:41:3
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[param(name="value", datatype="Double", readonly=True)]
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `param` in this scope
[INFO] [stdout]   --> src/module.rs:42:3
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[param(name="target", datatype="Double")]
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `param` in this scope
[INFO] [stdout]   --> src/module.rs:43:3
[INFO] [stdout]    |
[INFO] [stdout] 43 | #[param(name="speed", datatype="DoubleFrom(0.0)", default="1.0")]
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `command` in this scope
[INFO] [stdout]   --> src/module.rs:44:3
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[command(name="stop", argtype="Null", restype="Null")]
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `ModInternals` in this scope
[INFO] [stdout]   --> src/module.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 47 |     internals: ModInternals,
[INFO] [stdout]    |                ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `MotorParamCache` in this scope
[INFO] [stdout]   --> src/module.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     cache: MotorParamCache,
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `SerialPort` in this scope
[INFO] [stdout]   --> src/module.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |     connection: SerialPort,
[INFO] [stdout]    |                 ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 9 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/module.rs - module (line 60) stdout ----
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/module.rs:65:26
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let connection = ...;
[INFO] [stdout]    |                          ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 65 -         let connection = ...;
[INFO] [stdout] 65 +         let connection = ..;
[INFO] [stdout]    |
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 65 -         let connection = ...;
[INFO] [stdout] 65 +         let connection = ..=;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0586]: inclusive range with no end
[INFO] [stdout]   --> src/module.rs:65:26
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let connection = ...;
[INFO] [stdout]    |                          ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
[INFO] [stdout] help: use `..` instead
[INFO] [stdout]    |
[INFO] [stdout] 65 -         let connection = ...;
[INFO] [stdout] 65 +         let connection = ..;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/module.rs:74:47
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn read_value(&mut self) -> Result<f64> { ... }
[INFO] [stdout]    |                                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 74 -     fn read_value(&mut self) -> Result<f64> { ... }
[INFO] [stdout] 74 +     fn read_value(&mut self) -> Result<f64> { .. }
[INFO] [stdout]    |
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 74 -     fn read_value(&mut self) -> Result<f64> { ... }
[INFO] [stdout] 74 +     fn read_value(&mut self) -> Result<f64> { ..= }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0586]: inclusive range with no end
[INFO] [stdout]   --> src/module.rs:74:47
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn read_value(&mut self) -> Result<f64> { ... }
[INFO] [stdout]    |                                               ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
[INFO] [stdout] help: use `..` instead
[INFO] [stdout]    |
[INFO] [stdout] 74 -     fn read_value(&mut self) -> Result<f64> { ... }
[INFO] [stdout] 74 +     fn read_value(&mut self) -> Result<f64> { .. }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/module.rs:75:58
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn write_target(&mut self, tgt: f64) -> Result<()> { ... }
[INFO] [stdout]    |                                                          ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 75 -     fn write_target(&mut self, tgt: f64) -> Result<()> { ... }
[INFO] [stdout] 75 +     fn write_target(&mut self, tgt: f64) -> Result<()> { .. }
[INFO] [stdout]    |
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 75 -     fn write_target(&mut self, tgt: f64) -> Result<()> { ... }
[INFO] [stdout] 75 +     fn write_target(&mut self, tgt: f64) -> Result<()> { ..= }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0586]: inclusive range with no end
[INFO] [stdout]   --> src/module.rs:75:58
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn write_target(&mut self, tgt: f64) -> Result<()> { ... }
[INFO] [stdout]    |                                                          ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
[INFO] [stdout] help: use `..` instead
[INFO] [stdout]    |
[INFO] [stdout] 75 -     fn write_target(&mut self, tgt: f64) -> Result<()> { ... }
[INFO] [stdout] 75 +     fn write_target(&mut self, tgt: f64) -> Result<()> { .. }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]   --> src/module.rs:76:52
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn do_stop(&mut self, arg: ()) -> Result<()> { ... }
[INFO] [stdout]    |                                                    ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]    |
[INFO] [stdout] 76 -     fn do_stop(&mut self, arg: ()) -> Result<()> { ... }
[INFO] [stdout] 76 +     fn do_stop(&mut self, arg: ()) -> Result<()> { .. }
[INFO] [stdout]    |
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout] 76 -     fn do_stop(&mut self, arg: ()) -> Result<()> { ... }
[INFO] [stdout] 76 +     fn do_stop(&mut self, arg: ()) -> Result<()> { ..= }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0586]: inclusive range with no end
[INFO] [stdout]   --> src/module.rs:76:52
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn do_stop(&mut self, arg: ()) -> Result<()> { ... }
[INFO] [stdout]    |                                                    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
[INFO] [stdout] help: use `..` instead
[INFO] [stdout]    |
[INFO] [stdout] 76 -     fn do_stop(&mut self, arg: ()) -> Result<()> { ... }
[INFO] [stdout] 76 +     fn do_stop(&mut self, arg: ()) -> Result<()> { .. }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `Module` in this scope
[INFO] [stdout]   --> src/module.rs:61:6
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl Module for Motor {
[INFO] [stdout]    |      ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Motor` in this scope
[INFO] [stdout]   --> src/module.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl Module for Motor {
[INFO] [stdout]    |                 ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `ModInternals` in this scope
[INFO] [stdout]   --> src/module.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn create(internals: ModInternals) -> Self {
[INFO] [stdout]    |                          ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Motor` in this scope
[INFO] [stdout]   --> src/module.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         Motor { internals, connection }
[INFO] [stdout]    |         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Motor` in this scope
[INFO] [stdout]   --> src/module.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl Motor {
[INFO] [stdout]    |      ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 13 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0422, E0425, E0586.
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/module.rs - module (line 38)
[INFO] [stdout]     src/module.rs - module (line 60)
[INFO] [stdout]     src/typedesc.rs - typedesc (line 41)
[INFO] [stdout]     src/typedesc.rs - typedesc (line 54)
[INFO] [stdout]     src/typedesc.rs - typedesc (line 72)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "af49ffab87ea56f5bda21fe49d873ca1d6c811379c6d8c0f3fe4a3bd8aea589f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "af49ffab87ea56f5bda21fe49d873ca1d6c811379c6d8c0f3fe4a3bd8aea589f", kill_on_drop: false }`
[INFO] [stdout] af49ffab87ea56f5bda21fe49d873ca1d6c811379c6d8c0f3fe4a3bd8aea589f
