[INFO] fetching crate source2-demo 0.4.2...
[INFO] testing source2-demo-0.4.2 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate source2-demo 0.4.2 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate source2-demo 0.4.2
[INFO] finished tweaking crates.io crate source2-demo 0.4.2
[INFO] tweaked toml for crates.io crate source2-demo 0.4.2 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate source2-demo 0.4.2 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate source2-demo 0.4.2 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b0b95e3183325fb8a6b6b28a3682f77baa3694cbeefdeb3fff2febf938bcae99
[INFO] running `Command { std: "docker" "start" "-a" "b0b95e3183325fb8a6b6b28a3682f77baa3694cbeefdeb3fff2febf938bcae99", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b0b95e3183325fb8a6b6b28a3682f77baa3694cbeefdeb3fff2febf938bcae99", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b0b95e3183325fb8a6b6b28a3682f77baa3694cbeefdeb3fff2febf938bcae99", kill_on_drop: false }`
[INFO] [stdout] b0b95e3183325fb8a6b6b28a3682f77baa3694cbeefdeb3fff2febf938bcae99
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 142f4a1a38814cf5f0be4abe1fb83101256fe91a6415d205484af9717eda10c1
[INFO] running `Command { std: "docker" "start" "-a" "142f4a1a38814cf5f0be4abe1fb83101256fe91a6415d205484af9717eda10c1", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling encode_unicode v1.0.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling cc v1.2.19
[INFO] [stderr]    Compiling bitter v0.9.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling is-terminal v0.4.16
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]    Compiling libmimalloc-sys v0.1.44
[INFO] [stderr]    Compiling prettytable v0.10.0
[INFO] [stderr]    Compiling mimalloc v0.1.48
[INFO] [stderr]    Compiling prost-derive v0.14.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling source2-demo-macros v0.4.2
[INFO] [stderr]    Compiling prost v0.14.1
[INFO] [stderr]    Compiling source2-demo-protobufs v0.4.2
[INFO] [stderr]    Compiling source2-demo v0.4.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.57s
[INFO] running `Command { std: "docker" "inspect" "142f4a1a38814cf5f0be4abe1fb83101256fe91a6415d205484af9717eda10c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "142f4a1a38814cf5f0be4abe1fb83101256fe91a6415d205484af9717eda10c1", kill_on_drop: false }`
[INFO] [stdout] 142f4a1a38814cf5f0be4abe1fb83101256fe91a6415d205484af9717eda10c1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1a59afc905be772247361802b5460f2312836de33a6dc16335a83055561d2ca2
[INFO] running `Command { std: "docker" "start" "-a" "1a59afc905be772247361802b5460f2312836de33a6dc16335a83055561d2ca2", kill_on_drop: false }`
[INFO] [stderr]    Compiling source2-demo v0.4.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.75s
[INFO] running `Command { std: "docker" "inspect" "1a59afc905be772247361802b5460f2312836de33a6dc16335a83055561d2ca2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a59afc905be772247361802b5460f2312836de33a6dc16335a83055561d2ca2", kill_on_drop: false }`
[INFO] [stdout] 1a59afc905be772247361802b5460f2312836de33a6dc16335a83055561d2ca2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e39e608e1a38110e40c4be92b3be9764c817b7c102314e26ef27638453e2f044
[INFO] running `Command { std: "docker" "start" "-a" "e39e608e1a38110e40c4be92b3be9764c817b7c102314e26ef27638453e2f044", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/source2_demo-30785f3c43238dab)
[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 source2_demo
[INFO] [stdout] 
[INFO] [stdout] running 68 tests
[INFO] [stdout] test src/entity/container.rs - entity::container::Entities::get_by_index (line 124) - compile ... ok
[INFO] [stdout] test src/entity/class.rs - entity::class::Classes (line 30) - compile ... ok
[INFO] [stdout] test src/entity/class.rs - entity::class::Classes::get_by_name (line 106) - compile ... ok
[INFO] [stdout] test src/entity/class.rs - entity::class::Classes (line 18) - compile ... ok
[INFO] [stdout] test src/entity/container.rs - entity::container::Entities (line 36) - compile ... ok
[INFO] [stdout] test src/entity/class.rs - entity::class::Classes::get_by_id (line 74) - compile ... ok
[INFO] [stdout] test src/entity/container.rs - entity::container::Entities (line 25) - compile ... ok
[INFO] [stdout] test src/entity/container.rs - entity::container::Entities::get_by_class_id (line 188) - compile ... ok
[INFO] [stdout] test src/entity/container.rs - entity::container::Entities::get_by_class_name (line 220) - compile ... ok
[INFO] [stdout] test src/entity/mod.rs - entity::Entity::get_property_by_name (line 270) ... ignored
[INFO] [stdout] test src/entity/container.rs - entity::container::Entities (line 53) - compile ... ok
[INFO] [stdout] test src/entity/container.rs - entity::container::Entities::get_by_handle (line 158) - compile ... ok
[INFO] [stdout] test src/entity/mod.rs - entity (line 34) - compile ... ok
[INFO] [stdout] test src/entity/class.rs - entity::class::Class (line 164) - compile ... ok
[INFO] [stdout] test src/entity/class.rs - entity::class::Class::name (line 198) - compile ... FAILED
[INFO] [stdout] test src/entity/class.rs - entity::class::Class (line 147) - compile ... ok
[INFO] [stdout] test src/entity/field/value.rs - entity::field::value::FieldValue (line 26) - compile ... ok
[INFO] [stdout] test src/entity/mod.rs - entity::Entity (line 137) - compile ... ok
[INFO] [stdout] test src/entity/class.rs - entity::class::Class::id (line 220) - compile ... FAILED
[INFO] [stdout] test src/entity/mod.rs - entity (line 12) - compile ... ok
[INFO] [stdout] test src/entity/mod.rs - entity::Entity::class (line 234) - compile ... ok
[INFO] [stdout] test src/entity/mod.rs - entity::Entity (line 155) - compile ... ok
[INFO] [stdout] test src/entity/mod.rs - entity::Entity::get_property_by_name (line 350) - compile ... ok
[INFO] [stdout] test src/entity/mod.rs - entity::Entity::get_property_by_name (line 297) - compile ... ok
[INFO] [stdout] test src/entity/mod.rs - entity::Entity (line 172) - compile ... ok
[INFO] [stdout] test src/event/list.rs - event::list::GameEventList (line 16) - compile ... ok
[INFO] [stdout] test src/event/mod.rs - event (line 15) - compile ... ok
[INFO] [stdout] test src/error.rs - error (line 20) - compile ... ok
[INFO] [stdout] test src/event/mod.rs - event::GameEvent<'a>::get_value (line 157) - compile ... ok
[INFO] [stdout] test src/entity/field/value.rs - entity::field::value::FieldValue (line 39) - compile ... ok
[INFO] [stdout] test src/event/mod.rs - event::GameEvent (line 67) - compile ... ok
[INFO] [stdout] test src/event/value.rs - event::value::EventValue (line 10) - compile ... ok
[INFO] [stdout] test src/entity/mod.rs - entity::Entity::get_property_by_name (line 319) - compile ... ok
[INFO] [stdout] test src/parser/context.rs - parser::context::Context::classes (line 123) - compile ... ok
[INFO] [stdout] test src/event/mod.rs - event::GameEvent<'a>::iter (line 129) - compile ... ok
[INFO] [stdout] test src/lib.rs - proto (line 23) - compile ... FAILED
[INFO] [stdout] test src/parser/context.rs - parser::context::Context (line 52) - compile ... ok
[INFO] [stdout] test src/parser/context.rs - parser::context::Context (line 28) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 37) ... FAILED
[INFO] [stdout] test src/parser/mod.rs - parser::Parser (line 29) - compile ... FAILED
[INFO] [stdout] test src/parser/observer.rs - parser::observer::Observer (line 147) - compile ... ok
[INFO] [stdout] test src/parser/mod.rs - parser::Parser<'static,SeekableReader<S>>::from_reader (line 207) - compile ... ok
[INFO] [stdout] test src/parser/demo/runner.rs - parser::demo::runner::DemoRunner::run_to_tick (line 62) - compile ... ok
[INFO] [stdout] test src/parser/mod.rs - parser::Parser<'a,R>::context (line 287) - compile ... ok
[INFO] [stdout] test src/parser/demo/runner.rs - parser::demo::runner::DemoRunner::run_to_end (line 31) - compile ... ok
[INFO] [stdout] test src/parser/mod.rs - parser::Parser (line 57) - compile ... ok
[INFO] [stdout] test src/parser/mod.rs - parser::Parser<'a,R>::register_observer (line 340) - compile ... FAILED
[INFO] [stdout] test src/string_table/container.rs - string_table::container::StringTables (line 13) - compile ... ok
[INFO] [stdout] test src/entity/container.rs - entity::container::Entities::iter (line 82) ... ok
[INFO] [stdout] test src/parser/demo/runner.rs - parser::demo::runner::DemoRunner::jump_to_tick (line 94) - compile ... ok
[INFO] [stdout] test src/parser/mod.rs - parser::Parser<'a,R>::replay_info (line 311) - compile ... ok
[INFO] [stdout] test src/parser/observer.rs - parser::observer::Observer (line 171) - compile ... ok
[INFO] [stdout] test src/parser/mod.rs - parser::Parser<'a,SliceReader<'a>>::new (line 119) - compile ... FAILED
[INFO] [stdout] test src/string_table/mod.rs - string_table (line 17) - compile ... ok
[INFO] [stdout] test src/string_table/mod.rs - string_table::StringTable (line 79) - compile ... ok
[INFO] [stdout] test src/string_table/container.rs - string_table::container::StringTables (line 25) - compile ... ok
[INFO] [stdout] test src/string_table/container.rs - string_table::container::StringTables (line 42) - compile ... ok
[INFO] [stdout] test src/entity/mod.rs - entity::EntityEvents (line 71) - compile ... FAILED
[INFO] [stdout] test src/string_table/row.rs - string_table::row::StringTableRow (line 9) - compile ... ok
[INFO] [stdout] test src/string_table/mod.rs - string_table::StringTable (line 97) - compile ... ok
[INFO] [stdout] test src/string_table/container.rs - string_table::container::StringTables::get_by_id (line 85) - compile ... ok
[INFO] [stdout] test src/string_table/mod.rs - string_table::StringTable::iter (line 138) - compile ... ok
[INFO] [stdout] test src/string_table/mod.rs - string_table::StringTable::get_row_by_index (line 172) - compile ... ok
[INFO] [stdout] test src/lib.rs - prelude (line 39) ... ok
[INFO] [stdout] test src/parser/observer.rs - parser::observer::Observer (line 119) - compile ... FAILED
[INFO] [stdout] test src/string_table/container.rs - string_table::container::StringTables::get_by_name (line 116) - compile ... ok
[INFO] [stdout] test src/string_table/mod.rs - string_table (line 43) - compile ... FAILED
[INFO] [stdout] test src/parser/observer.rs - parser::observer::Interests (line 20) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/entity/class.rs - entity::class::Class::name (line 198) stdout ----
[INFO] [stdout] error[E0425]: cannot find type `Class` in this scope
[INFO] [stdout]    --> src/entity/class.rs:202:20
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn example(class: &Class) {
[INFO] [stdout]     |                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/entity/class.rs - entity::class::Class::id (line 220) stdout ----
[INFO] [stdout] error[E0425]: cannot find type `Class` in this scope
[INFO] [stdout]    --> src/entity/class.rs:224:20
[INFO] [stdout]     |
[INFO] [stdout] 224 | fn example(class: &Class) {
[INFO] [stdout]     |                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - proto (line 23) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `bytes` in this scope
[INFO] [stdout]   --> src/lib.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 | let msg = CDemoFileInfo::decode(bytes)?;
[INFO] [stdout]    |                                 ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 37) stdout ----
[INFO] [stdout] error: custom attribute panicked
[INFO] [stdout]   --> src/lib.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[observer(all)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: message: internal error: entered unreachable code: EDotaUserMessages
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Chat: Observer` is not satisfied
[INFO] [stdout]    --> src/lib.rs:73:32
[INFO] [stdout]     |
[INFO] [stdout]  73 |     parser.register_observer::<Chat>();
[INFO] [stdout]     |            -----------------   ^^^^ unsatisfied trait bound
[INFO] [stdout]     |            |
[INFO] [stdout]     |            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Observer` is not implemented for `Chat`
[INFO] [stdout]    --> src/lib.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | struct Chat;
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `source2_demo::Parser::<'a, R>::register_observer`
[INFO] [stdout]    --> src/parser/mod.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 369 |     pub fn register_observer<T>(&mut self) -> Rc<RefCell<T>>
[INFO] [stdout]     |            ----------------- required by a bound in this associated function
[INFO] [stdout] 370 |     where
[INFO] [stdout] 371 |         T: Observer + Default + 'a,
[INFO] [stdout]     |            ^^^^^^^^ required by this bound in `Parser::<'a, R>::register_observer`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser/mod.rs - parser::Parser (line 29) stdout ----
[INFO] [stdout] error: custom attribute panicked
[INFO] [stdout]   --> src/parser/mod.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[observer]
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: message: internal error: entered unreachable code: EDotaUserMessages
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ChatLogger: Observer` is not satisfied
[INFO] [stdout]    --> src/parser/mod.rs:49:32
[INFO] [stdout]     |
[INFO] [stdout]  49 |     parser.register_observer::<ChatLogger>();
[INFO] [stdout]     |            -----------------   ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |            |
[INFO] [stdout]     |            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Observer` is not implemented for `ChatLogger`
[INFO] [stdout]    --> src/parser/mod.rs:34:1
[INFO] [stdout]     |
[INFO] [stdout]  34 | struct ChatLogger;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `source2_demo::Parser::<'a, R>::register_observer`
[INFO] [stdout]    --> src/parser/mod.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 369 |     pub fn register_observer<T>(&mut self) -> Rc<RefCell<T>>
[INFO] [stdout]     |            ----------------- required by a bound in this associated function
[INFO] [stdout] 370 |     where
[INFO] [stdout] 371 |         T: Observer + Default + 'a,
[INFO] [stdout]     |            ^^^^^^^^ required by this bound in `Parser::<'a, R>::register_observer`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser/mod.rs - parser::Parser<'a,R>::register_observer (line 340) stdout ----
[INFO] [stdout] error: custom attribute panicked
[INFO] [stdout]    --> src/parser/mod.rs:351:1
[INFO] [stdout]     |
[INFO] [stdout] 351 | #[observer]
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: message: internal error: entered unreachable code: EDotaUserMessages
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Stats: Observer` is not satisfied
[INFO] [stdout]    --> src/parser/mod.rs:363:40
[INFO] [stdout]     |
[INFO] [stdout] 363 | let stats = parser.register_observer::<Stats>();
[INFO] [stdout]     |                    -----------------   ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Observer` is not implemented for `Stats`
[INFO] [stdout]    --> src/parser/mod.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | struct Stats {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `source2_demo::Parser::<'a, R>::register_observer`
[INFO] [stdout]    --> src/parser/mod.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 369 |     pub fn register_observer<T>(&mut self) -> Rc<RefCell<T>>
[INFO] [stdout]     |            ----------------- required by a bound in this associated function
[INFO] [stdout] 370 |     where
[INFO] [stdout] 371 |         T: Observer + Default + 'a,
[INFO] [stdout]     |            ^^^^^^^^ required by this bound in `Parser::<'a, R>::register_observer`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser/mod.rs - parser::Parser<'a,SliceReader<'a>>::new (line 119) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `memmap2` in this scope
[INFO] [stdout]    --> src/parser/mod.rs:127:23
[INFO] [stdout]     |
[INFO] [stdout] 127 | let replay = unsafe { memmap2::Mmap::map(&file)? };
[INFO] [stdout]     |                       ^^^^^^^ use of unresolved module or unlinked crate `memmap2`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `memmap2`, use `cargo add memmap2` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/entity/mod.rs - entity::EntityEvents (line 71) stdout ----
[INFO] [stdout] error[E0119]: conflicting implementations of trait `source2_demo::Observer` for type `EntityTracker`
[INFO] [stdout]   --> src/entity/mod.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 82 | #[observer]
[INFO] [stdout]    | ----------- first implementation here
[INFO] [stdout] 83 | #[uses_entities]
[INFO] [stdout] 84 | impl Observer for EntityTracker {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `EntityTracker`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0119`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser/observer.rs - parser::observer::Observer (line 119) stdout ----
[INFO] [stdout] error: custom attribute panicked
[INFO] [stdout]    --> src/parser/observer.rs:130:1
[INFO] [stdout]     |
[INFO] [stdout] 130 | #[observer]
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: message: internal error: entered unreachable code: EDotaUserMessages
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `source2_demo_protobufs::CDotaUserMsgChatMessage`
[INFO] [stdout]    --> src/parser/observer.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 | use source2_demo_protobufs::CDotaUserMsgChatMessage;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `CDotaUserMsgChatMessage` in the root
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/string_table/mod.rs - string_table (line 43) stdout ----
[INFO] [stdout] error[E0599]: no method named `get_by_index` found for reference `&StringTables` in the current scope
[INFO] [stdout]   --> src/string_table/mod.rs:53:33
[INFO] [stdout]    |
[INFO] [stdout] 53 | let table = ctx.string_tables().get_by_index(0)?;
[INFO] [stdout]    |                                 ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_by_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 53 - let table = ctx.string_tables().get_by_index(0)?;
[INFO] [stdout] 53 + let table = ctx.string_tables().get_by_id(0)?;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/entity/class.rs - entity::class::Class::id (line 220)
[INFO] [stdout]     src/entity/class.rs - entity::class::Class::name (line 198)
[INFO] [stdout]     src/entity/mod.rs - entity::EntityEvents (line 71)
[INFO] [stdout]     src/lib.rs - (line 37)
[INFO] [stdout]     src/lib.rs - proto (line 23)
[INFO] [stdout]     src/parser/mod.rs - parser::Parser (line 29)
[INFO] [stdout]     src/parser/mod.rs - parser::Parser<'a,R>::register_observer (line 340)
[INFO] [stdout]     src/parser/mod.rs - parser::Parser<'a,SliceReader<'a>>::new (line 119)
[INFO] [stdout]     src/parser/observer.rs - parser::observer::Observer (line 119)
[INFO] [stdout]     src/string_table/mod.rs - string_table (line 43)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 57 passed; 10 failed; 1 ignored; 0 measured; 0 filtered out; finished in 2.11s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "e39e608e1a38110e40c4be92b3be9764c817b7c102314e26ef27638453e2f044", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e39e608e1a38110e40c4be92b3be9764c817b7c102314e26ef27638453e2f044", kill_on_drop: false }`
[INFO] [stdout] e39e608e1a38110e40c4be92b3be9764c817b7c102314e26ef27638453e2f044
