[INFO] fetching crate gaia-types 0.0.3...
[INFO] testing gaia-types-0.0.3 against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] extracting crate gaia-types 0.0.3 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate gaia-types 0.0.3
[INFO] finished tweaking crates.io crate gaia-types 0.0.3
[INFO] tweaked toml for crates.io crate gaia-types 0.0.3 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate gaia-types 0.0.3 on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate gaia-types 0.0.3 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cb5680b09baf814fb2f9bf37fe7de26bb61e04d25ef549c44656ecb357f590ff
[INFO] running `Command { std: "docker" "start" "-a" "cb5680b09baf814fb2f9bf37fe7de26bb61e04d25ef549c44656ecb357f590ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cb5680b09baf814fb2f9bf37fe7de26bb61e04d25ef549c44656ecb357f590ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cb5680b09baf814fb2f9bf37fe7de26bb61e04d25ef549c44656ecb357f590ff", kill_on_drop: false }`
[INFO] [stdout] cb5680b09baf814fb2f9bf37fe7de26bb61e04d25ef549c44656ecb357f590ff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 46816a02d2139a169be261bac57d0910785c4a5cbbcff9231e9d268f676bbcfd
[INFO] running `Command { std: "docker" "start" "-a" "46816a02d2139a169be261bac57d0910785c4a5cbbcff9231e9d268f676bbcfd", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling source-map v0.15.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling zerovec v0.11.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.3
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling gaia-types v0.0.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/errors/mod.rs:503:5
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub fn unreachable() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:3:9
[INFO] [stdout]     |
[INFO] [stdout]   3 | #![warn(missing_docs, rustdoc::missing_crate_level_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/reader/mod.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn take_errors(&mut self) -> Vec<GaiaError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.26s
[INFO] running `Command { std: "docker" "inspect" "46816a02d2139a169be261bac57d0910785c4a5cbbcff9231e9d268f676bbcfd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "46816a02d2139a169be261bac57d0910785c4a5cbbcff9231e9d268f676bbcfd", kill_on_drop: false }`
[INFO] [stdout] 46816a02d2139a169be261bac57d0910785c4a5cbbcff9231e9d268f676bbcfd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1c6d6dfff8c9893c2ca2522315dce5485250fbeb90db46e11691689667fa3dfa
[INFO] running `Command { std: "docker" "start" "-a" "1c6d6dfff8c9893c2ca2522315dce5485250fbeb90db46e11691689667fa3dfa", kill_on_drop: false }`
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/errors/mod.rs:503:5
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub fn unreachable() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:3:9
[INFO] [stdout]     |
[INFO] [stdout]   3 | #![warn(missing_docs, rustdoc::missing_crate_level_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/reader/mod.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn take_errors(&mut self) -> Vec<GaiaError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gaia-types v0.0.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/errors/mod.rs:503:5
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub fn unreachable() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:3:9
[INFO] [stdout]     |
[INFO] [stdout]   3 | #![warn(missing_docs, rustdoc::missing_crate_level_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/reader/mod.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn take_errors(&mut self) -> Vec<GaiaError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.86s
[INFO] running `Command { std: "docker" "inspect" "1c6d6dfff8c9893c2ca2522315dce5485250fbeb90db46e11691689667fa3dfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1c6d6dfff8c9893c2ca2522315dce5485250fbeb90db46e11691689667fa3dfa", kill_on_drop: false }`
[INFO] [stdout] 1c6d6dfff8c9893c2ca2522315dce5485250fbeb90db46e11691689667fa3dfa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] fde312e890243d4865a0e90214f0c7f30b9268516729e7bac1d3d8634dc57030
[INFO] running `Command { std: "docker" "start" "-a" "fde312e890243d4865a0e90214f0c7f30b9268516729e7bac1d3d8634dc57030", kill_on_drop: false }`
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/errors/mod.rs:503:5
[INFO] [stderr]     |
[INFO] [stderr] 503 |     pub fn unreachable() -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]    --> src/lib.rs:3:9
[INFO] [stderr]     |
[INFO] [stderr]   3 | #![warn(missing_docs, rustdoc::missing_crate_level_docs)]
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/reader/mod.rs:86:5
[INFO] [stderr]    |
[INFO] [stderr] 86 |     pub fn take_errors(&mut self) -> Vec<GaiaError> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `gaia-types` (lib) generated 2 warnings
[INFO] [stderr] warning: `gaia-types` (lib test) generated 2 warnings (2 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.38s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gaia_types-e210e4412328a2ed)
[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 gaia_types
[INFO] [stdout] 
[INFO] [stdout] running 76 tests
[INFO] [stdout] test src/errors/../readme.md - errors::diagnostics (line 87) ... FAILED
[INFO] [stdout] test src/assembler/readme.md - assembler (line 22) ... FAILED
[INFO] [stdout] test src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::add_tracing (line 118) ... FAILED
[INFO] [stdout] test src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics (line 20) ... FAILED
[INFO] [stdout] test src/errors/../readme.md - errors::diagnostics (line 105) ... ok
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::invalid_instruction (line 253) ... ok
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::config_error (line 411) ... ok
[INFO] [stdout] test src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::should_halt (line 144) ... ok
[INFO] [stdout] test src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::failure (line 76) ... FAILED
[INFO] [stdout] test src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::add_warning (line 96) ... FAILED
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::compilation_failed (line 448) ... ok
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::adapter_error (line 381) ... ok
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::invalid_range (line 298) ... ok
[INFO] [stdout] test src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::success (line 57) ... ok
[INFO] [stdout] test src/helpers/compilation_target/readme.md - helpers::compilation_target (line 85) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::add_token (line 424) ... ignored
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::add_token_at_current (line 446) ... ignored
[INFO] [stdout] test src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::try_value (line 168) ... ok
[INFO] [stdout] test src/assembler/readme.md - assembler (line 41) ... ok
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::platform_unsupported (line 396) ... ok
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::syntax_error (line 200) ... ok
[INFO] [stdout] test src/helpers/compilation_target/readme.md - helpers::compilation_target (line 117) ... FAILED
[INFO] [stdout] test src/helpers/readme.md - helpers (line 47) ... FAILED
[INFO] [stdout] test src/helpers/compilation_target/mod.rs - helpers::compilation_target::CompilationTarget (line 24) ... FAILED
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::not_implemented (line 365) ... ok
[INFO] [stdout] test src/helpers/readme.md - helpers (line 36) ... FAILED
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::unsupported_architecture (line 275) ... ok
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_char (line 259) ... FAILED
[INFO] [stdout] test src/errors/readme.md - errors (line 45) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::advance_by_char (line 477) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_str (line 357) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::advance_by_str (line 518) ... FAILED
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::io_error (line 224) ... ok
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::get_position (line 123) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_char (line 298) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_char (line 272) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::get_token (line 834) ... FAILED
[INFO] [stdout] test src/errors/readme.md - errors (line 27) ... ok
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::new (line 93) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::failure (line 954) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::mark_position (line 153) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::peek (line 183) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::next_char (line 225) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::update_last_token_type (line 558) ... FAILED
[INFO] [stdout] test src/lexer/readme.md - lexer (line 31) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::mark_error (line 861) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::token_count (line 800) ... FAILED
[INFO] [stdout] test src/errors/mod.rs - errors::GaiaError::unsupported_target (line 425) ... ok
[INFO] [stdout] test src/lexer/readme.md - lexer (line 56) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState<'input,T>::success (line 910) ... FAILED
[INFO] [stdout] test src/lexer/readme.md - lexer (line 45) ... FAILED
[INFO] [stdout] test src/parser/readme.md - parser (line 64) ... FAILED
[INFO] [stdout] test src/parser/readme.md - parser (line 47) ... FAILED
[INFO] [stdout] test src/parser/readme.md - parser (line 32) ... FAILED
[INFO] [stdout] test src/lexer/mod.rs - lexer::LexerState (line 39) ... FAILED
[INFO] [stdout] test src/reader/readme.md - reader (line 56) ... FAILED
[INFO] [stdout] test src/readme.md - (line 87) ... FAILED
[INFO] [stdout] test src/reader/readme.md - reader (line 29) ... FAILED
[INFO] [stdout] test src/reader/readme.md - reader (line 43) ... FAILED
[INFO] [stdout] test src/writer/mod.rs - writer::TextWriter<W>::finish (line 229) ... FAILED
[INFO] [stdout] test src/writer/mod.rs - writer::TextWriter<W>::write_line (line 126) ... FAILED
[INFO] [stdout] test src/writer/mod.rs - writer::TextWriter (line 17) ... FAILED
[INFO] [stdout] test src/writer/mod.rs - writer::TextWriter<W>::indent (line 74) ... FAILED
[INFO] [stdout] test src/reader/token_stream.rs - reader::token_stream::TokenStream<'input,T>::new (line 41) ... ok
[INFO] [stdout] test src/writer/readme.md - writer (line 103) ... FAILED
[INFO] [stdout] test src/writer/readme.md - writer (line 123) ... FAILED
[INFO] [stdout] test src/writer/mod.rs - writer::TextWriter<W>::write_indent (line 178) ... FAILED
[INFO] [stdout] test src/readme.md - (line 105) ... ok
[INFO] [stdout] test src/writer/readme.md - writer (line 47) ... FAILED
[INFO] [stdout] test src/writer/mod.rs - writer::TextWriter<W>::new (line 57) ... FAILED
[INFO] [stdout] test src/writer/mod.rs - writer::TextWriter<W>::indent_level (line 204) ... FAILED
[INFO] [stdout] test src/writer/readme.md - writer (line 61) ... FAILED
[INFO] [stdout] test src/writer/mod.rs - writer::TextWriter<W>::write (line 154) ... FAILED
[INFO] [stdout] test src/writer/readme.md - writer (line 26) ... FAILED
[INFO] [stdout] test src/writer/readme.md - writer (line 11) ... FAILED
[INFO] [stdout] test src/reader/token_stream.rs - reader::token_stream::TokenStream<'input,T>::get_text (line 140) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/errors/../readme.md - errors::diagnostics (line 87) stdout ----
[INFO] [stdout] error[E0425]: cannot find type `Level` in this scope
[INFO] [stdout]   --> src/errors/../readme.md:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 |     level: Level,           // 错误级别（错误、警告、信息等）
[INFO] [stdout]    |            ^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 87 + use tracing::Level;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `GaiaErrorKind` in this scope
[INFO] [stdout]   --> src/errors/../readme.md:90:15
[INFO] [stdout]    |
[INFO] [stdout] 90 |     kind: Box<GaiaErrorKind>, // 具体的错误类型
[INFO] [stdout]    |               ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]    |
[INFO] [stdout] 87 + use gaia_types::GaiaErrorKind;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 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/assembler/readme.md - assembler (line 22) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `gaia_types::BinaryAssembler`
[INFO] [stdout]   --> src/assembler/readme.md:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use gaia_types::BinaryAssembler;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `BinaryAssembler` in the root
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::add_tracing (line 118) stdout ----
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `SourceLocation` in the current scope
[INFO] [stdout]    --> src/errors/diagnostics.rs:124:83
[INFO] [stdout]     |
[INFO] [stdout] 124 |     GaiaError::syntax_error("Entering function parse_expression", SourceLocation::new(1, 1));
[INFO] [stdout]     |                                                                                   ^^^ function or associated item not found in `SourceLocation`
[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] ---- src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics (line 20) stdout ----
[INFO] [stdout] error[E0603]: module `errors` is private
[INFO] [stdout]   --> src/errors/diagnostics.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 | use gaia_types::errors::diagnostics::GaiaDiagnostics;
[INFO] [stdout]    |                 ^^^^^^  ----------- module `diagnostics` is not publicly re-exported
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 private module
[INFO] [stdout]    |
[INFO] [stdout] note: the module `errors` is defined here
[INFO] [stdout]   --> src/lib.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | mod errors;
[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 E0603`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::failure (line 76) stdout ----
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/errors/diagnostics.rs:80:55
[INFO] [stdout]     |
[INFO] [stdout]  80 | let error = GaiaError::syntax_error("Invalid syntax", (1, 1));
[INFO] [stdout]     |             -----------------------                   ^^^^^^ expected `SourceLocation`, found `({integer}, {integer})`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `SourceLocation`
[INFO] [stdout]                 found tuple `({integer}, {integer})`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/errors/mod.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn syntax_error(message: impl ToString, location: SourceLocation) -> Self {
[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 E0308`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::add_warning (line 96) stdout ----
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/errors/diagnostics.rs:101:62
[INFO] [stdout]     |
[INFO] [stdout] 101 | let warning = GaiaError::syntax_error("Unused variable 'x'", (1, 1));
[INFO] [stdout]     |               -----------------------                        ^^^^^^ expected `SourceLocation`, found `({integer}, {integer})`
[INFO] [stdout]     |               |
[INFO] [stdout]     |               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `SourceLocation`
[INFO] [stdout]                 found tuple `({integer}, {integer})`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/errors/mod.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn syntax_error(message: impl ToString, location: SourceLocation) -> Self {
[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 E0308`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/helpers/compilation_target/readme.md - helpers::compilation_target (line 85) stdout ----
[INFO] [stdout] error: expected one of `!`, `(`, `+`, `::`, `<`, `where`, or `{`, found `}`
[INFO] [stdout]   --> src/helpers/compilation_target/readme.md:88:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn from_machine_type(machine: u16) -> Self
[INFO] [stdout]    |        -----------------                      - expected one of 7 possible tokens
[INFO] [stdout]    |        |
[INFO] [stdout]    |        while parsing this `fn`
[INFO] [stdout] 88 | } _doctest_main_src_helpers_compilation_target_readme_md_85_0() }
[INFO] [stdout]    | ^ unexpected token
[INFO] [stdout] 
[INFO] [stdout] error: free function without a body
[INFO] [stdout]   --> src/helpers/compilation_target/readme.md:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn from_machine_type(machine: u16) -> Self
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- help: provide a definition for the function: `{ <body> }`
[INFO] [stdout] 
[INFO] [stdout] error[E0411]: cannot find type `Self` in this scope
[INFO] [stdout]   --> src/helpers/compilation_target/readme.md:87:43
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn from_machine_type(machine: u16) -> Self
[INFO] [stdout]    |        -----------------                  ^^^^ `Self` is only available in impls, traits, and type definitions
[INFO] [stdout]    |        |
[INFO] [stdout]    |        `Self` not allowed in a function
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0411`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/helpers/compilation_target/readme.md - helpers::compilation_target (line 117) stdout ----
[INFO] [stdout] error[E0603]: module `compilation_target` is private
[INFO] [stdout]    --> src/helpers/compilation_target/readme.md:119:26
[INFO] [stdout]     |
[INFO] [stdout] 119 | use gaia_types::helpers::compilation_target::{CompilationTarget, Architecture, AbiCompatible, ApiCompatible};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^ private module
[INFO] [stdout]     |
[INFO] [stdout] note: the module `compilation_target` is defined here
[INFO] [stdout]    --> src/helpers/mod.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | mod compilation_target;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `compilation_target` is private
[INFO] [stdout]    --> src/helpers/compilation_target/readme.md:119:26
[INFO] [stdout]     |
[INFO] [stdout] 119 | use gaia_types::helpers::compilation_target::{CompilationTarget, Architecture, AbiCompatible, ApiCompatible};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^ private module
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum instead:
[INFO] [stdout]       gaia_types::helpers::Architecture
[INFO] [stdout]    --> src/helpers/compilation_target/readme.md:119:66
[INFO] [stdout]     |
[INFO] [stdout] 119 | use gaia_types::helpers::compilation_target::{CompilationTarget, Architecture, AbiCompatible, ApiCompatible};
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^
[INFO] [stdout] note: the module `compilation_target` is defined here
[INFO] [stdout]    --> src/helpers/mod.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | mod compilation_target;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `compilation_target` is private
[INFO] [stdout]    --> src/helpers/compilation_target/readme.md:119:26
[INFO] [stdout]     |
[INFO] [stdout] 119 | use gaia_types::helpers::compilation_target::{CompilationTarget, Architecture, AbiCompatible, ApiCompatible};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^ private module
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum instead:
[INFO] [stdout]       gaia_types::helpers::AbiCompatible
[INFO] [stdout]    --> src/helpers/compilation_target/readme.md:119:80
[INFO] [stdout]     |
[INFO] [stdout] 119 | use gaia_types::helpers::compilation_target::{CompilationTarget, Architecture, AbiCompatible, ApiCompatible};
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^
[INFO] [stdout] note: the module `compilation_target` is defined here
[INFO] [stdout]    --> src/helpers/mod.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | mod compilation_target;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `compilation_target` is private
[INFO] [stdout]    --> src/helpers/compilation_target/readme.md:119:26
[INFO] [stdout]     |
[INFO] [stdout] 119 | use gaia_types::helpers::compilation_target::{CompilationTarget, Architecture, AbiCompatible, ApiCompatible};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^ private module
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum instead:
[INFO] [stdout]       gaia_types::helpers::ApiCompatible
[INFO] [stdout]    --> src/helpers/compilation_target/readme.md:119:95
[INFO] [stdout]     |
[INFO] [stdout] 119 | use gaia_types::helpers::compilation_target::{CompilationTarget, Architecture, AbiCompatible, ApiCompatible};
[INFO] [stdout]     |                                                                                               ^^^^^^^^^^^^^
[INFO] [stdout] note: the module `compilation_target` is defined here
[INFO] [stdout]    --> src/helpers/mod.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | mod compilation_target;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0603`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/helpers/readme.md - helpers (line 47) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `gaia_types::helpers::dwarf`
[INFO] [stdout]   --> src/helpers/readme.md:49:26
[INFO] [stdout]    |
[INFO] [stdout] 49 | use gaia_types::helpers::dwarf::DwarfInfo;
[INFO] [stdout]    |                          ^^^^^ could not find `dwarf` in `helpers`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `section_data` in this scope
[INFO] [stdout]   --> src/helpers/readme.md:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | let dwarf_info = DwarfInfo::from_custom_section(section_data)?;
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0432.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/helpers/compilation_target/mod.rs - helpers::compilation_target::CompilationTarget (line 24) stdout ----
[INFO] [stdout] error[E0603]: module `compilation_target` is private
[INFO] [stdout]   --> src/helpers/compilation_target/mod.rs:26:26
[INFO] [stdout]    |
[INFO] [stdout] 26 | use gaia_types::helpers::compilation_target::{
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^ private module
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum instead:
[INFO] [stdout]       gaia_types::helpers::AbiCompatible
[INFO] [stdout]   --> src/helpers/compilation_target/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     AbiCompatible, ApiCompatible, Architecture, CompilationTarget,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] note: the module `compilation_target` is defined here
[INFO] [stdout]   --> src/helpers/mod.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | mod compilation_target;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `compilation_target` is private
[INFO] [stdout]   --> src/helpers/compilation_target/mod.rs:26:26
[INFO] [stdout]    |
[INFO] [stdout] 26 | use gaia_types::helpers::compilation_target::{
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^ private module
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum instead:
[INFO] [stdout]       gaia_types::helpers::ApiCompatible
[INFO] [stdout]   --> src/helpers/compilation_target/mod.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |     AbiCompatible, ApiCompatible, Architecture, CompilationTarget,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^
[INFO] [stdout] note: the module `compilation_target` is defined here
[INFO] [stdout]   --> src/helpers/mod.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | mod compilation_target;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `compilation_target` is private
[INFO] [stdout]   --> src/helpers/compilation_target/mod.rs:26:26
[INFO] [stdout]    |
[INFO] [stdout] 26 | use gaia_types::helpers::compilation_target::{
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^ private module
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum instead:
[INFO] [stdout]       gaia_types::helpers::Architecture
[INFO] [stdout]   --> src/helpers/compilation_target/mod.rs:27:35
[INFO] [stdout]    |
[INFO] [stdout] 27 |     AbiCompatible, ApiCompatible, Architecture, CompilationTarget,
[INFO] [stdout]    |                                   ^^^^^^^^^^^^
[INFO] [stdout] note: the module `compilation_target` is defined here
[INFO] [stdout]   --> src/helpers/mod.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | mod compilation_target;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `compilation_target` is private
[INFO] [stdout]   --> src/helpers/compilation_target/mod.rs:26:26
[INFO] [stdout]    |
[INFO] [stdout] 26 | use gaia_types::helpers::compilation_target::{
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^ private module
[INFO] [stdout]    |
[INFO] [stdout] note: the module `compilation_target` is defined here
[INFO] [stdout]   --> src/helpers/mod.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | mod compilation_target;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0603`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/helpers/readme.md - helpers (line 36) stdout ----
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `CompilationTarget` in the current scope
[INFO] [stdout]   --> src/helpers/readme.md:40:33
[INFO] [stdout]    |
[INFO] [stdout] 40 | let target = CompilationTarget::new()
[INFO] [stdout]    |                                 ^^^ function or associated item not found in `CompilationTarget`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `ne` with a similar name, but with different arguments
[INFO] [stdout]   --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/cmp.rs:264:4
[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] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_char (line 259) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff08}
[INFO] [stdout]    --> src/lexer/mod.rs:267:16
[INFO] [stdout]     |
[INFO] [stdout] 267 | "😀" -> 列号: 1, 3（跳过 2，因为代理对占用 2 个码元）
[INFO] [stdout]     |                   ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '（' (Fullwidth Left Parenthesis) looks like '(' (Left Parenthesis), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 267 - "😀" -> 列号: 1, 3（跳过 2，因为代理对占用 2 个码元）
[INFO] [stdout] 267 + "😀" -> 列号: 1, 3(跳过 2，因为代理对占用 2 个码元）
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff0c}
[INFO] [stdout]    --> src/lexer/mod.rs:267:21
[INFO] [stdout]     |
[INFO] [stdout] 267 | "😀" -> 列号: 1, 3（跳过 2，因为代理对占用 2 个码元）
[INFO] [stdout]     |                           ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '，' (Fullwidth Comma) looks like ',' (Comma), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 267 - "😀" -> 列号: 1, 3（跳过 2，因为代理对占用 2 个码元）
[INFO] [stdout] 267 + "😀" -> 列号: 1, 3（跳过 2,因为代理对占用 2 个码元）
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff09}
[INFO] [stdout]    --> src/lexer/mod.rs:267:35
[INFO] [stdout]     |
[INFO] [stdout] 267 | "😀" -> 列号: 1, 3（跳过 2，因为代理对占用 2 个码元）
[INFO] [stdout]     |                                                    ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '）' (Fullwidth Right Parenthesis) looks like ')' (Right Parenthesis), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 267 - "😀" -> 列号: 1, 3（跳过 2，因为代理对占用 2 个码元）
[INFO] [stdout] 267 + "😀" -> 列号: 1, 3（跳过 2，因为代理对占用 2 个码元)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: expected item, found `"abc"`
[INFO] [stdout]    --> src/lexer/mod.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | "abc" -> 列号: 1, 2, 3
[INFO] [stdout]     | ^^^^^ expected item
[INFO] [stdout]     |
[INFO] [stdout]     = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/errors/readme.md - errors (line 45) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `source` in this scope
[INFO] [stdout]   --> src/errors/readme.md:52:34
[INFO] [stdout]    |
[INFO] [stdout] 52 | if let Err(error) = parse_source(source) {
[INFO] [stdout]    |                                  ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `GaiaDiagnostics<T>` in the current scope
[INFO] [stdout]   --> src/errors/readme.md:49:40
[INFO] [stdout]    |
[INFO] [stdout] 49 | let mut diagnostics = GaiaDiagnostics::new();
[INFO] [stdout]    |                                        ^^^ function or associated item not found in `GaiaDiagnostics<_>`
[INFO] [stdout]    |
[INFO] [stdout] note: if you're trying to build a new `GaiaDiagnostics<_>` consider using one of the following associated functions:
[INFO] [stdout]       GaiaDiagnostics::<T>::success
[INFO] [stdout]       GaiaDiagnostics::<T>::failure
[INFO] [stdout]   --> src/errors/diagnostics.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn success(value: T) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn failure(fatal: GaiaError) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `parse_source` in this scope
[INFO] [stdout]   --> src/errors/readme.md:52:21
[INFO] [stdout]    |
[INFO] [stdout] 52 | if let Err(error) = parse_source(source) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::advance_by_char (line 477) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LexerState`
[INFO] [stdout]    --> src/lexer/mod.rs:479:17
[INFO] [stdout]     |
[INFO] [stdout] 479 | let mut state = LexerState::new(input, None);
[INFO] [stdout]     |                 ^^^^^^^^^^ use of undeclared type `LexerState`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 477 + use gaia_types::lexer::LexerState;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `MyToken`
[INFO] [stdout]    --> src/lexer/mod.rs:482:41
[INFO] [stdout]     |
[INFO] [stdout] 482 | if let Some(token) = state.advance_char(MyToken::LeftBrace, '{') {
[INFO] [stdout]     |                                         ^^^^^^^ use of undeclared type `MyToken`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_str (line 357) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LexerState`
[INFO] [stdout]    --> src/lexer/mod.rs:359:17
[INFO] [stdout]     |
[INFO] [stdout] 359 | let mut state = LexerState::new(input, None);
[INFO] [stdout]     |                 ^^^^^^^^^^ use of undeclared type `LexerState`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 357 + use gaia_types::lexer::LexerState;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::advance_by_str (line 518) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LexerState`
[INFO] [stdout]    --> src/lexer/mod.rs:520:17
[INFO] [stdout]     |
[INFO] [stdout] 520 | let mut state = LexerState::new(input, None);
[INFO] [stdout]     |                 ^^^^^^^^^^ use of undeclared type `LexerState`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 518 + use gaia_types::lexer::LexerState;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `MyToken`
[INFO] [stdout]    --> src/lexer/mod.rs:523:22
[INFO] [stdout]     |
[INFO] [stdout] 523 | state.advance_by_str(MyToken::Newline, "\r\n");
[INFO] [stdout]     |                      ^^^^^^^ use of undeclared type `MyToken`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `MyToken`
[INFO] [stdout]    --> src/lexer/mod.rs:527:22
[INFO] [stdout]     |
[INFO] [stdout] 527 | state.advance_by_str(MyToken::Arrow, "=>");
[INFO] [stdout]     |                      ^^^^^^^ use of undeclared type `MyToken`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::get_position (line 123) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LexerState`
[INFO] [stdout]    --> src/lexer/mod.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 | let mut state = LexerState::new(input);
[INFO] [stdout]     |                 ^^^^^^^^^^ use of undeclared type `LexerState`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 123 + use gaia_types::lexer::LexerState;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_char (line 298) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LexerState`
[INFO] [stdout]    --> src/lexer/mod.rs:300:17
[INFO] [stdout]     |
[INFO] [stdout] 300 | let mut state = LexerState::new(input, None);
[INFO] [stdout]     |                 ^^^^^^^^^^ use of undeclared type `LexerState`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 298 + use gaia_types::lexer::LexerState;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_char (line 272) stdout ----
[INFO] [stdout] error[E0438]: const `EOF` is not a member of trait `TokenType`
[INFO] [stdout]    --> src/lexer/mod.rs:276:32
[INFO] [stdout]     |
[INFO] [stdout] 276 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `TokenType`
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `END_OF_STREAM`
[INFO] [stdout]    --> src/lexer/mod.rs:276:1
[INFO] [stdout]     |
[INFO] [stdout] 276 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `END_OF_STREAM` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `const END_OF_STREAM: Self = /* value */;`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0438.
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::get_token (line 834) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LexerState`
[INFO] [stdout]    --> src/lexer/mod.rs:836:17
[INFO] [stdout]     |
[INFO] [stdout] 836 | let mut state = LexerState::new(input, None);
[INFO] [stdout]     |                 ^^^^^^^^^^ use of undeclared type `LexerState`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 834 + use gaia_types::lexer::LexerState;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `MyToken`
[INFO] [stdout]    --> src/lexer/mod.rs:838:17
[INFO] [stdout]     |
[INFO] [stdout] 838 | state.add_token(MyToken::Keyword, 0, 3, 1, 1); // "let"
[INFO] [stdout]     |                 ^^^^^^^ use of undeclared type `MyToken`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `MyToken`
[INFO] [stdout]    --> src/lexer/mod.rs:839:17
[INFO] [stdout]     |
[INFO] [stdout] 839 | state.add_token(MyToken::Identifier, 4, 1, 1, 5); // "x"
[INFO] [stdout]     |                 ^^^^^^^ use of undeclared type `MyToken`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::new (line 93) stdout ----
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/lexer/mod.rs:100:36
[INFO] [stdout]     |
[INFO] [stdout] 100 | let state = LexerState::new(input, url);
[INFO] [stdout]     |             ---------------        ^^^ expected `Option<&Url>`, found `Option<Url>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Option<&Url>`
[INFO] [stdout]                found enum `Option<Url>`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer/mod.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn new(input: &'input str, url: Option<&'input Url>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: try using `.as_ref()` to convert `Option<Url>` to `Option<&Url>`
[INFO] [stdout]     |
[INFO] [stdout] 100 | let state = LexerState::new(input, url.as_ref());
[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 E0308`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::failure (line 954) stdout ----
[INFO] [stdout] error[E0438]: const `EOF` is not a member of trait `TokenType`
[INFO] [stdout]    --> src/lexer/mod.rs:959:32
[INFO] [stdout]     |
[INFO] [stdout] 959 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `TokenType`
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `errors` is private
[INFO] [stdout]    --> src/lexer/mod.rs:957:17
[INFO] [stdout]     |
[INFO] [stdout] 957 | use gaia_types::errors::{GaiaError, SourceLocation};
[INFO] [stdout]     |                 ^^^^^^ private module
[INFO] [stdout]     |
[INFO] [stdout] note: the module `errors` is defined here
[INFO] [stdout]    --> src/lib.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | mod errors;
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `END_OF_STREAM`
[INFO] [stdout]    --> src/lexer/mod.rs:959:1
[INFO] [stdout]     |
[INFO] [stdout] 959 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `END_OF_STREAM` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `const END_OF_STREAM: Self = /* value */;`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0438, E0603.
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::mark_position (line 153) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LexerState`
[INFO] [stdout]    --> src/lexer/mod.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 | let mut state = LexerState::new(input, None);
[INFO] [stdout]     |                 ^^^^^^^^^^ use of undeclared type `LexerState`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 153 + use gaia_types::lexer::LexerState;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `SomeTokenType`
[INFO] [stdout]    --> src/lexer/mod.rs:159:17
[INFO] [stdout]     |
[INFO] [stdout] 159 | state.add_token(SomeTokenType::Identifier, start_offset, 5, start_line, start_column);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ use of undeclared type `SomeTokenType`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::peek (line 183) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LexerState`
[INFO] [stdout]    --> src/lexer/mod.rs:185:17
[INFO] [stdout]     |
[INFO] [stdout] 185 | let mut state = LexerState::new(input);
[INFO] [stdout]     |                 ^^^^^^^^^^ use of undeclared type `LexerState`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 183 + use gaia_types::lexer::LexerState;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::next_char (line 225) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LexerState`
[INFO] [stdout]    --> src/lexer/mod.rs:227:17
[INFO] [stdout]     |
[INFO] [stdout] 227 | let mut state = LexerState::new(input);
[INFO] [stdout]     |                 ^^^^^^^^^^ use of undeclared type `LexerState`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 225 + use gaia_types::lexer::LexerState;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::update_last_token_type (line 558) stdout ----
[INFO] [stdout] error[E0438]: const `EOF` is not a member of trait `TokenType`
[INFO] [stdout]    --> src/lexer/mod.rs:562:32
[INFO] [stdout]     |
[INFO] [stdout] 562 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `TokenType`
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `END_OF_STREAM`
[INFO] [stdout]    --> src/lexer/mod.rs:562:1
[INFO] [stdout]     |
[INFO] [stdout] 562 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `END_OF_STREAM` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `const END_OF_STREAM: Self = /* value */;`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0438.
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/readme.md - lexer (line 31) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `gaia_types::lexer::Lexer`
[INFO] [stdout]   --> src/lexer/readme.md:33:25
[INFO] [stdout]    |
[INFO] [stdout] 33 | use gaia_types::lexer::{Lexer, Token};
[INFO] [stdout]    |                         ^^^^^ no `Lexer` in `lexer`
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: struct `Token` is private
[INFO] [stdout]   --> src/lexer/readme.md:33:32
[INFO] [stdout]    |
[INFO] [stdout] 33 | use gaia_types::lexer::{Lexer, Token};
[INFO] [stdout]    |                                ^^^^^ private struct
[INFO] [stdout]    |
[INFO] [stdout] note: the struct `Token` is defined here
[INFO] [stdout]   --> src/lexer/mod.rs:4:30
[INFO] [stdout]    |
[INFO] [stdout]  4 |     reader::{SourcePosition, Token, TokenStream},
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout] help: import `Token` directly
[INFO] [stdout]    |
[INFO] [stdout] 33 | use gaia_types::lexer::{Lexer, gaia_types::reader::token::Token};
[INFO] [stdout]    |                                +++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/lexer/readme.md:40:37
[INFO] [stdout]    |
[INFO] [stdout] 40 |     println!("Token: {:?} at {:?}", token.kind(), token.location());
[INFO] [stdout]    |                                     ^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0603.
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::mark_error (line 861) stdout ----
[INFO] [stdout] error[E0438]: const `EOF` is not a member of trait `TokenType`
[INFO] [stdout]    --> src/lexer/mod.rs:866:32
[INFO] [stdout]     |
[INFO] [stdout] 866 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `TokenType`
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `errors` is private
[INFO] [stdout]    --> src/lexer/mod.rs:864:17
[INFO] [stdout]     |
[INFO] [stdout] 864 | use gaia_types::errors::{GaiaError, SourceLocation};
[INFO] [stdout]     |                 ^^^^^^ private module
[INFO] [stdout]     |
[INFO] [stdout] note: the module `errors` is defined here
[INFO] [stdout]    --> src/lib.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | mod errors;
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `END_OF_STREAM`
[INFO] [stdout]    --> src/lexer/mod.rs:866:1
[INFO] [stdout]     |
[INFO] [stdout] 866 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `END_OF_STREAM` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `const END_OF_STREAM: Self = /* value */;`
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer/mod.rs:883:25
[INFO] [stdout]     |
[INFO] [stdout] 883 | let diagnostics = state.success(TestToken::Eof);
[INFO] [stdout]     |                         ^^^^^^^ -------------- unexpected argument of type `TestToken`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lexer/mod.rs:929:12
[INFO] [stdout]     |
[INFO] [stdout] 929 |     pub fn success(mut self) -> GaiaDiagnostics<TokenStream<'input, T>> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 883 - let diagnostics = state.success(TestToken::Eof);
[INFO] [stdout] 883 + let diagnostics = state.success();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0061, E0438, E0603.
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::token_count (line 800) stdout ----
[INFO] [stdout] error[E0438]: const `EOF` is not a member of trait `TokenType`
[INFO] [stdout]    --> src/lexer/mod.rs:804:32
[INFO] [stdout]     |
[INFO] [stdout] 804 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `TokenType`
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `END_OF_STREAM`
[INFO] [stdout]    --> src/lexer/mod.rs:804:1
[INFO] [stdout]     |
[INFO] [stdout] 804 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `END_OF_STREAM` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `const END_OF_STREAM: Self = /* value */;`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0438.
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/readme.md - lexer (line 56) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `gaia_types::lexer::LexerError`
[INFO] [stdout]   --> src/lexer/readme.md:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | use gaia_types::lexer::LexerError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `LexerError` in `lexer`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `lexer` in this scope
[INFO] [stdout]   --> src/lexer/readme.md:60:7
[INFO] [stdout]    |
[INFO] [stdout] 60 | match lexer.next_token() {
[INFO] [stdout]    |       ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0432.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/mod.rs - lexer::LexerState<'input,T>::success (line 910) stdout ----
[INFO] [stdout] error[E0438]: const `EOF` is not a member of trait `TokenType`
[INFO] [stdout]    --> src/lexer/mod.rs:914:32
[INFO] [stdout]     |
[INFO] [stdout] 914 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `TokenType`
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `END_OF_STREAM`
[INFO] [stdout]    --> src/lexer/mod.rs:914:1
[INFO] [stdout]     |
[INFO] [stdout] 914 | impl TokenType for TestToken { const EOF: Self = TestToken::Eof; }
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `END_OF_STREAM` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `const END_OF_STREAM: Self = /* value */;`
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer/mod.rs:920:25
[INFO] [stdout]     |
[INFO] [stdout] 920 | let diagnostics = state.success(TestToken::Eof);
[INFO] [stdout]     |                         ^^^^^^^ -------------- unexpected argument of type `TestToken`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lexer/mod.rs:929:12
[INFO] [stdout]     |
[INFO] [stdout] 929 |     pub fn success(mut self) -> GaiaDiagnostics<TokenStream<'input, T>> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 920 - let diagnostics = state.success(TestToken::Eof);
[INFO] [stdout] 920 + let diagnostics = state.success();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `len` found for struct `std::io::Cursor<T>` in the current scope
[INFO] [stdout]    --> src/lexer/mod.rs:923:61
[INFO] [stdout]     |
[INFO] [stdout] 923 |         println!("词法分析成功，共 {} 个 token", token_stream.tokens.len());
[INFO] [stdout]     |                                                                      ^^^ method not found in `std::io::Cursor<Vec<Token<_>>>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0061, E0438, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/readme.md - lexer (line 45) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `gaia_types::lexer::TokenKind`
[INFO] [stdout]   --> src/lexer/readme.md:47:25
[INFO] [stdout]    |
[INFO] [stdout] 47 | use gaia_types::lexer::{TokenKind, Token};
[INFO] [stdout]    |                         ^^^^^^^^^ no `TokenKind` in `lexer`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `location` in this scope
[INFO] [stdout]   --> src/lexer/readme.md:50:54
[INFO] [stdout]    |
[INFO] [stdout] 50 | let token = Token::new(TokenKind::Keyword("module"), location);
[INFO] [stdout]    |                                                      ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `location` in this scope
[INFO] [stdout]   --> src/lexer/readme.md:51:59
[INFO] [stdout]    |
[INFO] [stdout] 51 | let identifier = Token::new(TokenKind::Identifier("add"), location);
[INFO] [stdout]    |                                                           ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `location` in this scope
[INFO] [stdout]   --> src/lexer/readme.md:52:49
[INFO] [stdout]    |
[INFO] [stdout] 52 | let number = Token::new(TokenKind::Integer(42), location);
[INFO] [stdout]    |                                                 ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: struct `Token` is private
[INFO] [stdout]   --> src/lexer/readme.md:47:36
[INFO] [stdout]    |
[INFO] [stdout] 47 | use gaia_types::lexer::{TokenKind, Token};
[INFO] [stdout]    |                                    ^^^^^ private struct
[INFO] [stdout]    |
[INFO] [stdout] note: the struct `Token` is defined here
[INFO] [stdout]   --> src/lexer/mod.rs:4:30
[INFO] [stdout]    |
[INFO] [stdout]  4 |     reader::{SourcePosition, Token, TokenStream},
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout] help: import `Token` directly
[INFO] [stdout]    |
[INFO] [stdout] 47 | use gaia_types::lexer::{TokenKind, gaia_types::reader::token::Token};
[INFO] [stdout]    |                                    +++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0432, E0603.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser/readme.md - parser (line 64) stdout ----
[INFO] [stdout] error[E0432]: unresolved imports `gaia_types::parser::AstVisitor`, `gaia_types::parser::ModuleNode`
[INFO] [stdout]   --> src/parser/readme.md:66:26
[INFO] [stdout]    |
[INFO] [stdout] 66 | use gaia_types::parser::{AstVisitor, ModuleNode};
[INFO] [stdout]    |                          ^^^^^^^^^^  ^^^^^^^^^^ no `ModuleNode` in `parser`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          no `AstVisitor` in `parser`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `ast` in this scope
[INFO] [stdout]   --> src/parser/readme.md:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | ast.accept(&mut visitor);
[INFO] [stdout]    | ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0432.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser/readme.md - parser (line 47) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `gaia_types::parser::ParseError`
[INFO] [stdout]   --> src/parser/readme.md:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | use gaia_types::parser::ParseError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `ParseError` in `parser`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these items instead
[INFO] [stdout]    |
[INFO] [stdout] 49 - use gaia_types::parser::ParseError;
[INFO] [stdout] 49 + use std::string::ParseError;
[INFO] [stdout]    |
[INFO] [stdout] 49 - use gaia_types::parser::ParseError;
[INFO] [stdout] 49 + use url::ParseError;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `parser` in this scope
[INFO] [stdout]   --> src/parser/readme.md:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | match parser.parse() {
[INFO] [stdout]    |       ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0432.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser/readme.md - parser (line 32) stdout ----
[INFO] [stdout] error[E0432]: unresolved imports `gaia_types::parser::Parser`, `gaia_types::parser::SyntaxTree`
[INFO] [stdout]   --> src/parser/readme.md:34:26
[INFO] [stdout]    |
[INFO] [stdout] 34 | use gaia_types::parser::{Parser, SyntaxTree};
[INFO] [stdout]    |                          ^^^^^^  ^^^^^^^^^^ no `SyntaxTree` in `parser`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          no `Parser` in `parser`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `gaia_types::lexer::Lexer`
[INFO] [stdout]   --> src/parser/readme.md:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use gaia_types::lexer::Lexer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^ no `Lexer` in `lexer`
[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/lexer/mod.rs - lexer::LexerState (line 39) stdout ----
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/lexer/mod.rs:54:17
[INFO] [stdout]     |
[INFO] [stdout]  54 | let mut state = LexerState::new(input);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^------- argument #2 of type `Option<&Url>` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/lexer/mod.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn new(input: &'input str, url: Option<&'input Url>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout]  54 | let mut state = LexerState::new(input, /* Option<&Url> */);
[INFO] [stdout]     |                                      ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MyToken: TokenType` is not satisfied
[INFO] [stdout]    --> src/lexer/mod.rs:57:7
[INFO] [stdout]     |
[INFO] [stdout]  57 | state.add_token(MyToken::Identifier, 0, 5, 1, 1);
[INFO] [stdout]     |       ^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `TokenType` is not implemented for `MyToken`
[INFO] [stdout]    --> src/lexer/mod.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout]  47 | enum MyToken {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `LexerState::<'input, T>::add_token`
[INFO] [stdout]    --> src/lexer/mod.rs:79:17
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl<'input, T: TokenType> LexerState<'input, T> {
[INFO] [stdout]     |                 ^^^^^^^^^ required by this bound in `LexerState::<'input, T>::add_token`
[INFO] [stdout] ...
[INFO] [stdout] 429 |     pub fn add_token(&mut self, token_type: T, start_offset: usize, length: usize, start_line: u32, start_column: u32) {
[INFO] [stdout]     |            --------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MyToken: TokenType` is not satisfied
[INFO] [stdout]   --> src/lexer/mod.rs:54:17
[INFO] [stdout]    |
[INFO] [stdout] 54 | let mut state = LexerState::new(input);
[INFO] [stdout]    |                 ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `TokenType` is not implemented for `MyToken`
[INFO] [stdout]   --> src/lexer/mod.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | enum MyToken {
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `LexerState`
[INFO] [stdout]   --> src/lexer/mod.rs:64:34
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct LexerState<'input, T: TokenType> {
[INFO] [stdout]    |                                  ^^^^^^^^^ required by this bound in `LexerState`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MyToken: TokenType` is not satisfied
[INFO] [stdout]    --> src/lexer/mod.rs:54:17
[INFO] [stdout]     |
[INFO] [stdout]  54 | let mut state = LexerState::new(input);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `TokenType` is not implemented for `MyToken`
[INFO] [stdout]    --> src/lexer/mod.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout]  47 | enum MyToken {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `LexerState::<'input, T>::new`
[INFO] [stdout]    --> src/lexer/mod.rs:79:17
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl<'input, T: TokenType> LexerState<'input, T> {
[INFO] [stdout]     |                 ^^^^^^^^^ required by this bound in `LexerState::<'input, T>::new`
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn new(input: &'input str, url: Option<&'input Url>) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_token` exists for struct `LexerState<'_, MyToken>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/lexer/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | enum MyToken {
[INFO] [stdout]    | ------------ doesn't satisfy `MyToken: TokenType`
[INFO] [stdout] ...
[INFO] [stdout] 58 | state.add_token(MyToken::Whitespace, 5, 1, 1, 6);
[INFO] [stdout]    |       ^^^^^^^^^ method cannot be called on `LexerState<'_, MyToken>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `MyToken: TokenType`
[INFO] [stdout] note: the trait `TokenType` must be implemented
[INFO] [stdout]   --> src/lexer/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait TokenType: Copy {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_token` exists for struct `LexerState<'_, MyToken>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/lexer/mod.rs:59:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | enum MyToken {
[INFO] [stdout]    | ------------ doesn't satisfy `MyToken: TokenType`
[INFO] [stdout] ...
[INFO] [stdout] 59 | state.add_token(MyToken::Number, 6, 3, 1, 7);
[INFO] [stdout]    |       ^^^^^^^^^ method cannot be called on `LexerState<'_, MyToken>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `MyToken: TokenType`
[INFO] [stdout] note: the trait `TokenType` must be implemented
[INFO] [stdout]   --> src/lexer/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait TokenType: Copy {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_token_stream` found for struct `LexerState<'input, T>` in the current scope
[INFO] [stdout]   --> src/lexer/mod.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 | let token_stream = state.into_token_stream();
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^ method not found in `LexerState<'_, MyToken>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 7 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/reader/readme.md - reader (line 56) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `gaia_types::lexer::Lexer`
[INFO] [stdout]   --> src/reader/readme.md:59:25
[INFO] [stdout]    |
[INFO] [stdout] 59 | use gaia_types::lexer::{Lexer, Token};
[INFO] [stdout]    |                         ^^^^^ no `Lexer` in `lexer`
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: struct `Token` is private
[INFO] [stdout]   --> src/reader/readme.md:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 | use gaia_types::lexer::{Lexer, Token};
[INFO] [stdout]    |                                ^^^^^ private struct
[INFO] [stdout]    |
[INFO] [stdout] note: the struct `Token` is defined here
[INFO] [stdout]   --> src/lexer/mod.rs:4:30
[INFO] [stdout]    |
[INFO] [stdout]  4 |     reader::{SourcePosition, Token, TokenStream},
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout] help: import `Token` directly
[INFO] [stdout]    |
[INFO] [stdout] 59 | use gaia_types::lexer::{Lexer, gaia_types::reader::token::Token};
[INFO] [stdout]    |                                +++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]   --> src/reader/readme.md:64:20
[INFO] [stdout]    |
[INFO] [stdout] 64 | let token_stream = TokenStream::new(tokens);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^-------- argument #2 of type `Vec<Token<_>>` is missing
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/reader/token_stream.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn new(raw: &'input str, tokens: Vec<Token<T>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]    |
[INFO] [stdout] 64 | let token_stream = TokenStream::new(tokens, /* tokens */);
[INFO] [stdout]    |                                           ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `TokenStream<'_, _>` is not an iterator
[INFO] [stdout]   --> src/reader/readme.md:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 | for token in token_stream {
[INFO] [stdout]    |              ^^^^^^^^^^^^ `TokenStream<'_, _>` is not an iterator
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Iterator` is not implemented for `TokenStream<'_, _>`
[INFO] [stdout]    = note: required for `TokenStream<'_, _>` to implement `IntoIterator`
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/reader/readme.md:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |     println!("Token: {:?} at {:?}", token.kind(), token.location());
[INFO] [stdout]    |                                     ^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0282, E0432, E0603.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/readme.md - (line 87) stdout ----
[INFO] [stdout] error[E0425]: cannot find type `Level` in this scope
[INFO] [stdout]   --> src/readme.md:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 |     level: Level,           // 错误级别（错误、警告、信息等）
[INFO] [stdout]    |            ^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 87 + use tracing::Level;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `GaiaErrorKind` in this scope
[INFO] [stdout]   --> src/readme.md:90:15
[INFO] [stdout]    |
[INFO] [stdout] 90 |     kind: Box<GaiaErrorKind>, // 具体的错误类型
[INFO] [stdout]    |               ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]    |
[INFO] [stdout] 87 + use gaia_types::GaiaErrorKind;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 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/reader/readme.md - reader (line 29) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `gaia_types::reader::Endianness`
[INFO] [stdout]   --> src/reader/readme.md:31:40
[INFO] [stdout]    |
[INFO] [stdout] 31 | use gaia_types::reader::{BinaryReader, Endianness};
[INFO] [stdout]    |                                        ^^^^^^^^^^ no `Endianness` in `reader`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `read_u8` exists for struct `BinaryReader<&Vec<{integer}>, _>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/reader/readme.md:37:19
[INFO] [stdout]    |
[INFO] [stdout] 37 | let byte = reader.read_u8()?;
[INFO] [stdout]    |                   ^^^^^^^ method cannot be called on `BinaryReader<&Vec<{integer}>, _>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `&Vec<{integer}>: std::io::Read`
[INFO] [stdout]            which is required by `&Vec<{integer}>: byteorder::io::ReadBytesExt`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `read_u16` exists for struct `BinaryReader<&Vec<{integer}>, _>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/reader/readme.md:38:19
[INFO] [stdout]    |
[INFO] [stdout] 38 | let word = reader.read_u16::<Endianness::LittleEndian>()?;
[INFO] [stdout]    |                   ^^^^^^^^ method cannot be called on `BinaryReader<&Vec<{integer}>, _>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `&Vec<{integer}>: std::io::Read`
[INFO] [stdout]            which is required by `&Vec<{integer}>: byteorder::io::ReadBytesExt`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `read_u32` exists for struct `BinaryReader<&Vec<{integer}>, _>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/reader/readme.md:39:20
[INFO] [stdout]    |
[INFO] [stdout] 39 | let dword = reader.read_u32::<Endianness::BigEndian>()?;
[INFO] [stdout]    |                    ^^^^^^^^ method cannot be called on `BinaryReader<&Vec<{integer}>, _>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `&Vec<{integer}>: std::io::Read`
[INFO] [stdout]            which is required by `&Vec<{integer}>: byteorder::io::ReadBytesExt`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/reader/readme.md - reader (line 43) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `GaiaError`
[INFO] [stdout]   --> src/reader/readme.md:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 | let error = GaiaError::syntax_error("语法错误", location);
[INFO] [stdout]    |             ^^^^^^^^^ use of undeclared type `GaiaError`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 42 + use gaia_types::GaiaError;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `SourcePosition` in the current scope
[INFO] [stdout]   --> src/reader/readme.md:48:32
[INFO] [stdout]    |
[INFO] [stdout] 48 | let position = SourcePosition::new(10, 5); // 第10行，第5列
[INFO] [stdout]    |                                ^^^ function or associated item not found in `SourcePosition`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `ne` with a similar name, but with different arguments
[INFO] [stdout]   --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/cmp.rs:264:4
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `SourceLocation` in the current scope
[INFO] [stdout]   --> src/reader/readme.md:49:32
[INFO] [stdout]    |
[INFO] [stdout] 49 | let location = SourceLocation::new("example.wat", position);
[INFO] [stdout]    |                                ^^^ function or associated item not found in `SourceLocation`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0433, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/mod.rs - writer::TextWriter<W>::finish (line 229) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `std::io::Cursor<Vec<_>>: std::fmt::Write` is not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:235:30
[INFO] [stdout]     |
[INFO] [stdout] 235 | let writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]     |              --------------- ^^^^^^ the trait `std::fmt::Write` is not implemented for `std::io::Cursor<Vec<_>>`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: `std::io::Cursor<Vec<_>>` implements similarly named trait `std::io::Write`, but not `std::fmt::Write`
[INFO] [stdout] note: required by a bound in `TextWriter::<W>::new`
[INFO] [stdout]    --> src/writer/mod.rs:43:9
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]     |         ^^^^^ required by this bound in `TextWriter::<W>::new`
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/writer/mod.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 | let writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^         ------ unexpected argument #2 of type `&'static str`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/writer/mod.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 235 - let writer = TextWriter::new(buffer, "    ");
[INFO] [stdout] 235 + let writer = TextWriter::new(buffer);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `finish` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:236:27
[INFO] [stdout]     |
[INFO] [stdout] 236 | let inner_writer = writer.finish();
[INFO] [stdout]     |                           ^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/mod.rs - writer::TextWriter<W>::write_line (line 126) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `std::io::Cursor<Vec<_>>: std::fmt::Write` is not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:132:34
[INFO] [stdout]     |
[INFO] [stdout] 132 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]     |                  --------------- ^^^^^^ the trait `std::fmt::Write` is not implemented for `std::io::Cursor<Vec<_>>`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: `std::io::Cursor<Vec<_>>` implements similarly named trait `std::io::Write`, but not `std::fmt::Write`
[INFO] [stdout] note: required by a bound in `TextWriter::<W>::new`
[INFO] [stdout]    --> src/writer/mod.rs:43:9
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]     |         ^^^^^ required by this bound in `TextWriter::<W>::new`
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/writer/mod.rs:132:18
[INFO] [stdout]     |
[INFO] [stdout] 132 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^         ------ unexpected argument #2 of type `&'static str`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/writer/mod.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 132 - let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout] 132 + let mut writer = TextWriter::new(buffer);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | writer.write_line("这是一行文本").unwrap();
[INFO] [stdout]     |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/mod.rs - writer::TextWriter (line 17) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `std::io::Cursor<Vec<_>>: std::fmt::Write` is not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:23:34
[INFO] [stdout]    |
[INFO] [stdout] 23 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]    |                  --------------- ^^^^^^ the trait `std::fmt::Write` is not implemented for `std::io::Cursor<Vec<_>>`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = note: `std::io::Cursor<Vec<_>>` implements similarly named trait `std::io::Write`, but not `std::fmt::Write`
[INFO] [stdout] note: required by a bound in `TextWriter::<W>::new`
[INFO] [stdout]   --> src/writer/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]    |         ^^^^^ required by this bound in `TextWriter::<W>::new`
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]    |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]   --> src/writer/mod.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^         ------ unexpected argument #2 of type `&'static str`
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/writer/mod.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]    |
[INFO] [stdout] 23 - let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout] 23 + let mut writer = TextWriter::new(buffer);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | writer.write_line("function main() {").unwrap();
[INFO] [stdout]    |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `indent` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | writer.indent();
[INFO] [stdout]    |        ^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | writer.write_line("return 42;").unwrap();
[INFO] [stdout]    |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `dedent` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | writer.dedent();
[INFO] [stdout]    |        ^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | writer.write_line("}").unwrap();
[INFO] [stdout]    |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `finish` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:31:39
[INFO] [stdout]    |
[INFO] [stdout] 31 | let result = String::from_utf8(writer.finish().into_inner()).unwrap();
[INFO] [stdout]    |                                       ^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/mod.rs - writer::TextWriter<W>::indent (line 74) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `std::io::Cursor<Vec<_>>: std::fmt::Write` is not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:80:34
[INFO] [stdout]    |
[INFO] [stdout] 80 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]    |                  --------------- ^^^^^^ the trait `std::fmt::Write` is not implemented for `std::io::Cursor<Vec<_>>`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = note: `std::io::Cursor<Vec<_>>` implements similarly named trait `std::io::Write`, but not `std::fmt::Write`
[INFO] [stdout] note: required by a bound in `TextWriter::<W>::new`
[INFO] [stdout]   --> src/writer/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]    |         ^^^^^ required by this bound in `TextWriter::<W>::new`
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]    |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]   --> src/writer/mod.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^         ------ unexpected argument #2 of type `&'static str`
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/writer/mod.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]    |
[INFO] [stdout] 80 - let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout] 80 + let mut writer = TextWriter::new(buffer);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | writer.write_line("outer {").unwrap();
[INFO] [stdout]    |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `indent` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | writer.indent(); // 增加缩进
[INFO] [stdout]    |        ^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | writer.write_line("inner code").unwrap();
[INFO] [stdout]    |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `dedent` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | writer.dedent(); // 减少缩进
[INFO] [stdout]    |        ^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | writer.write_line("}").unwrap();
[INFO] [stdout]    |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 7 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/readme.md - writer (line 103) stdout ----
[INFO] [stdout] error[E0425]: cannot find type `TextWriter` in this scope
[INFO] [stdout]    --> src/writer/readme.md:104:16
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]     |                ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 103 + use gaia_types::TextWriter;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `Write` in this scope
[INFO] [stdout]    --> src/writer/readme.md:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]     |         ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these traits
[INFO] [stdout]     |
[INFO] [stdout] 103 + use std::fmt::Write;
[INFO] [stdout]     |
[INFO] [stdout] 103 + use std::io::Write;
[INFO] [stdout]     |
[INFO] [stdout] 103 + use core::fmt::Write;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/readme.md - writer (line 123) stdout ----
[INFO] [stdout] error[E0425]: cannot find type `BinaryWriter` in this scope
[INFO] [stdout]    --> src/writer/readme.md:124:16
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl<W: Write> BinaryWriter<W> {
[INFO] [stdout]     |                ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 123 + use gaia_types::BinaryWriter;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `Write` in this scope
[INFO] [stdout]    --> src/writer/readme.md:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl<W: Write> BinaryWriter<W> {
[INFO] [stdout]     |         ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these traits
[INFO] [stdout]     |
[INFO] [stdout] 123 + use std::fmt::Write;
[INFO] [stdout]     |
[INFO] [stdout] 123 + use std::io::Write;
[INFO] [stdout]     |
[INFO] [stdout] 123 + use core::fmt::Write;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/mod.rs - writer::TextWriter<W>::write_indent (line 178) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `std::io::Cursor<Vec<_>>: std::fmt::Write` is not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:184:34
[INFO] [stdout]     |
[INFO] [stdout] 184 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]     |                  --------------- ^^^^^^ the trait `std::fmt::Write` is not implemented for `std::io::Cursor<Vec<_>>`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: `std::io::Cursor<Vec<_>>` implements similarly named trait `std::io::Write`, but not `std::fmt::Write`
[INFO] [stdout] note: required by a bound in `TextWriter::<W>::new`
[INFO] [stdout]    --> src/writer/mod.rs:43:9
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]     |         ^^^^^ required by this bound in `TextWriter::<W>::new`
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/writer/mod.rs:184:18
[INFO] [stdout]     |
[INFO] [stdout] 184 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^         ------ unexpected argument #2 of type `&'static str`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/writer/mod.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 184 - let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout] 184 + let mut writer = TextWriter::new(buffer);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `indent` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | writer.indent();
[INFO] [stdout]     |        ^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_indent` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | writer.write_indent().unwrap(); // 写入4个空格
[INFO] [stdout]     |        ^^^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:188:8
[INFO] [stdout]     |
[INFO] [stdout] 188 | writer.write_line("缩进的文本").unwrap();
[INFO] [stdout]     |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/readme.md - writer (line 47) stdout ----
[INFO] [stdout] error[E0405]: cannot find trait `Write` in this scope
[INFO] [stdout]   --> src/writer/readme.md:48:28
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct BinaryWriter<W: Write> {
[INFO] [stdout]    |                            ^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these traits
[INFO] [stdout]    |
[INFO] [stdout] 47 + use std::fmt::Write;
[INFO] [stdout]    |
[INFO] [stdout] 47 + use std::io::Write;
[INFO] [stdout]    |
[INFO] [stdout] 47 + use core::fmt::Write;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `ByteOrder` in this scope
[INFO] [stdout]   --> src/writer/readme.md:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |     byte_order: ByteOrder,
[INFO] [stdout]    |                 ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]    |
[INFO] [stdout] 47 + use byteorder::ByteOrder;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/mod.rs - writer::TextWriter<W>::new (line 57) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `std::io::Cursor<Vec<_>>: std::fmt::Write` is not satisfied
[INFO] [stdout]   --> src/writer/mod.rs:63:30
[INFO] [stdout]    |
[INFO] [stdout] 63 | let writer = TextWriter::new(buffer);
[INFO] [stdout]    |              --------------- ^^^^^^ the trait `std::fmt::Write` is not implemented for `std::io::Cursor<Vec<_>>`
[INFO] [stdout]    |              |
[INFO] [stdout]    |              required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = note: `std::io::Cursor<Vec<_>>` implements similarly named trait `std::io::Write`, but not `std::fmt::Write`
[INFO] [stdout] note: required by a bound in `TextWriter::<W>::new`
[INFO] [stdout]   --> src/writer/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]    |         ^^^^^ required by this bound in `TextWriter::<W>::new`
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]    |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/mod.rs - writer::TextWriter<W>::indent_level (line 204) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `std::io::Cursor<Vec<_>>: std::fmt::Write` is not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:210:34
[INFO] [stdout]     |
[INFO] [stdout] 210 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]     |                  --------------- ^^^^^^ the trait `std::fmt::Write` is not implemented for `std::io::Cursor<Vec<_>>`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: `std::io::Cursor<Vec<_>>` implements similarly named trait `std::io::Write`, but not `std::fmt::Write`
[INFO] [stdout] note: required by a bound in `TextWriter::<W>::new`
[INFO] [stdout]    --> src/writer/mod.rs:43:9
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]     |         ^^^^^ required by this bound in `TextWriter::<W>::new`
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/writer/mod.rs:210:18
[INFO] [stdout]     |
[INFO] [stdout] 210 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^         ------ unexpected argument #2 of type `&'static str`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/writer/mod.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 210 - let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout] 210 + let mut writer = TextWriter::new(buffer);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `indent_level` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:212:19
[INFO] [stdout]     |
[INFO] [stdout] 212 | assert_eq!(writer.indent_level(), 0);
[INFO] [stdout]     |                   ^^^^^^^^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `indent` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | writer.indent();
[INFO] [stdout]     |        ^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `indent_level` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:214:19
[INFO] [stdout]     |
[INFO] [stdout] 214 | assert_eq!(writer.indent_level(), 1);
[INFO] [stdout]     |                   ^^^^^^^^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/readme.md - writer (line 61) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `gaia_types::writer::BinaryWriter`
[INFO] [stdout]   --> src/writer/readme.md:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | use gaia_types::writer::BinaryWriter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `BinaryWriter` in `writer`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct instead
[INFO] [stdout]    |
[INFO] [stdout] 63 - use gaia_types::writer::BinaryWriter;
[INFO] [stdout] 63 + use gaia_types::BinaryWriter;
[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 E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/mod.rs - writer::TextWriter<W>::write (line 154) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `std::io::Cursor<Vec<_>>: std::fmt::Write` is not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:160:34
[INFO] [stdout]     |
[INFO] [stdout] 160 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]     |                  --------------- ^^^^^^ the trait `std::fmt::Write` is not implemented for `std::io::Cursor<Vec<_>>`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: `std::io::Cursor<Vec<_>>` implements similarly named trait `std::io::Write`, but not `std::fmt::Write`
[INFO] [stdout] note: required by a bound in `TextWriter::<W>::new`
[INFO] [stdout]    --> src/writer/mod.rs:43:9
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]     |         ^^^^^ required by this bound in `TextWriter::<W>::new`
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/writer/mod.rs:160:18
[INFO] [stdout]     |
[INFO] [stdout] 160 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^         ------ unexpected argument #2 of type `&'static str`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/writer/mod.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 160 - let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout] 160 + let mut writer = TextWriter::new(buffer);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | writer.write("部分文本").unwrap();
[INFO] [stdout]     |        ^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/writer/mod.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | writer.write_line("继续文本").unwrap();
[INFO] [stdout]     |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/readme.md - writer (line 26) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `std::io::Cursor<Vec<_>>: std::fmt::Write` is not satisfied
[INFO] [stdout]   --> src/writer/readme.md:32:34
[INFO] [stdout]    |
[INFO] [stdout] 32 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]    |                  --------------- ^^^^^^ the trait `std::fmt::Write` is not implemented for `std::io::Cursor<Vec<_>>`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = note: `std::io::Cursor<Vec<_>>` implements similarly named trait `std::io::Write`, but not `std::fmt::Write`
[INFO] [stdout] note: required by a bound in `TextWriter::<W>::new`
[INFO] [stdout]   --> src/writer/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl<W: Write> TextWriter<W> {
[INFO] [stdout]    |         ^^^^^ required by this bound in `TextWriter::<W>::new`
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]    |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]   --> src/writer/readme.md:32:18
[INFO] [stdout]    |
[INFO] [stdout] 32 | let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^         ------ unexpected argument #2 of type `&'static str`
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/writer/mod.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn new(writer: W) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]    |
[INFO] [stdout] 32 - let mut writer = TextWriter::new(buffer, "    ");
[INFO] [stdout] 32 + let mut writer = TextWriter::new(buffer);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/readme.md:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | writer.write_line("function main() {").unwrap();
[INFO] [stdout]    |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `indent` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/readme.md:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | writer.indent();
[INFO] [stdout]    |        ^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/readme.md:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | writer.write_line("return 42;").unwrap();
[INFO] [stdout]    |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `dedent` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/readme.md:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | writer.dedent();
[INFO] [stdout]    |        ^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write_line` exists for struct `TextWriter<std::io::Cursor<Vec<_>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/writer/readme.md:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | writer.write_line("}").unwrap();
[INFO] [stdout]    |        ^^^^^^^^^^ method cannot be called on `TextWriter<std::io::Cursor<Vec<_>>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `std::io::Cursor<Vec<_>>: std::fmt::Write`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_inner` found for struct `TextWriter<W>` in the current scope
[INFO] [stdout]   --> src/writer/readme.md:40:39
[INFO] [stdout]    |
[INFO] [stdout] 40 | let result = String::from_utf8(writer.into_inner().into_inner()).unwrap();
[INFO] [stdout]    |                                       ^^^^^^^^^^ method not found in `TextWriter<std::io::Cursor<Vec<_>>>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/writer/readme.md - writer (line 11) stdout ----
[INFO] [stdout] error[E0405]: cannot find trait `Write` in this scope
[INFO] [stdout]   --> src/writer/readme.md:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct TextWriter<W: Write> {
[INFO] [stdout]    |                          ^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these traits
[INFO] [stdout]    |
[INFO] [stdout] 11 + use std::fmt::Write;
[INFO] [stdout]    |
[INFO] [stdout] 11 + use std::io::Write;
[INFO] [stdout]    |
[INFO] [stdout] 11 + use core::fmt::Write;
[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 E0405`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/assembler/readme.md - assembler (line 22)
[INFO] [stdout]     src/errors/../readme.md - errors::diagnostics (line 87)
[INFO] [stdout]     src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics (line 20)
[INFO] [stdout]     src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::add_tracing (line 118)
[INFO] [stdout]     src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::add_warning (line 96)
[INFO] [stdout]     src/errors/diagnostics.rs - errors::diagnostics::GaiaDiagnostics<T>::failure (line 76)
[INFO] [stdout]     src/errors/readme.md - errors (line 45)
[INFO] [stdout]     src/helpers/compilation_target/mod.rs - helpers::compilation_target::CompilationTarget (line 24)
[INFO] [stdout]     src/helpers/compilation_target/readme.md - helpers::compilation_target (line 117)
[INFO] [stdout]     src/helpers/compilation_target/readme.md - helpers::compilation_target (line 85)
[INFO] [stdout]     src/helpers/readme.md - helpers (line 36)
[INFO] [stdout]     src/helpers/readme.md - helpers (line 47)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState (line 39)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::advance_by_char (line 477)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::advance_by_str (line 518)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_char (line 259)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_char (line 272)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_char (line 298)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::consume_str (line 357)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::failure (line 954)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::get_position (line 123)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::get_token (line 834)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::mark_error (line 861)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::mark_position (line 153)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::new (line 93)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::next_char (line 225)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::peek (line 183)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::success (line 910)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::token_count (line 800)
[INFO] [stdout]     src/lexer/mod.rs - lexer::LexerState<'input,T>::update_last_token_type (line 558)
[INFO] [stdout]     src/lexer/readme.md - lexer (line 31)
[INFO] [stdout]     src/lexer/readme.md - lexer (line 45)
[INFO] [stdout]     src/lexer/readme.md - lexer (line 56)
[INFO] [stdout]     src/parser/readme.md - parser (line 32)
[INFO] [stdout]     src/parser/readme.md - parser (line 47)
[INFO] [stdout]     src/parser/readme.md - parser (line 64)
[INFO] [stdout]     src/reader/readme.md - reader (line 29)
[INFO] [stdout]     src/reader/readme.md - reader (line 43)
[INFO] [stdout]     src/reader/readme.md - reader (line 56)
[INFO] [stdout]     src/readme.md - (line 87)
[INFO] [stdout]     src/writer/mod.rs - writer::TextWriter (line 17)
[INFO] [stdout]     src/writer/mod.rs - writer::TextWriter<W>::finish (line 229)
[INFO] [stdout]     src/writer/mod.rs - writer::TextWriter<W>::indent (line 74)
[INFO] [stdout]     src/writer/mod.rs - writer::TextWriter<W>::indent_level (line 204)
[INFO] [stdout]     src/writer/mod.rs - writer::TextWriter<W>::new (line 57)
[INFO] [stdout]     src/writer/mod.rs - writer::TextWriter<W>::write (line 154)
[INFO] [stdout]     src/writer/mod.rs - writer::TextWriter<W>::write_indent (line 178)
[INFO] [stdout]     src/writer/mod.rs - writer::TextWriter<W>::write_line (line 126)
[INFO] [stdout]     src/writer/readme.md - writer (line 103)
[INFO] [stdout]     src/writer/readme.md - writer (line 11)
[INFO] [stdout]     src/writer/readme.md - writer (line 123)
[INFO] [stdout]     src/writer/readme.md - writer (line 26)
[INFO] [stdout]     src/writer/readme.md - writer (line 47)
[INFO] [stdout]     src/writer/readme.md - writer (line 61)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 20 passed; 54 failed; 2 ignored; 0 measured; 0 filtered out; finished in 1.25s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.51s; merged doctests compilation took 0.25s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "fde312e890243d4865a0e90214f0c7f30b9268516729e7bac1d3d8634dc57030", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fde312e890243d4865a0e90214f0c7f30b9268516729e7bac1d3d8634dc57030", kill_on_drop: false }`
[INFO] [stdout] fde312e890243d4865a0e90214f0c7f30b9268516729e7bac1d3d8634dc57030
