[INFO] cloning repository https://github.com/tcr/gourd
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tcr/gourd" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftcr%2Fgourd", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftcr%2Fgourd'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4fd2d0fed4c3ca4c78f45d8bd06c24581f728bd6
[INFO] testing tcr/gourd against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftcr%2Fgourd" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tcr/gourd
[INFO] finished tweaking git repo https://github.com/tcr/gourd
[INFO] tweaked toml for git repo https://github.com/tcr/gourd written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tcr/gourd on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tcr/gourd 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bitflags v2.13.0
[INFO] [stderr]   Downloaded smallvec v1.15.2
[INFO] [stderr]   Downloaded crossbeam v0.8.4
[INFO] [stderr]   Downloaded tracing-flame v0.2.0
[INFO] [stderr]   Downloaded env_filter v2.0.0
[INFO] [stderr]   Downloaded env_logger v0.11.11
[INFO] [stderr]   Downloaded wasip2 v1.0.4+wasi-0.2.12
[INFO] [stderr]   Downloaded memchr v2.8.2
[INFO] [stderr]   Downloaded regex v1.12.4
[INFO] [stderr]   Downloaded rayon v1.12.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5
[INFO] running `Command { std: "docker" "start" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling env_filter v2.0.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling env_logger v0.11.11
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling ansi_term v0.12.1
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling gourd-codegen v0.1.1 (/opt/rustwide/workdir/gourd-codegen)
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-flame v0.2.0
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/expressions.rs:754:32
[INFO] [stdout]     |
[INFO] [stdout] 754 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/statement_parsing.rs:670:32
[INFO] [stdout]     |
[INFO] [stdout] 670 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stdout] warning: value assigned to `collected` is never read
[INFO] [stdout]    --> gourd-codegen/src/lib.rs:550:25
[INFO] [stdout]     |
[INFO] [stdout] 550 |                         collected = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gourd-macro v0.1.1 (/opt/rustwide/workdir/gourd-macro)
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/expressions.rs:754:32
[INFO] [stdout]     |
[INFO] [stdout] 754 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/statement_parsing.rs:670:32
[INFO] [stdout]     |
[INFO] [stdout] 670 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `collected` is never read
[INFO] [stdout]    --> gourd-codegen/src/lib.rs:550:25
[INFO] [stdout]     |
[INFO] [stdout] 550 |                         collected = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling gourd v0.1.1 (/opt/rustwide/workdir/gourd)
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling gourd-check v0.1.0 (/opt/rustwide/workdir/gourd-check)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/expressions.rs:754:32
[INFO] [stdout]     |
[INFO] [stdout] 754 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/statement_parsing.rs:670:32
[INFO] [stdout]     |
[INFO] [stdout] 670 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `collected` is never read
[INFO] [stdout]    --> gourd-codegen/src/lib.rs:550:25
[INFO] [stdout]     |
[INFO] [stdout] 550 |                         collected = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gourd-codegen v0.1.1 (/opt/rustwide/workdir/gourd-codegen)
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stdout] warning: function `goFn` should have a snake case name
[INFO] [stdout]   --> gourd-codegen/tests/transpile_go_fn.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn goFn(tokens: TokenStream) -> TokenStream {
[INFO] [stdout]    |    ^^^^ help: convert the identifier to snake case: `go_fn`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/expressions.rs:754:32
[INFO] [stdout]     |
[INFO] [stdout] 754 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/statement_parsing.rs:670:32
[INFO] [stdout]     |
[INFO] [stdout] 670 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/expressions.rs:754:32
[INFO] [stdout]     |
[INFO] [stdout] 754 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `collected` is never read
[INFO] [stdout]    --> gourd-codegen/src/lib.rs:550:25
[INFO] [stdout]     |
[INFO] [stdout] 550 |                         collected = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/statement_parsing.rs:670:32
[INFO] [stdout]     |
[INFO] [stdout] 670 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `collected` is never read
[INFO] [stdout]    --> gourd-codegen/src/lib.rs:550:25
[INFO] [stdout]     |
[INFO] [stdout] 550 |                         collected = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gourd-check v0.1.0 (/opt/rustwide/workdir/gourd-check)
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]   --> gourd-check/tests/test_examples.rs:11:29
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::process::{Command, Stdio};
[INFO] [stdout]    |                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gourd-macro v0.1.1 (/opt/rustwide/workdir/gourd-macro)
[INFO] [stderr]    Compiling gourd v0.1.1 (/opt/rustwide/workdir/gourd)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> gourd/src/go_slice.rs:711:13
[INFO] [stdout]     |
[INFO] [stdout] 711 |         let mut s = GoSlice::from_vec(vec![0xff, 0xfe]);
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> gourd/src/go_map.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let mut m: GoMap<String, i32> = GoMap::new();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func noSelector(ok bool, ready bool) string
[INFO] [stderr] { return switch { case ok: "ok" case ready: "ready" default: "none" } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: noSelector
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: bool, ready bool (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: bool (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ok", span: #0 bytes(639..641) }, HirType { kind: Bool }), (Ident { ident: "ready", span: #0 bytes(648..653) }, HirType { kind: Bool })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return switch { case  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return switch { case ok: "ok" case ready: "ready" default: "none" } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return switch { case ok: "ok" case ready: "ready" default: "none" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return switch { case ok: "ok" case ready: "ready" default: "none" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: "ok" case ready : "ready" default : "none"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "ready" default : "none"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "none"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAdd() int { return 42; }
[INFO] [stderr] DEBUG: No fix applied, using default: SwitchReturn { tokens: TokenStream [Ident { ident: "if", span: #5 bytes(344..612) }, Ident { ident: "ok", span: #0 bytes(706..708) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "gourd", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "GoString", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "new", span: #5 bytes(344..612) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "ok", suffix: None, span: #5 bytes(344..612) }], span: #5 bytes(344..612) }], span: #5 bytes(344..612) }, Ident { ident: "else", span: #5 bytes(344..612) }, Ident { ident: "if", span: #5 bytes(344..612) }, Ident { ident: "ready", span: #0 bytes(740..745) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "gourd", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "GoString", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "new", span: #5 bytes(344..612) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "ready", suffix: None, span: #5 bytes(344..612) }], span: #5 bytes(344..612) }], span: #5 bytes(344..612) }, Ident { ident: "else", span: #5 bytes(344..612) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "gourd", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "GoString", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "new", span: #5 bytes(344..612) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "none", suffix: None, span: #5 bytes(344..612) }], span: #5 bytes(344..612) }], span: #5 bytes(344..612) }] }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAdd
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return 42; } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 42; }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 42;
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 42;
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(42)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func noSelector(ok bool, ready bool) string
[INFO] [stderr] { return switch { case ok: "ok" case ready: "ready" default: "none" } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: noSelector
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: bool, ready bool (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: bool (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ok", span: #0 bytes(639..641) }, HirType { kind: Bool }), (Ident { ident: "ready", span: #0 bytes(648..653) }, HirType { kind: Bool })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return switch { case  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return switch { case ok: "ok" case ready: "ready" default: "none" } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return switch { case ok: "ok" case ready: "ready" default: "none" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return switch { case ok: "ok" case ready: "ready" default: "none" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: "ok" case ready : "ready" default : "none"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "ready" default : "none"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "none"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: SwitchReturn { tokens: TokenStream [Ident { ident: "if", span: #8 bytes(613..820) }, Ident { ident: "ok", span: #0 bytes(706..708) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "gourd", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "GoString", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "new", span: #8 bytes(613..820) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "ok", suffix: None, span: #8 bytes(613..820) }], span: #8 bytes(613..820) }], span: #8 bytes(613..820) }, Ident { ident: "else", span: #8 bytes(613..820) }, Ident { ident: "if", span: #8 bytes(613..820) }, Ident { ident: "ready", span: #0 bytes(740..745) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "gourd", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "GoString", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "new", span: #8 bytes(613..820) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "ready", suffix: None, span: #8 bytes(613..820) }], span: #8 bytes(613..820) }], span: #8 bytes(613..820) }, Ident { ident: "else", span: #8 bytes(613..820) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "gourd", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "GoString", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "new", span: #8 bytes(613..820) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "none", suffix: None, span: #8 bytes(613..820) }], span: #8 bytes(613..820) }], span: #8 bytes(613..820) }] }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func intCase(x int) string
[INFO] [stderr] { return switch x { case 42: "the answer" case 0: "zero" default: "other" } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: intCase
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1234..1235) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string
[INFO] [stderr] { return switch x { cas (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return switch x { case 42: "the answer" case 0: "zero" default: "other" } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return switch x { case 42: "the answer" case 0: "zero" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return switch x { case 42: "the answer" case 0: "zero" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: "the answer" case 0 : "zero" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "zero" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "other"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: SwitchReturn { tokens: TokenStream [Ident { ident: "match", span: #11 bytes(947..1210) }, Ident { ident: "x", span: #0 bytes(1272..1273) }, Group { delimiter: Brace, stream: TokenStream [Literal { kind: Integer, symbol: "42", suffix: None, span: #11 bytes(947..1210) }, Punct { ch: '=', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: '>', spacing: Alone, span: #11 bytes(947..1210) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "gourd", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "GoString", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "new", span: #11 bytes(947..1210) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "the answer", suffix: None, span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }, Literal { kind: Integer, symbol: "0", suffix: None, span: #11 bytes(947..1210) }, Punct { ch: '=', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: '>', spacing: Alone, span: #11 bytes(947..1210) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "gourd", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "GoString", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "new", span: #11 bytes(947..1210) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "zero", suffix: None, span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }, Punct { ch: ',', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "_", span: #11 bytes(947..1210) }, Punct { ch: '=', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: '>', spacing: Alone, span: #11 bytes(947..1210) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "gourd", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "GoString", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "new", span: #11 bytes(947..1210) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "other", suffix: None, span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }] }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAdd() int { return 42; }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAdd
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return 42; } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 42; }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 42;
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 42;
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(42)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSum(a int, b int) int { return a + b; }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSum
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(597..598) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(604..605) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b; } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b; }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b;
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b;
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func intCase(x int) string
[INFO] [stderr] { return switch x { case 42: "the answer" case 0: "zero" default: "other" } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: intCase
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1234..1235) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string
[INFO] [stderr] { return switch x { cas (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return switch x { case 42: "the answer" case 0: "zero" default: "other" } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return switch x { case 42: "the answer" case 0: "zero" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return switch x { case 42: "the answer" case 0: "zero" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: "the answer" case 0 : "zero" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "zero" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "other"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: SwitchReturn { tokens: TokenStream [Ident { ident: "match", span: #14 bytes(1211..1407) }, Ident { ident: "x", span: #0 bytes(1272..1273) }, Group { delimiter: Brace, stream: TokenStream [Literal { kind: Integer, symbol: "42", suffix: None, span: #14 bytes(1211..1407) }, Punct { ch: '=', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: '>', spacing: Alone, span: #14 bytes(1211..1407) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "gourd", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "GoString", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "new", span: #14 bytes(1211..1407) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "the answer", suffix: None, span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }, Literal { kind: Integer, symbol: "0", suffix: None, span: #14 bytes(1211..1407) }, Punct { ch: '=', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: '>', spacing: Alone, span: #14 bytes(1211..1407) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "gourd", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "GoString", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "new", span: #14 bytes(1211..1407) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "zero", suffix: None, span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }, Punct { ch: ',', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "_", span: #14 bytes(1211..1407) }, Punct { ch: '=', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: '>', spacing: Alone, span: #14 bytes(1211..1407) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "gourd", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "GoString", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "new", span: #14 bytes(1211..1407) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "other", suffix: None, span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }] }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] warning: function `test_noSelector` should have a snake case name
[INFO] [stdout]   --> gourd-macro/tests/switch_extended.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn test_noSelector() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `test_no_selector`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_intCase` should have a snake case name
[INFO] [stdout]   --> gourd-macro/tests/switch_extended.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn test_intCase() {
[INFO] [stdout]    |    ^^^^^^^^^^^^ help: convert the identifier to snake case: `test_int_case`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSum(a int, b int) int { return a + b; }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSum
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(597..598) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(604..605) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b; } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b; }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b;
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b;
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAbs(n int) int { ret := n if n < 0 { ret = -ret } return ret }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAbs
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(1072..1073) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { ret := n if n < 0 { ret  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ret := n if n < 0 { ret = -ret } return ret }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: ret := n if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: ret := n if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: ret = - ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: ret = - ret
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: return ret
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "ret", span: #0 bytes(1093..1096) }, mutable: true, value: HirExpr { kind: Identifier(n) }, type_hint: Some(HirType { kind: Unknown("ret") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(ret) }, value: HirExpr { kind: Unary(Neg) } }] }, else_body: None }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(ret) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goClosureWithLen() int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 }
[INFO] [stderr]     data := []int{1, 2, 3} return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goClosureWithLen
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 }
[INFO] [stderr]     data := []int{1, 2, 3} return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 } data
[INFO] [stderr] := [] int { 1, 2, 3 } r
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 } data
[INFO] [stderr] := [] int { 1, 2, 3 } r
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG parse_hir_type] input: int { if len(arr) > 0 { return (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { if len(arr) > 0 { return arr[0] } return 0 } data := [] int { 1, 2, 3 }
[INFO] [stderr] return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: if len(arr) > 0 { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: if len(arr) > 0 { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return arr [0]
[INFO] [stderr] [DEBUG parse_hir_statement] input: return arr [0]
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: data := [] int { 1, 2, 3 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: data := [] int { 1, 2, 3 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return f(&data)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(106..107) }, params: [(Ident { ident: "arr", span: #0 bytes(116..119) }, Some(HirType { kind: SliceRef(HirType { kind: I32 }) }))], body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Index(_) }))] }, else_body: None }, Return(Some(HirExpr { kind: Literal(Int(0)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "data", span: #0 bytes(246..250) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 1 args) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAbs(n int) int { ret := n if n < 0 { ret = -ret } return ret }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAbs
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(1072..1073) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { ret := n if n < 0 { ret  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ret := n if n < 0 { ret = -ret } return ret }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: ret := n if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: ret := n if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: ret = - ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: ret = - ret
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: return ret
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "ret", span: #0 bytes(1093..1096) }, mutable: true, value: HirExpr { kind: Identifier(n) }, type_hint: Some(HirType { kind: Unknown("ret") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(ret) }, value: HirExpr { kind: Unary(Neg) } }] }, else_body: None }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(ret) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func isEven(n int) bool { return n % 2 == 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: isEven
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(2008..2009) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return n % 2 == 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return n % 2 == 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return n % 2 == 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return n % 2 == 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Eq) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goClosureWithIndex() int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) int { return arr[1] } data := []int{10, 20, 30}
[INFO] [stderr]     return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goClosureWithIndex
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     f := func(arr []int) int { return arr[1] } data := []int{10, 20, 30}
[INFO] [stderr]     return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func(arr []int) int { return arr[1] } data := [] int { 10, 20, 30 }
[INFO] [stderr] return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func(arr []int) int { return arr[1] } data := [] int { 10, 20, 30 }
[INFO] [stderr] return f(&data)
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return arr[1] } data :=  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return arr[1] } data := [] int { 10, 20, 30 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return arr [1]
[INFO] [stderr] [DEBUG parse_hir_statement] input: return arr [1]
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: data := [] int { 10, 20, 30 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: data := [] int { 10, 20, 30 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return f(&data)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(386..387) }, params: [(Ident { ident: "arr", span: #0 bytes(396..399) }, Some(HirType { kind: SliceRef(HirType { kind: I32 }) }))], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Index(_) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "data", span: #0 bytes(457..461) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 1 args) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMinimal(n int) string
[INFO] [stderr] { return switch n { case 1: "one" case 2: "two" default: "other" } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMinimal
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(113..114) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return switch n { cas (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return switch n { case 1: "one" case 2: "two" default: "other" } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return switch n { case 1: "one" case 2: "two" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return switch n { case 1: "one" case 2: "two" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: "one" case 2 : "two" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "two" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "other"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: SwitchReturn { tokens: TokenStream [Ident { ident: "match", span: #5 bytes(88..277) }, Ident { ident: "n", span: #0 bytes(151..152) }, Group { delimiter: Brace, stream: TokenStream [Literal { kind: Integer, symbol: "1", suffix: None, span: #5 bytes(88..277) }, Punct { ch: '=', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: '>', spacing: Alone, span: #5 bytes(88..277) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "gourd", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "GoString", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "new", span: #5 bytes(88..277) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "one", suffix: None, span: #5 bytes(88..277) }], span: #5 bytes(88..277) }], span: #5 bytes(88..277) }, Literal { kind: Integer, symbol: "2", suffix: None, span: #5 bytes(88..277) }, Punct { ch: '=', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: '>', spacing: Alone, span: #5 bytes(88..277) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "gourd", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "GoString", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "new", span: #5 bytes(88..277) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "two", suffix: None, span: #5 bytes(88..277) }], span: #5 bytes(88..277) }], span: #5 bytes(88..277) }, Punct { ch: ',', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "_", span: #5 bytes(88..277) }, Punct { ch: '=', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: '>', spacing: Alone, span: #5 bytes(88..277) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "gourd", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "GoString", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "new", span: #5 bytes(88..277) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "other", suffix: None, span: #5 bytes(88..277) }], span: #5 bytes(88..277) }], span: #5 bytes(88..277) }], span: #5 bytes(88..277) }] }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSum(nums ...int) int
[INFO] [stderr] {
[INFO] [stderr]     total := 0 for i, num := range nums { if i >= 0 { total = total + num } }
[INFO] [stderr]     return total
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSum
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "nums", span: #0 bytes(159..163) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     total := 0 for i, nu (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     total := 0 for i, num := range nums { if i >= 0 { total = total + num } }
[INFO] [stderr]     return total
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: total := 0 for i, num := range nums { if i >= 0 { total = total + num } }
[INFO] [stderr] return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: total := 0 for i, num := range nums { if i >= 0 { total = total + num } }
[INFO] [stderr] return total
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: for i, num := range nums { if i >= 0 { total = total + num } } return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: for i, num := range nums { if i >= 0 { total = total + num } } return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: if i >= 0 { total = total + num }
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { total = total + num }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: total = total + num
[INFO] [stderr] [DEBUG parse_hir_statement] input: total = total + num
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: return total
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "total", span: #0 bytes(186..191) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stderr] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { ident: "i", span: #0 bytes(209..210) }), value_name: Ident { ident: "num", span: #0 bytes(212..215) }, iterable: HirExpr { kind: Identifier(nums) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Ge) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(total) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(total) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goDayName(d int) string
[INFO] [stderr] {
[INFO] [stderr]     switch d
[INFO] [stderr]     {
[INFO] [stderr]         case 1, 2, 3: return "weekday" case 4, 5: return "almost_weekend" case
[INFO] [stderr]         6, 7, 0: return "weekend" default: return "invalid"
[INFO] [stderr]     }
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goDayName
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "d", span: #0 bytes(152..153) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string
[INFO] [stderr] {
[INFO] [stderr]     switch d
[INFO] [stderr]     {
[INFO] [stderr]    (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     switch d
[INFO] [stderr]     {
[INFO] [stderr]         case 1, 2, 3: return "weekday" case 4, 5: return "almost_weekend" case
[INFO] [stderr]         6, 7, 0: return "weekend" default: return "invalid"
[INFO] [stderr]     }
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: switch d
[INFO] [stderr] {
[INFO] [stderr]     case 1, 2, 3: return "weekday" case 4, 5: return "almost_weekend" case 6,
[INFO] [stderr]     7, 0: r
[INFO] [stderr] [DEBUG parse_hir_statement] input: switch d
[INFO] [stderr] {
[INFO] [stderr]     case 1, 2, 3: return "weekday" case 4, 5: return "almost_weekend" case 6,
[INFO] [stderr]     7, 0: r
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "weekday" case 4, 5 : return "almost_weekend" case 6, 7, 0 : return
[INFO] [stderr] "weekend" default : retur
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "almost_weekend" case 6, 7, 0 : return "weekend" default : return
[INFO] [stderr] "invalid"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "weekend" default : return "invalid"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "invalid"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Switch { selector: Some(HirExpr { kind: Identifier(d) }), cases: [HirSwitchCase { patterns: [HirExpr { kind: Literal(Int(1)) }, HirExpr { kind: Literal(Int(2)) }, HirExpr { kind: Literal(Int(3)) }], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("weekday")) }))] } }, HirSwitchCase { patterns: [HirExpr { kind: Literal(Int(4)) }, HirExpr { kind: Literal(Int(5)) }], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("almost_weekend")) }))] } }, HirSwitchCase { patterns: [HirExpr { kind: Literal(Int(6)) }, HirExpr { kind: Literal(Int(7)) }, HirExpr { kind: Literal(Int(0)) }], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("weekend")) }))] } }], default_body: Some(HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("invalid")) }))] }) }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func isEven(n int) bool { return n % 2 == 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: isEven
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(2008..2009) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return n % 2 == 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return n % 2 == 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return n % 2 == 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return n % 2 == 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Eq) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goIncr() int { return 42 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goIncr
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return 42 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 42 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 42
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 42
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(42)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> gourd-macro/tests/multi_case_switch.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / go! {
[INFO] [stdout]  6 | |     func goDayName(d int) string {
[INFO] [stdout]  7 | |         switch d {
[INFO] [stdout]  8 | |         case 1, 2, 3:
[INFO] [stdout] ...  |
[INFO] [stdout] 18 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_unreachable expression
[INFO] [stdout]    |   any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goStructReturn() Point { return Point{x: 1, y: 2} }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goStructReturn
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: Point { return Point{x: 1, y:  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return Point{x: 1, y: 2} }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return Point { x: 1, y: 2 }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return Point { x: 1, y: 2 }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[Point]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: StructLit(Point) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[Point]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNestedStructs() Outer { return Outer{inner: Inner{x: 1}} }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNestedStructs
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: Outer { return Outer{inner: In (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return Outer{inner: Inner{x: 1}} }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return Outer { inner: Inner{x: 1} }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return Outer { inner: Inner{x: 1} }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[Outer]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: StructLit(Outer) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[Outer]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goCount(nums ...int) int { count := len(nums) return count }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goCount
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "nums", span: #0 bytes(476..480) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { count := len(nums) retur (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { count := len(nums) return count }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: count := len(nums) return count
[INFO] [stderr] [DEBUG parse_hir_statement] input: count := len(nums) return count
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return count
[INFO] [stderr] [DEBUG parse_hir_statement] input: return count
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "count", span: #0 bytes(503..508) }, mutable: true, value: HirExpr { kind: Len(_) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(count) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand2(a, b int) int { return a + b }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand2
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(276..277) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(279..280) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goStructInLet() string { p := Point{x: 1, y: 2} return "ok" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goStructInLet
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { p := Point{x: 1, y: 2 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { p := Point{x: 1, y: 2} return "ok" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: p := Point { x: 1, y: 2 } return "ok"
[INFO] [stderr] [DEBUG parse_hir_statement] input: p := Point { x: 1, y: 2 } return "ok"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return "ok"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "ok"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "p", span: #0 bytes(1465..1466) }, mutable: true, value: HirExpr { kind: StructLit(Point) }, type_hint: Some(HirType { kind: Unknown("p") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(StringTy("ok")) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goFilter(min int, nums ...int) int
[INFO] [stderr] {
[INFO] [stderr]     total := 0 for i, num := range nums
[INFO] [stderr]     { if num > min { total = total + num } } return total
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goFilter
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, nums ... int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "min", span: #0 bytes(687..690) }, HirType { kind: I32 }), (Ident { ident: "nums", span: #0 bytes(696..700) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     total := 0 for i, nu (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     total := 0 for i, num := range nums
[INFO] [stderr]     { if num > min { total = total + num } } return total
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: total := 0 for i, num := range nums { if num > min { total = total + num } }
[INFO] [stderr] return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: total := 0 for i, num := range nums { if num > min { total = total + num } }
[INFO] [stderr] return total
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: for i, num := range nums { if num > min { total = total + num } } return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: for i, num := range nums { if num > min { total = total + num } } return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: if num > min { total = total + num }
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { total = total + num }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: total = total + num
[INFO] [stderr] [DEBUG parse_hir_statement] input: total = total + num
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: return total
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "total", span: #0 bytes(723..728) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stderr] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { ident: "i", span: #0 bytes(746..747) }), value_name: Ident { ident: "num", span: #0 bytes(749..752) }, iterable: HirExpr { kind: Identifier(nums) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(total) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(total) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> gourd-macro/tests/struct_literals.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Point { pub x: i32, pub y: i32 }
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Outer` is never constructed
[INFO] [stdout]   --> gourd-macro/tests/struct_literals.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Outer { pub inner: Inner }
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Inner` is never constructed
[INFO] [stdout]   --> gourd-macro/tests/struct_literals.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Inner { pub x: i32 }
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goIncr() int { return 42 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goIncr
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return 42 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 42 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 42
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 42
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(42)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goStr(bytes []byte) string { return string(bytes) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goStr
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] byte (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "bytes", span: #0 bytes(6437..6442) }, HirType { kind: SliceRef(HirType { kind: U8 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return string(bytes)  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return string(bytes) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return string(bytes)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return string(bytes)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeConvert(string) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand2(a, b int) int { return a + b }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand2
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(276..277) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(279..280) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand3(a, b, c int) int { return a + b + c }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand3
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(615..616) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(618..619) }, HirType { kind: I32 }), (Ident { ident: "c", span: #0 bytes(621..622) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b + c } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b + c }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b + c
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b + c
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendItem() [] int { return append([]int{1, 2, 3}, 4) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendItem
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return append([]int{1 (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return append([]int{1, 2, 3}, 4) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return append([]int{1, 2, 3}, 4)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return append([]int{1, 2, 3}, 4)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Append(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNewPoint() Point { return new(Point) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNewPoint
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: Point { return new(Point) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return new(Point) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return new(Point)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return new(Point)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[Point]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: New(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[Point]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goStr(bytes []byte) string { return string(bytes) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goStr
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] byte (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "bytes", span: #0 bytes(6437..6442) }, HirType { kind: SliceRef(HirType { kind: U8 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return string(bytes)  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return string(bytes) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return string(bytes)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return string(bytes)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeConvert(string) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand(a, b, c int) int { return a + b + c }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(6946..6947) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(6949..6950) }, HirType { kind: I32 }), (Ident { ident: "c", span: #0 bytes(6952..6953) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b + c } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b + c }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b + c
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b + c
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNewWithDefault() int { p := new(Point) return p.x }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNewWithDefault
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { p := new(Point) return p (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { p := new(Point) return p.x }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: p := new(Point) return p.x
[INFO] [stderr] [DEBUG parse_hir_statement] input: p := new(Point) return p.x
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return p.x
[INFO] [stderr] [DEBUG parse_hir_statement] input: return p.x
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "p", span: #0 bytes(501..502) }, mutable: true, value: HirExpr { kind: New(_) }, type_hint: Some(HirType { kind: Unknown("p") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: FieldAccess(x) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand3(a, b, c int) int { return a + b + c }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand3
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(615..616) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(618..619) }, HirType { kind: I32 }), (Ident { ident: "c", span: #0 bytes(621..622) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b + c } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b + c }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b + c
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b + c
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand(a, b, c int) int { return a + b + c }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(6946..6947) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(6949..6950) }, HirType { kind: I32 }), (Ident { ident: "c", span: #0 bytes(6952..6953) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b + c } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b + c }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b + c
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b + c
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func hello() string { return "hello" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: hello
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return "hello" } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return "hello" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return "hello"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "hello"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(StringTy("hello")) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendMultiple() [] int { return append([]int{1}, 2, 3, 4) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendMultiple
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return append([]int{1 (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return append([]int{1}, 2, 3, 4) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return append([]int{1}, 2, 3, 4)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return append([]int{1}, 2, 3, 4)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Append(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goReplace() string
[INFO] [stderr] { return strings.Replace("hello world world", "world", "rust", 2) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goReplace
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return strings.Replac (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Replace("hello world world", "world", "rust", 2) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Replace("hello world world", "world", "rust", 2)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Replace("hello world world", "world", "rust", 2)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Replace.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goReplaceAll() string { return strings.ReplaceAll("aaa", "a", "b") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goReplaceAll
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return strings.Replac (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.ReplaceAll("aaa", "a", "b") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.ReplaceAll("aaa", "a", "b")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.ReplaceAll("aaa", "a", "b")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(ReplaceAll.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goHasPrefix() bool { return strings.HasPrefix("hello world", "hello") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goHasPrefix
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return strings.HasPrefi (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.HasPrefix("hello world", "hello") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.HasPrefix("hello world", "hello")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.HasPrefix("hello world", "hello")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(HasPrefix.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goHasSuffix() bool { return strings.HasSuffix("hello world", "world") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goHasSuffix
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return strings.HasSuffi (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.HasSuffix("hello world", "world") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.HasSuffix("hello world", "world")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.HasSuffix("hello world", "world")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(HasSuffix.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goContains() bool { return strings.Contains("hello world", "world") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goContains
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return strings.Contains (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Contains("hello world", "world") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Contains("hello world", "world")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Contains("hello world", "world")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Contains.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goJoin() string { return strings.Join(["a", "b", "c"], ",") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goJoin
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return strings.Join([ (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Join(["a", "b", "c"], ",") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Join(["a", "b", "c"], ",")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Join(["a", "b", "c"], ",")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Join.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSplit() [] string { return strings.Split("a,b,c", ",") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSplit
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] string { return strings.Spl (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Split("a,b,c", ",") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Split("a,b,c", ",")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Split("a,b,c", ",")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < :: gourd :: GoString >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Split.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < :: gourd :: GoString >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goIndex() int { return strings.Index("hello world", "world") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goIndex
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return strings.Index("he (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Index("hello world", "world") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Index("hello world", "world")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Index("hello world", "world")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Index.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTrim() string { return strings.Trim("  hello  ", " ") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTrim
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return strings.Trim(" (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Trim("  hello  ", " ") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Trim("  hello  ", " ")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Trim("  hello  ", " ")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Trim.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goToUpper() string { return strings.ToUpper("hello") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goToUpper
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return strings.ToUppe (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.ToUpper("hello") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.ToUpper("hello")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.ToUpper("hello")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(ToUpper.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNewInt() int { return new(int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNewInt
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return new(int) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return new(int) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return new(int)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return new(int)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: New(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTimeNow() int64 { return time.Now() }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTimeNow
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int64 { return time.Now() } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return time.Now() }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return time.Now()
[INFO] [stderr] [DEBUG parse_hir_statement] input: return time.Now()
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i64]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Now.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i64]
[INFO] [stdout] warning: unused import: `std::convert::From`
[INFO] [stdout]   --> gourd-macro/tests/package_functions.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::convert::From;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNewString() string { return new(string) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNewString
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return new(string) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return new(string) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return new(string)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return new(string)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: New(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] warning: unused import: `std::convert::From`
[INFO] [stdout]  --> gourd-macro/tests/new_builtin.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::convert::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSumSlice(data []int) int
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> gourd-macro/tests/new_builtin.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Point {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] {
[INFO] [stderr]     sum := 0 for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } }
[INFO] [stderr]     return sum
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSumSlice
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "data", span: #0 bytes(203..207) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     sum := 0 for i, v := (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     sum := 0 for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } }
[INFO] [stderr]     return sum
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: sum := 0 for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } }
[INFO] [stderr] return sum
[INFO] [stderr] [DEBUG parse_hir_statement] input: sum := 0 for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } }
[INFO] [stderr] return sum
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } } return sum
[INFO] [stderr] [DEBUG parse_hir_statement] input: for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } } return sum
[INFO] [stderr] [DEBUG parse_hir_statement] input: if i >= 0 && v > 0 { sum = sum + v }
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { sum = sum + v }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: sum = sum + v
[INFO] [stderr] [DEBUG parse_hir_statement] input: sum = sum + v
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return sum
[INFO] [stderr] [DEBUG parse_hir_statement] input: return sum
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "sum", span: #0 bytes(229..232) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stderr] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { ident: "i", span: #0 bytes(250..251) }), value_name: Ident { ident: "v", span: #0 bytes(253..254) }, iterable: HirExpr { kind: Identifier(data) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(And) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(sum) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(sum) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendNoop() [] int { return append([]int{1, 2}) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendNoop
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return append([]int{1 (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return append([]int{1, 2}) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return append([]int{1, 2})
[INFO] [stderr] [DEBUG parse_hir_statement] input: return append([]int{1, 2})
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Append(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func hello() string { return "hello" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: hello
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return "hello" } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return "hello" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return "hello"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "hello"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(StringTy("hello")) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSliceLiteral() [] int { return []int{1, 2, 3} }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSliceLiteral
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return []int{1, 2, 3} (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return []int{1, 2, 3} }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return [] int { 1, 2, 3 }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return [] int { 1, 2, 3 }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: SliceLiteral(3 elems) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goComplexBasic() Complex128 { c := complex(1.0, 2.0) return c }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goComplexBasic
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: Complex128 { c := complex(1.0, (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { c := complex(1.0, 2.0) return c }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: c := complex(1.0, 2.0) return c
[INFO] [stderr] [DEBUG parse_hir_statement] input: c := complex(1.0, 2.0) return c
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return c
[INFO] [stderr] [DEBUG parse_hir_statement] input: return c
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: prelude :: Complex128]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "c", span: #0 bytes(173..174) }, mutable: true, value: HirExpr { kind: Complex128(_) }, type_hint: Some(HirType { kind: Unknown("c") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(c) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: prelude :: Complex128]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSelectDefault(ch chan int) { select { default: } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSelectDefault
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(182..184) }, HirType { kind: Channel(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 0
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { select { default: } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: select { default: }
[INFO] [stderr] [DEBUG parse_hir_statement] input: select { default: }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[]
[INFO] [stderr] DEBUG: No fix applied, using default: Select { cases: [], default_body: Some(HirBlock { stmts: [] }) }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goComplexExtractParts() float64
[INFO] [stderr] { c := complex(3.0, 4.0) r := real(c) i := imag(c) return r + i }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goComplexExtractParts
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: float64 { c := complex(3.0, 4. (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { c := complex(3.0, 4.0) r := real(c) i := imag(c) return r + i }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: c := complex(3.0, 4.0) r := real(c) i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_statement] input: c := complex(3.0, 4.0) r := real(c) i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: r := real(c) i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_statement] input: r := real(c) i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_statement] input: i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #4: return r + i
[INFO] [stderr] [DEBUG parse_hir_statement] input: return r + i
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[f64]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "c", span: #0 bytes(317..318) }, mutable: true, value: HirExpr { kind: Complex128(_) }, type_hint: Some(HirType { kind: Unknown("c") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "r", span: #0 bytes(348..349) }, mutable: true, value: HirExpr { kind: ComplexReal(_) }, type_hint: Some(HirType { kind: Unknown("r") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "i", span: #0 bytes(369..370) }, mutable: true, value: HirExpr { kind: ComplexImag(_) }, type_hint: Some(HirType { kind: Unknown("i") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[f64]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goCountPositive(data []int) int
[INFO] [stderr] {
[INFO] [stderr]     count := 0 for i := range data { if data[i] > 0 { count = count + 1 } }
[INFO] [stderr]     return count
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goCountPositive
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "data", span: #0 bytes(568..572) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     count := 0 for i :=  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     count := 0 for i := range data { if data[i] > 0 { count = count + 1 } }
[INFO] [stderr]     return count
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: count := 0 for i := range data { if data[i] > 0 { count = count + 1 } } return
[INFO] [stderr] count
[INFO] [stderr] [DEBUG parse_hir_statement] input: count := 0 for i := range data { if data[i] > 0 { count = count + 1 } } return
[INFO] [stderr] count
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: for i := range data { if data[i] > 0 { count = count + 1 } } return count
[INFO] [stderr] [DEBUG parse_hir_statement] input: for i := range data { if data[i] > 0 { count = count + 1 } } return count
[INFO] [stderr] [DEBUG parse_hir_statement] input: if data [i] > 0 { count = count + 1 }
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { count = count + 1 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: count = count + 1
[INFO] [stderr] [DEBUG parse_hir_statement] input: count = count + 1
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return count
[INFO] [stderr] [DEBUG parse_hir_statement] input: return count
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "count", span: #0 bytes(594..599) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stderr] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { ident: "i", span: #0 bytes(617..618) }), value_name: Ident { ident: "_", span: #8 bytes(537..750) }, iterable: HirExpr { kind: Identifier(data) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(count) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(count) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendVar(data []int, x int) [] int { return append(data, x) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendVar
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int, x int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "data", span: #0 bytes(566..570) }, HirType { kind: SliceRef(HirType { kind: I32 }) }), (Ident { ident: "x", span: #0 bytes(578..579) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return append(data, x (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return append(data, x) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return append(data, x)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return append(data, x)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Append(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] warning: unused imports: `Complex128` and `Complex64`
[INFO] [stdout]  --> gourd-macro/tests/complex_builtin_test.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use gourd::prelude::{Complex64, Complex128};
[INFO] [stdout]   |                      ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goComplexArithmetic() float64
[INFO] [stderr] {
[INFO] [stderr]     a := complex(1.0, 2.0) b := complex(3.0, 4.0) c := a + b return real(c) +
[INFO] [stderr]     imag(c)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goComplexArithmetic
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: float64
[INFO] [stderr] {
[INFO] [stderr]     a := complex(1.0 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     a := complex(1.0, 2.0) b := complex(3.0, 4.0) c := a + b return real(c) +
[INFO] [stderr]     imag(c)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: a := complex(1.0, 2.0) b := complex(3.0, 4.0) c := a + b return real(c) +
[INFO] [stderr] imag(c)
[INFO] [stderr] [DEBUG parse_hir_statement] input: a := complex(1.0, 2.0) b := complex(3.0, 4.0) c := a + b return real(c) +
[INFO] [stderr] imag(c)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: b := complex(3.0, 4.0) c := a + b return real(c) + imag(c)
[INFO] [stderr] [DEBUG parse_hir_statement] input: b := complex(3.0, 4.0) c := a + b return real(c) + imag(c)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: c := a + b return real(c) + imag(c)
[INFO] [stderr] [DEBUG parse_hir_statement] input: c := a + b return real(c) + imag(c)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #4: return real(c) + imag(c)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return real(c) + imag(c)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[f64]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "a", span: #0 bytes(531..532) }, mutable: true, value: HirExpr { kind: Complex128(_) }, type_hint: Some(HirType { kind: Unknown("a") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "b", span: #0 bytes(562..563) }, mutable: true, value: HirExpr { kind: Complex128(_) }, type_hint: Some(HirType { kind: Unknown("b") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "c", span: #0 bytes(593..594) }, mutable: true, value: HirExpr { kind: Binary(Add) }, type_hint: Some(HirType { kind: Unknown("c") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[f64]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSelectSend(ch chan int, value int) { select { case ch <- value: } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSelectSend
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int, value int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(313..315) }, HirType { kind: Channel(HirType { kind: I32 }) }), (Ident { ident: "value", span: #0 bytes(326..331) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 0
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { select { case ch <- value: } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: select { case ch <- value: }
[INFO] [stderr] [DEBUG parse_hir_statement] input: select { case ch <- value: }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[]
[INFO] [stderr] DEBUG: No fix applied, using default: Select { cases: [Send { ch: HirExpr { kind: Identifier(ch) }, value: HirExpr { kind: Identifier(value) } }], default_body: None }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSliceLiteral() [] int { return []int{1, 2, 3} }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSliceLiteral
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return []int{1, 2, 3} (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return []int{1, 2, 3} }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return [] int { 1, 2, 3 }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return [] int { 1, 2, 3 }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: SliceLiteral(3 elems) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goPanicMsg() int { panic("something went wrong") return 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goPanicMsg
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { panic("something went wr (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { panic("something went wrong") return 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: panic("something went wrong") return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: panic("something went wrong") return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Panic(HirExpr { kind: Literal(StringTy("something went wrong")) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(0)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goPanicEmpty() int { panic() return 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goPanicEmpty
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { panic() return 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { panic() return 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: panic() return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: panic() return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Panic(HirExpr { kind: Literal(StringTy("")) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(0)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSelectSendWithDefault(ch chan int, value int)
[INFO] [stderr] { select { case ch <- value: default: } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSelectSendWithDefault
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int, value int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(482..484) }, HirType { kind: Channel(HirType { kind: I32 }) }), (Ident { ident: "value", span: #0 bytes(495..500) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 0
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { select { case ch <- value: default: } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: select { case ch <- value: default: }
[INFO] [stderr] [DEBUG parse_hir_statement] input: select { case ch <- value: default: }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[]
[INFO] [stderr] DEBUG: No fix applied, using default: Select { cases: [Send { ch: HirExpr { kind: Identifier(ch) }, value: HirExpr { kind: Identifier(value) } }], default_body: Some(HirBlock { stmts: [] }) }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[]
[INFO] [stdout] warning: unused variable: `ch`
[INFO] [stdout]  --> gourd-macro/tests/select_builtin.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 |     func goSelectDefault(ch chan int) {
[INFO] [stdout]   |                          ^^ help: if this is intentional, prefix it with an underscore: `_ch`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSkipFirst(data []int) int { for range data {} return len(data) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSkipFirst
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "data", span: #0 bytes(920..924) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { for range data {} return (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { for range data {} return len(data) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: for range data {} return len(data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: for range data {} return len(data)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return len(data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(data)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: ForRange { index_name: None, value_name: Ident { ident: "_", span: #11 bytes(893..1039) }, iterable: HirExpr { kind: Identifier(data) }, body: HirBlock { stmts: [] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goPanicOnError(n int) int
[INFO] [stderr] { if n < 0 { panic("negative number not allowed") } return n }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goPanicOnError
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(535..536) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { if n < 0 { panic("negati (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { if n < 0 { panic("negative number not allowed") } return n }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: if n < 0 { panic("negative number not allowed") } return n
[INFO] [stderr] [DEBUG parse_hir_statement] input: if n < 0 { panic("negative number not allowed") } return n
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { panic("negative number not allowed") } return n
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return n
[INFO] [stderr] [DEBUG parse_hir_statement] input: return n
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Expr(HirExpr { kind: Panic(_) })] }, else_body: None }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(n) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> gourd-macro/tests/panic_builtin.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | / go! {
[INFO] [stdout] 12 | |     func goPanicMsg() int {
[INFO] [stdout] 13 | |         panic("something went wrong")
[INFO] [stdout] 14 | |         return 0
[INFO] [stdout] 15 | |     }
[INFO] [stdout] 16 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_unreachable statement
[INFO] [stdout]    |   any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> gourd-macro/tests/panic_builtin.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | / go! {
[INFO] [stdout] 20 | |     func goPanicEmpty() int {
[INFO] [stdout] 21 | |         panic()
[INFO] [stdout] 22 | |         return 0
[INFO] [stdout] 23 | |     }
[INFO] [stdout] 24 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_unreachable statement
[INFO] [stdout]    |   any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goRecoverNoPanic() string
[INFO] [stderr] { result := recover() if result != nil { return "caught" } return "no panic" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goRecoverNoPanic
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string
[INFO] [stderr] { result := recover() i (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { result := recover() if result != nil { return "caught" } return "no panic" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return "caught"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "caught"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "no panic"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(167..173) }, mutable: true, value: HirExpr { kind: Recover }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Ne) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("caught")) }))] }, else_body: None }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(StringTy("no panic")) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goRecoverAfterPanic() string
[INFO] [stderr] {
[INFO] [stderr]     f := func() int { panic("oops") return 0 } f() result := recover() if
[INFO] [stderr]     result != nil { return "caught" } return "no panic"
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goRecoverAfterPanic
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string
[INFO] [stderr] {
[INFO] [stderr]     f := func() int { (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     f := func() int { panic("oops") return 0 } f() result := recover() if
[INFO] [stderr]     result != nil { return "caught" } return "no panic"
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func() int { panic("oops") return 0 } f() result := recover() if result
[INFO] [stderr] != nil { return "caught
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func() int { panic("oops") return 0 } f() result := recover() if result
[INFO] [stderr] != nil { return "caught
[INFO] [stderr] [DEBUG parse_hir_type] input: int { panic("oops") return 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { panic("oops") return 0 } f() result := recover() if result != nil
[INFO] [stderr] { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: panic("oops") return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: panic("oops") return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: f() result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: f() result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #4: if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return "caught"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "caught"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #5: return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "no panic"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(583..584) }, params: [], body: HirBlock { stmts: [Panic(HirExpr { kind: Literal(StringTy("oops")) }), Return(Some(HirExpr { kind: Literal(Int(0)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 0 args) })
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(678..684) }, mutable: true, value: HirExpr { kind: Recover }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Ne) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("caught")) }))] }, else_body: None }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(StringTy("no panic")) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertInt(x int) int { return x.(int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertInt
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(225..226) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return x.(int) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(int) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(int)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(int)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> gourd-macro/tests/recover_builtin_test.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | / go! {
[INFO] [stdout] 21 | |     func goRecoverAfterPanic() string {
[INFO] [stdout] 22 | |         f := func() int {
[INFO] [stdout] 23 | |             panic("oops")
[INFO] [stdout] ...  |
[INFO] [stdout] 33 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_unreachable statement
[INFO] [stdout]    |   any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertString(x int) String { return x.(string) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertString
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(463..464) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: String { return x.(string) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(string) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(string)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(string)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMin(a int, b int) int { return min(a, b) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMin
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(43..44) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(50..51) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return min(a, b) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return min(a, b) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return min(a, b)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return min(a, b)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MinMax(min) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertFloat64(x int) f64 { return x.(float64) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertFloat64
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(728..729) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: f64 { return x.(float64) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(float64) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(float64)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(float64)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[f64]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[f64]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertUint(x int) uint { return x.(uint) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertUint
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(972..973) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: uint { return x.(uint) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(uint) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(uint)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(uint)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[u32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[u32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMax(a int, b int) int { return max(a, b) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMax
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(118..119) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(125..126) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return max(a, b) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return max(a, b) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return max(a, b)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return max(a, b)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MinMax(max) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertBool(x int) bool { return x.(bool) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertBool
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1220..1221) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return x.(bool) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(bool) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(bool)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(bool)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goChannelRecv(ch chan int) int { return <-ch }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goChannelRecv
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(245..247) }, HirType { kind: Channel(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return <-ch } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return <-ch }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return <- ch
[INFO] [stderr] [DEBUG parse_hir_statement] input: return <- ch
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Unary(ChanRecv) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func go_divmod(n int, d int) (int, int) { return n / d, n % d }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: go_divmod
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, d int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(189..190) }, HirType { kind: I32 }), (Ident { ident: "d", span: #0 bytes(196..197) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 2
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return n / d, n % d }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return n / d, n % d
[INFO] [stderr] [DEBUG parse_hir_statement] input: return n / d, n % d
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32, i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Tuple(2 items) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32, i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertByte(x int) byte { return x.(byte) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertByte
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1458..1459) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: byte { return x.(byte) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(byte) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(byte)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(byte)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[u8]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[u8]
[INFO] [stderr] [DEBUG parse_hir_function] input: func main() int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 }
[INFO] [stderr]     data := []int{1, 2, 3} return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: main
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 }
[INFO] [stderr]     data := []int{1, 2, 3} return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 } data
[INFO] [stderr] := [] int { 1, 2, 3 } r
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 } data
[INFO] [stderr] := [] int { 1, 2, 3 } r
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG parse_hir_type] input: int { if len(arr) > 0 { return (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { if len(arr) > 0 { return arr[0] } return 0 } data := [] int { 1, 2, 3 }
[INFO] [stderr] return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: if len(arr) > 0 { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: if len(arr) > 0 { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return arr [0]
[INFO] [stderr] [DEBUG parse_hir_statement] input: return arr [0]
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: data := [] int { 1, 2, 3 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: data := [] int { 1, 2, 3 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return f(&data)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(1179..1180) }, params: [(Ident { ident: "arr", span: #0 bytes(1189..1192) }, Some(HirType { kind: SliceRef(HirType { kind: I32 }) }))], body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Index(_) }))] }, else_body: None }, Return(Some(HirExpr { kind: Literal(Int(0)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "data", span: #0 bytes(1343..1347) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 1 args) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertRune(x int) rune { return x.(rune) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertRune
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1699..1700) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: rune { return x.(rune) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(rune) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(rune)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(rune)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[char]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[char]
[INFO] [stderr] [DEBUG parse_hir_function] input: func main() int { f := func() { return 0 } f() return 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: main
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { f := func() { return 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { f := func() { return 0 } f() return 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func() { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func() { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: f() return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(979..980) }, params: [], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(Int(0)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 0 args) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(0)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goChannelSend(ch chan int, value int) { ch <- value }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goChannelSend
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int, value int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(434..436) }, HirType { kind: Channel(HirType { kind: I32 }) }), (Ident { ident: "value", span: #0 bytes(447..452) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 0
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ch <- value }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[]
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Binary(ChanSend) })
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMakeChannel() chan int { return make(chan int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMakeChannel
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int { return make(chan in (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return make(chan int) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return make(chan int)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return make(chan int)
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoChannel < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Make(Channel(HirType { kind: I32 })) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoChannel < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func go_divmod(n int, d int) (int, int) { return n / d, n % d }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: go_divmod
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, d int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(189..190) }, HirType { kind: I32 }), (Ident { ident: "d", span: #0 bytes(196..197) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 2
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return n / d, n % d }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return n / d, n % d
[INFO] [stderr] [DEBUG parse_hir_statement] input: return n / d, n % d
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32, i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Tuple(2 items) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32, i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func go_triple(a int, b int) (int, int, string)
[INFO] [stderr] { return a + b, a * b, "pair" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: go_triple
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(571..572) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(578..579) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 3
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b, a * b, "pair" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b, a * b, "pair"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b, a * b, "pair"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32, i32, :: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Tuple(3 items) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32, i32, :: gourd :: GoString]
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_get`: Use GoMap::get() instead
[INFO] [stdout]  --> gourd-macro/tests/prelude_map_ops.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gourd::prelude::{map_get, map_set_mut, map_set_val};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_set_mut`: Use GoMap::set() instead
[INFO] [stdout]  --> gourd-macro/tests/prelude_map_ops.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gourd::prelude::{map_get, map_set_mut, map_set_val};
[INFO] [stdout]   |                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_set_val`: Use GoMap::set() then dereference, or insert directly
[INFO] [stdout]  --> gourd-macro/tests/prelude_map_ops.rs:3:44
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gourd::prelude::{map_get, map_set_mut, map_set_val};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_get`: Use GoMap::get() instead
[INFO] [stdout]   --> gourd-macro/tests/prelude_map_ops.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 |     assert_eq!(map_get(&map, "a".to_string()), 42);
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_get`: Use GoMap::get() instead
[INFO] [stdout]   --> gourd-macro/tests/prelude_map_ops.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |     assert_eq!(map_get(&map, "b".to_string()), 7);
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_get`: Use GoMap::get() instead
[INFO] [stdout]   --> gourd-macro/tests/prelude_map_ops.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     assert_eq!(map_get(&map, "c".to_string()), 0); // default for missing key
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_set_mut`: Use GoMap::set() instead
[INFO] [stdout]   --> gourd-macro/tests/prelude_map_ops.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |     assert_eq!(*map_set_mut(&mut map, "b".to_string()), 0);
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_set_mut`: Use GoMap::set() instead
[INFO] [stdout]   --> gourd-macro/tests/prelude_map_ops.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 |     assert_eq!(*map_set_mut(&mut map, "a".to_string()), 42);
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_set_mut`: Use GoMap::set() instead
[INFO] [stdout]   --> gourd-macro/tests/prelude_map_ops.rs:29:6
[INFO] [stdout]    |
[INFO] [stdout] 29 |     *map_set_mut(&mut map, "a".to_string()) += 10;
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_set_val`: Use GoMap::set() then dereference, or insert directly
[INFO] [stdout]   --> gourd-macro/tests/prelude_map_ops.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     map_set_val(&mut map, "a".to_string(), 42);
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `gourd::prelude::map_set_val`: Use GoMap::set() then dereference, or insert directly
[INFO] [stdout]   --> gourd-macro/tests/prelude_map_ops.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     map_set_val(&mut map, "b".to_string(), 7);
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNestedTypeAssert(x int) int { return x.(int).(int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNestedTypeAssert
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1941..1942) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG parse_hir_function] input: func main() int { f := func() { return 0 } f() return 0 }
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return x.(int).(int) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(int).(int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: main
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { f := func() { return 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { f := func() { return 0 } f() return 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(int).(int)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(int).(int)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func() { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func() { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: f() return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(781..782) }, params: [], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(Int(0)) }))] } }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 0 args) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(0)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goCopySlice() int
[INFO] [stderr] {
[INFO] [stderr]     dst := []int{1, 2, 3, 4, 5} src := []int{10, 20} result := copy(dst, src)
[INFO] [stderr]     return result
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goCopySlice
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     dst := []int{1, 2, 3 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     dst := []int{1, 2, 3, 4, 5} src := []int{10, 20} result := copy(dst, src)
[INFO] [stderr]     return result
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: dst := [] int { 1, 2, 3, 4, 5 } src := [] int { 10, 20 } result :=
[INFO] [stderr] copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: dst := [] int { 1, 2, 3, 4, 5 } src := [] int { 10, 20 } result :=
[INFO] [stderr] copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: src := [] int { 10, 20 } result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: src := [] int { 10, 20 } result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #4: return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: return result
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "dst", span: #0 bytes(290..293) }, mutable: true, value: HirExpr { kind: SliceLiteral(5 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "src", span: #0 bytes(326..329) }, mutable: true, value: HirExpr { kind: SliceLiteral(2 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(355..361) }, mutable: true, value: HirExpr { kind: Copy(_) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func main() int
[INFO] [stderr] { add := func(x int, y int) int { return x + y } return add(1, 2) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: main
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { add := func(x int, y int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { add := func(x int, y int) int { return x + y } return add(1, 2) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: add := func(x int, y int) int { return x + y } return add(1, 2)
[INFO] [stderr] [DEBUG parse_hir_statement] input: add := func(x int, y int) int { return x + y } return add(1, 2)
[INFO] [stderr] [DEBUG parse_hir_type] input: int, y int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return x + y } return ad (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x + y } return add(1, 2)
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x + y
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x + y
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return add(1, 2)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return add(1, 2)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "add", span: #0 bytes(501..504) }, params: [(Ident { ident: "x", span: #0 bytes(513..514) }, Some(HirType { kind: I32 })), (Ident { ident: "y", span: #0 bytes(520..521) }, Some(HirType { kind: I32 }))], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Binary(Add) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Call(func=HirExpr { kind: Identifier(add) }, 2 args) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goCopyPartial() int
[INFO] [stderr] {
[INFO] [stderr]     dst := []int{0, 0, 0, 0, 0} src := []int{1, 2, 3, 4, 5, 6} result :=
[INFO] [stderr]     copy(dst, src) return result
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goCopyPartial
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     dst := []int{0, 0, 0 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     dst := []int{0, 0, 0, 0, 0} src := []int{1, 2, 3, 4, 5, 6} result :=
[INFO] [stderr]     copy(dst, src) return result
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: dst := [] int { 0, 0, 0, 0, 0 } src := [] int { 1, 2, 3, 4, 5, 6 } result :=
[INFO] [stderr] copy(dst, src) return r
[INFO] [stderr] [DEBUG parse_hir_statement] input: dst := [] int { 0, 0, 0, 0, 0 } src := [] int { 1, 2, 3, 4, 5, 6 } result :=
[INFO] [stderr] copy(dst, src) return r
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: src := [] int { 1, 2, 3, 4, 5, 6 } result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: src := [] int { 1, 2, 3, 4, 5, 6 } result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #4: return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: return result
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "dst", span: #0 bytes(456..459) }, mutable: true, value: HirExpr { kind: SliceLiteral(5 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "src", span: #0 bytes(492..495) }, mutable: true, value: HirExpr { kind: SliceLiteral(6 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(531..537) }, mutable: true, value: HirExpr { kind: Copy(_) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func main() int { f := func() int { return 42 } return f() }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: main
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { f := func() int { return (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { f := func() int { return 42 } return f() }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func() int { return 42 } return f()
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func() int { return 42 } return f()
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return 42 } return f() (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 42 } return f()
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 42
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 42
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return f()
[INFO] [stderr] [DEBUG parse_hir_statement] input: return f()
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(213..214) }, params: [], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(Int(42)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 0 args) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMakeBufferedChannel() chan int { return make(chan int, 10) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMakeBufferedChannel
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int { return make(chan in (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return make(chan int, 10) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return make(chan int, 10)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return make(chan int, 10)
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int, 10 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoChannel < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Make(ChannelWithCap(HirType { kind: I32 }, HirExpr { kind: Literal(Int(10)) })) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoChannel < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func go_triple(a int, b int) (int, int, string)
[INFO] [stderr] { return a + b, a * b, "pair" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: go_triple
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(571..572) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(578..579) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 3
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b, a * b, "pair" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b, a * b, "pair"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b, a * b, "pair"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32, i32, :: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Tuple(3 items) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32, i32, :: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMapSize(_a string) int
[INFO] [stderr] { m := map[string]int{"a": 1, "b": 2, "c": 3} return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMapSize
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "_a", span: #0 bytes(1179..1181) }, HirType { kind: StringTy })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { m := map[string]int{"a": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"a": 1, "b": 2, "c": 3} return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "a": 1, "b": 2, "c": 3 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "a": 1, "b": 2, "c": 3 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(1204..1205) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goDeleteFromMap() int
[INFO] [stderr] { m := map[string]int{"a": 1, "b": 2, "c": 3} delete(m, "b") return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goDeleteFromMap
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] { m := map[string]int{"a": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"a": 1, "b": 2, "c": 3} delete(m, "b") return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "a": 1, "b": 2, "c": 3 } delete(m, "b") return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "a": 1, "b": 2, "c": 3 } delete(m, "b") return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: delete(m, "b") return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: delete(m, "b") return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(831..832) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Delete(_) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goDeleteNonexistent() int
[INFO] [stderr] { m := map[string]int{"a": 1, "b": 2} delete(m, "z") return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goDeleteNonexistent
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { m := map[string]int{"a": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"a": 1, "b": 2} delete(m, "z") return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "a": 1, "b": 2 } delete(m, "z") return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "a": 1, "b": 2 } delete(m, "z") return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: delete(m, "z") return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: delete(m, "z") return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(980..981) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Delete(_) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stdout] warning: unused import: `gourd::GoChannel`
[INFO] [stdout]  --> gourd-macro/tests/channel_ops.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use gourd::GoChannel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goChannelEcho(ch chan int) int { ch <- 42 return <-ch }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goChannelEcho
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(633..635) }, HirType { kind: Channel(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { ch <- 42 return <-ch } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ch <- 42 return <-ch }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: ch <- 42 return <- ch
[INFO] [stderr] [DEBUG parse_hir_statement] input: ch <- 42 return <- ch
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return <- ch
[INFO] [stderr] [DEBUG parse_hir_statement] input: return <- ch
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: ChannelSend { channel: HirExpr { kind: Identifier(ch) }, value: HirExpr { kind: Literal(Int(42)) } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Unary(ChanRecv) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendSingle() int
[INFO] [stderr] { s := []int{1, 2, 3} result := append(s, 4) return len(result) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendSingle
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { s := []int{1, 2, 3} resu (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { s := []int{1, 2, 3} result := append(s, 4) return len(result) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: s := [] int { 1, 2, 3 } result := append(s, 4) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: s := [] int { 1, 2, 3 } result := append(s, 4) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: result := append(s, 4) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := append(s, 4) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(result)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "s", span: #0 bytes(1313..1314) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(1341..1347) }, mutable: true, value: HirExpr { kind: Append(_) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMapSize(_a string) int
[INFO] [stderr] { m := map[string]int{"a": 1, "b": 2, "c": 3} return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMapSize
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "_a", span: #0 bytes(1179..1181) }, HirType { kind: StringTy })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { m := map[string]int{"a": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"a": 1, "b": 2, "c": 3} return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "a": 1, "b": 2, "c": 3 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "a": 1, "b": 2, "c": 3 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(1204..1205) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goEmptyMap() int { m := map[string]int{"x": 0} return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goEmptyMap
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { m := map[string]int{"x": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"x": 0} return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "x": 0 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "x": 0 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(1670..1671) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMakeStringChannel() chan string { return make(chan string, 5) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMakeStringChannel
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: chan string { return make(chan (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return make(chan string, 5) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return make(chan string, 5)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return make(chan string, 5)
[INFO] [stderr] [DEBUG parse_hir_type] input: chan string, 5 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoChannel < :: gourd :: GoString >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Make(ChannelWithCap(HirType { kind: StringTy }, HirExpr { kind: Literal(Int(5)) })) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoChannel < :: gourd :: GoString >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendMultiple() int
[INFO] [stderr] { s := []int{1, 2, 3} result := append(s, 4, 5, 6) return len(result) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendMultiple
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { s := []int{1, 2, 3} resu (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { s := []int{1, 2, 3} result := append(s, 4, 5, 6) return len(result) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: s := [] int { 1, 2, 3 } result := append(s, 4, 5, 6) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: s := [] int { 1, 2, 3 } result := append(s, 4, 5, 6) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: result := append(s, 4, 5, 6) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := append(s, 4, 5, 6) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(result)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "s", span: #0 bytes(1448..1449) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(1476..1482) }, mutable: true, value: HirExpr { kind: Append(_) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goEmptyMap() int { m := map[string]int{"x": 0} return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goEmptyMap
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { m := map[string]int{"x": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"x": 0} return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "x": 0 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "x": 0 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(1670..1671) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendEmpty() int
[INFO] [stderr] { s := []int{1, 2, 3} result := append(s) return len(result) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendEmpty
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { s := []int{1, 2, 3} resu (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { s := []int{1, 2, 3} result := append(s) return len(result) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: s := [] int { 1, 2, 3 } result := append(s) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: s := [] int { 1, 2, 3 } result := append(s) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: result := append(s) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := append(s) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(result)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "s", span: #0 bytes(1586..1587) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(1614..1620) }, mutable: true, value: HirExpr { kind: Append(_) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stdout] warning: unused import: `std::convert::From`
[INFO] [stdout]  --> gourd-macro/tests/std_copy_delete_append.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::convert::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMakeMap() map [string] int { return make(map[string]int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMakeMap
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: map [string] int { return make (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return make(map[string]int) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return make(map[string]int)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return make(map[string]int)
[INFO] [stderr] [DEBUG parse_hir_type] input: map [string] int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString, i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Make(Map(HirType { kind: StringTy }, HirType { kind: I32 })) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString, i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMakeSlice() [] int { return make([]int, 5) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMakeSlice
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return make([]int, 5) (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return make([]int, 5) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return make([]int, 5)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return make([]int, 5)
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int, 5 (peek_ident=false, peek_bracket=true)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Make(Slice(HirType { kind: I32 }, HirExpr { kind: Literal(Int(5)) })) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 04s
[INFO] running `Command { std: "docker" "inspect" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: value assigned to `idx` is never read
[INFO] [stderr]    --> gourd-codegen/src/transpiler/hir/parsing_hir/expressions.rs:754:32
[INFO] [stderr]     |
[INFO] [stderr] 754 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stderr]     |                                ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `idx` is never read
[INFO] [stderr]    --> gourd-codegen/src/transpiler/hir/parsing_hir/statement_parsing.rs:670:32
[INFO] [stderr]     |
[INFO] [stderr] 670 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stderr]     |                                ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `collected` is never read
[INFO] [stderr]    --> gourd-codegen/src/lib.rs:550:25
[INFO] [stderr]     |
[INFO] [stderr] 550 |                         collected = true;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: `gourd-codegen` (lib) generated 3 warnings
[INFO] [stderr] warning: `gourd-codegen` (lib) generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> gourd/src/go_slice.rs:711:13
[INFO] [stderr]     |
[INFO] [stderr] 711 |         let mut s = GoSlice::from_vec(vec![0xff, 0xfe]);
[INFO] [stderr]     |             ----^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> gourd/src/go_map.rs:344:13
[INFO] [stderr]     |
[INFO] [stderr] 344 |         let mut m: GoMap<String, i32> = GoMap::new();
[INFO] [stderr]     |             ----^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: `gourd` (lib test) generated 2 warnings (run `cargo fix --lib -p gourd --tests` to apply 2 suggestions)
[INFO] [stderr] [DEBUG parse_hir_function] input: func go_divmod(n int, d int) (int, int) { return n / d, n % d }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: go_divmod
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, d int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(189..190) }, HirType { kind: I32 }), (Ident { ident: "d", span: #0 bytes(196..197) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 2
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return n / d, n % d }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return n / d, n % d
[INFO] [stderr] [DEBUG parse_hir_statement] input: return n / d, n % d
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32, i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Tuple(2 items) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32, i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func go_divmod(n int, d int) (int, int) { return n / d, n % d }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: go_divmod
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, d int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(189..190) }, HirType { kind: I32 }), (Ident { ident: "d", span: #0 bytes(196..197) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 2
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return n / d, n % d }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return n / d, n % d
[INFO] [stderr] [DEBUG parse_hir_statement] input: return n / d, n % d
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32, i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Tuple(2 items) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32, i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func go_triple(a int, b int) (int, int, string)
[INFO] [stderr] { return a + b, a * b, "pair" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: go_triple
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(571..572) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(578..579) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 3
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b, a * b, "pair" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b, a * b, "pair"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b, a * b, "pair"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32, i32, :: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Tuple(3 items) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32, i32, :: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func go_triple(a int, b int) (int, int, string)
[INFO] [stderr] { return a + b, a * b, "pair" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: go_triple
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(571..572) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(578..579) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 3
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b, a * b, "pair" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b, a * b, "pair"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b, a * b, "pair"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32, i32, :: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Tuple(3 items) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32, i32, :: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMapSize(_a string) int
[INFO] [stderr] { m := map[string]int{"a": 1, "b": 2, "c": 3} return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMapSize
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "_a", span: #0 bytes(1179..1181) }, HirType { kind: StringTy })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { m := map[string]int{"a": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"a": 1, "b": 2, "c": 3} return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "a": 1, "b": 2, "c": 3 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "a": 1, "b": 2, "c": 3 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(1204..1205) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMapSize(_a string) int
[INFO] [stderr] { m := map[string]int{"a": 1, "b": 2, "c": 3} return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMapSize
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "_a", span: #0 bytes(1179..1181) }, HirType { kind: StringTy })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { m := map[string]int{"a": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"a": 1, "b": 2, "c": 3} return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "a": 1, "b": 2, "c": 3 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "a": 1, "b": 2, "c": 3 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(1204..1205) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goEmptyMap() int { m := map[string]int{"x": 0} return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goEmptyMap
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { m := map[string]int{"x": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"x": 0} return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "x": 0 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "x": 0 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(1670..1671) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goEmptyMap() int { m := map[string]int{"x": 0} return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goEmptyMap
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { m := map[string]int{"x": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"x": 0} return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "x": 0 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "x": 0 } return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(1670..1671) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendItem() [] int { return append([]int{1, 2, 3}, 4) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendItem
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return append([]int{1 (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return append([]int{1, 2, 3}, 4) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return append([]int{1, 2, 3}, 4)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return append([]int{1, 2, 3}, 4)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Append(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendMultiple() [] int { return append([]int{1}, 2, 3, 4) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendMultiple
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return append([]int{1 (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return append([]int{1}, 2, 3, 4) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return append([]int{1}, 2, 3, 4)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return append([]int{1}, 2, 3, 4)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Append(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendNoop() [] int { return append([]int{1, 2}) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendNoop
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return append([]int{1 (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return append([]int{1, 2}) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return append([]int{1, 2})
[INFO] [stderr] [DEBUG parse_hir_statement] input: return append([]int{1, 2})
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Append(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendVar(data []int, x int) [] int { return append(data, x) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendVar
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int, x int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "data", span: #0 bytes(566..570) }, HirType { kind: SliceRef(HirType { kind: I32 }) }), (Ident { ident: "x", span: #0 bytes(578..579) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return append(data, x (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return append(data, x) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return append(data, x)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return append(data, x)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Append(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goComplexBasic() Complex128 { c := complex(1.0, 2.0) return c }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goComplexBasic
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: Complex128 { c := complex(1.0, (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { c := complex(1.0, 2.0) return c }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: c := complex(1.0, 2.0) return c
[INFO] [stderr] [DEBUG parse_hir_statement] input: c := complex(1.0, 2.0) return c
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return c
[INFO] [stderr] [DEBUG parse_hir_statement] input: return c
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: prelude :: Complex128]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "c", span: #0 bytes(173..174) }, mutable: true, value: HirExpr { kind: Complex128(_) }, type_hint: Some(HirType { kind: Unknown("c") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(c) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: prelude :: Complex128]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goComplexExtractParts() float64
[INFO] [stderr] { c := complex(3.0, 4.0) r := real(c) i := imag(c) return r + i }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goComplexExtractParts
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: float64 { c := complex(3.0, 4. (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { c := complex(3.0, 4.0) r := real(c) i := imag(c) return r + i }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: c := complex(3.0, 4.0) r := real(c) i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_statement] input: c := complex(3.0, 4.0) r := real(c) i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: r := real(c) i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_statement] input: r := real(c) i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_statement] input: i := imag(c) return r + i
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #4: return r + i
[INFO] [stderr] [DEBUG parse_hir_statement] input: return r + i
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[f64]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "c", span: #0 bytes(317..318) }, mutable: true, value: HirExpr { kind: Complex128(_) }, type_hint: Some(HirType { kind: Unknown("c") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "r", span: #0 bytes(348..349) }, mutable: true, value: HirExpr { kind: ComplexReal(_) }, type_hint: Some(HirType { kind: Unknown("r") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "i", span: #0 bytes(369..370) }, mutable: true, value: HirExpr { kind: ComplexImag(_) }, type_hint: Some(HirType { kind: Unknown("i") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[f64]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goComplexArithmetic() float64
[INFO] [stderr] {
[INFO] [stderr]     a := complex(1.0, 2.0) b := complex(3.0, 4.0) c := a + b return real(c) +
[INFO] [stderr]     imag(c)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goComplexArithmetic
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: float64
[INFO] [stderr] {
[INFO] [stderr]     a := complex(1.0 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     a := complex(1.0, 2.0) b := complex(3.0, 4.0) c := a + b return real(c) +
[INFO] [stderr]     imag(c)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: a := complex(1.0, 2.0) b := complex(3.0, 4.0) c := a + b return real(c) +
[INFO] [stderr] imag(c)
[INFO] [stderr] [DEBUG parse_hir_statement] input: a := complex(1.0, 2.0) b := complex(3.0, 4.0) c := a + b return real(c) +
[INFO] [stderr] imag(c)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: b := complex(3.0, 4.0) c := a + b return real(c) + imag(c)
[INFO] [stderr] [DEBUG parse_hir_statement] input: b := complex(3.0, 4.0) c := a + b return real(c) + imag(c)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: c := a + b return real(c) + imag(c)
[INFO] [stderr] [DEBUG parse_hir_statement] input: c := a + b return real(c) + imag(c)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #4: return real(c) + imag(c)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return real(c) + imag(c)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[f64]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "a", span: #0 bytes(531..532) }, mutable: true, value: HirExpr { kind: Complex128(_) }, type_hint: Some(HirType { kind: Unknown("a") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "b", span: #0 bytes(562..563) }, mutable: true, value: HirExpr { kind: Complex128(_) }, type_hint: Some(HirType { kind: Unknown("b") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "c", span: #0 bytes(593..594) }, mutable: true, value: HirExpr { kind: Binary(Add) }, type_hint: Some(HirType { kind: Unknown("c") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[f64]
[INFO] [stderr] warning: unused imports: `Complex128` and `Complex64`
[INFO] [stderr]  --> gourd-macro/tests/complex_builtin_test.rs:2:22
[INFO] [stderr]   |
[INFO] [stderr] 2 | use gourd::prelude::{Complex64, Complex128};
[INFO] [stderr]   |                      ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAdd() int { return 42; }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAdd
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return 42; } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 42; }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 42;
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 42;
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(42)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAdd() int { return 42; }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAdd
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return 42; } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 42; }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 42;
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 42;
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(42)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSum(a int, b int) int { return a + b; }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSum
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(597..598) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(604..605) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b; } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b; }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b;
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b;
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSum(a int, b int) int { return a + b; }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSum
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(597..598) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(604..605) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b; } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b; }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b;
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b;
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAbs(n int) int { ret := n if n < 0 { ret = -ret } return ret }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAbs
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(1072..1073) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { ret := n if n < 0 { ret  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ret := n if n < 0 { ret = -ret } return ret }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: ret := n if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: ret := n if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: ret = - ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: ret = - ret
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: return ret
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "ret", span: #0 bytes(1093..1096) }, mutable: true, value: HirExpr { kind: Identifier(n) }, type_hint: Some(HirType { kind: Unknown("ret") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(ret) }, value: HirExpr { kind: Unary(Neg) } }] }, else_body: None }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(ret) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAbs(n int) int { ret := n if n < 0 { ret = -ret } return ret }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAbs
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(1072..1073) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { ret := n if n < 0 { ret  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ret := n if n < 0 { ret = -ret } return ret }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: ret := n if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: ret := n if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: if n < 0 { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ret = -ret } return ret
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: ret = - ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: ret = - ret
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return ret
[INFO] [stderr] [DEBUG parse_hir_statement] input: return ret
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "ret", span: #0 bytes(1093..1096) }, mutable: true, value: HirExpr { kind: Identifier(n) }, type_hint: Some(HirType { kind: Unknown("ret") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(ret) }, value: HirExpr { kind: Unary(Neg) } }] }, else_body: None }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(ret) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func isEven(n int) bool { return n % 2 == 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: isEven
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(2008..2009) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return n % 2 == 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return n % 2 == 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return n % 2 == 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return n % 2 == 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Eq) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func isEven(n int) bool { return n % 2 == 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: isEven
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(2008..2009) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return n % 2 == 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return n % 2 == 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return n % 2 == 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return n % 2 == 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Eq) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goIncr() int { return 42 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goIncr
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return 42 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 42 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 42
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 42
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(42)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goIncr() int { return 42 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goIncr
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return 42 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 42 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 42
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 42
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(42)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goStr(bytes []byte) string { return string(bytes) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goStr
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] byte (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "bytes", span: #0 bytes(6437..6442) }, HirType { kind: SliceRef(HirType { kind: U8 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return string(bytes)  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return string(bytes) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return string(bytes)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return string(bytes)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeConvert(string) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goStr(bytes []byte) string { return string(bytes) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goStr
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] byte (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "bytes", span: #0 bytes(6437..6442) }, HirType { kind: SliceRef(HirType { kind: U8 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return string(bytes)  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return string(bytes) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return string(bytes)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return string(bytes)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeConvert(string) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand(a, b, c int) int { return a + b + c }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(6946..6947) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(6949..6950) }, HirType { kind: I32 }), (Ident { ident: "c", span: #0 bytes(6952..6953) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b + c } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b + c }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b + c
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b + c
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand(a, b, c int) int { return a + b + c }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(6946..6947) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(6949..6950) }, HirType { kind: I32 }), (Ident { ident: "c", span: #0 bytes(6952..6953) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b + c } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b + c }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b + c
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b + c
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func hello() string { return "hello" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: hello
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return "hello" } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return "hello" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return "hello"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "hello"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(StringTy("hello")) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func hello() string { return "hello" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: hello
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return "hello" } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return "hello" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return "hello"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "hello"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(StringTy("hello")) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSliceLiteral() [] int { return []int{1, 2, 3} }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSliceLiteral
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return []int{1, 2, 3} (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return []int{1, 2, 3} }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return [] int { 1, 2, 3 }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return [] int { 1, 2, 3 }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: SliceLiteral(3 elems) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSliceLiteral() [] int { return []int{1, 2, 3} }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSliceLiteral
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return []int{1, 2, 3} (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return []int{1, 2, 3} }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return [] int { 1, 2, 3 }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return [] int { 1, 2, 3 }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: SliceLiteral(3 elems) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goChannelRecv(ch chan int) int { return <-ch }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goChannelRecv
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(245..247) }, HirType { kind: Channel(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return <-ch } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return <-ch }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return <- ch
[INFO] [stderr] [DEBUG parse_hir_statement] input: return <- ch
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Unary(ChanRecv) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goChannelSend(ch chan int, value int) { ch <- value }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goChannelSend
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int, value int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(434..436) }, HirType { kind: Channel(HirType { kind: I32 }) }), (Ident { ident: "value", span: #0 bytes(447..452) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 0
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ch <- value }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[]
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Binary(ChanSend) })
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goChannelEcho(ch chan int) int { ch <- 42 return <-ch }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goChannelEcho
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(633..635) }, HirType { kind: Channel(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { ch <- 42 return <-ch } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { ch <- 42 return <-ch }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: ch <- 42 return <- ch
[INFO] [stderr] [DEBUG parse_hir_statement] input: ch <- 42 return <- ch
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return <- ch
[INFO] [stderr] [DEBUG parse_hir_statement] input: return <- ch
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: ChannelSend { channel: HirExpr { kind: Identifier(ch) }, value: HirExpr { kind: Literal(Int(42)) } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Unary(ChanRecv) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] warning: unused import: `gourd::GoChannel`
[INFO] [stderr]  --> gourd-macro/tests/channel_ops.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use gourd::GoChannel;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `gourd-macro` (test "complex_builtin_test") generated 1 warning (run `cargo fix --test "complex_builtin_test" -p gourd-macro` to apply 1 suggestion)
[INFO] [stderr] warning: `gourd-macro` (test "channel_ops") generated 1 warning (run `cargo fix --test "channel_ops" -p gourd-macro` to apply 1 suggestion)
[INFO] [stderr] [DEBUG parse_hir_function] input: func noSelector(ok bool, ready bool) string
[INFO] [stderr] { return switch { case ok: "ok" case ready: "ready" default: "none" } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: noSelector
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: bool, ready bool (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: bool (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ok", span: #0 bytes(639..641) }, HirType { kind: Bool }), (Ident { ident: "ready", span: #0 bytes(648..653) }, HirType { kind: Bool })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return switch { case  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return switch { case ok: "ok" case ready: "ready" default: "none" } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return switch { case ok: "ok" case ready: "ready" default: "none" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return switch { case ok: "ok" case ready: "ready" default: "none" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: "ok" case ready : "ready" default : "none"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "ready" default : "none"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "none"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: SwitchReturn { tokens: TokenStream [Ident { ident: "if", span: #5 bytes(344..612) }, Ident { ident: "ok", span: #0 bytes(706..708) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "gourd", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "GoString", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "new", span: #5 bytes(344..612) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "ok", suffix: None, span: #5 bytes(344..612) }], span: #5 bytes(344..612) }], span: #5 bytes(344..612) }, Ident { ident: "else", span: #5 bytes(344..612) }, Ident { ident: "if", span: #5 bytes(344..612) }, Ident { ident: "ready", span: #0 bytes(740..745) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "gourd", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "GoString", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "new", span: #5 bytes(344..612) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "ready", suffix: None, span: #5 bytes(344..612) }], span: #5 bytes(344..612) }], span: #5 bytes(344..612) }, Ident { ident: "else", span: #5 bytes(344..612) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "gourd", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "GoString", span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(344..612) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(344..612) }, Ident { ident: "new", span: #5 bytes(344..612) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "none", suffix: None, span: #5 bytes(344..612) }], span: #5 bytes(344..612) }], span: #5 bytes(344..612) }] }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func noSelector(ok bool, ready bool) string
[INFO] [stderr] { return switch { case ok: "ok" case ready: "ready" default: "none" } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: noSelector
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: bool, ready bool (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: bool (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ok", span: #0 bytes(639..641) }, HirType { kind: Bool }), (Ident { ident: "ready", span: #0 bytes(648..653) }, HirType { kind: Bool })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return switch { case  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return switch { case ok: "ok" case ready: "ready" default: "none" } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return switch { case ok: "ok" case ready: "ready" default: "none" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return switch { case ok: "ok" case ready: "ready" default: "none" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: "ok" case ready : "ready" default : "none"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "ready" default : "none"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "none"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: SwitchReturn { tokens: TokenStream [Ident { ident: "if", span: #8 bytes(613..820) }, Ident { ident: "ok", span: #0 bytes(706..708) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "gourd", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "GoString", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "new", span: #8 bytes(613..820) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "ok", suffix: None, span: #8 bytes(613..820) }], span: #8 bytes(613..820) }], span: #8 bytes(613..820) }, Ident { ident: "else", span: #8 bytes(613..820) }, Ident { ident: "if", span: #8 bytes(613..820) }, Ident { ident: "ready", span: #0 bytes(740..745) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "gourd", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "GoString", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "new", span: #8 bytes(613..820) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "ready", suffix: None, span: #8 bytes(613..820) }], span: #8 bytes(613..820) }], span: #8 bytes(613..820) }, Ident { ident: "else", span: #8 bytes(613..820) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "gourd", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "GoString", span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Joint, span: #8 bytes(613..820) }, Punct { ch: ':', spacing: Alone, span: #8 bytes(613..820) }, Ident { ident: "new", span: #8 bytes(613..820) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "none", suffix: None, span: #8 bytes(613..820) }], span: #8 bytes(613..820) }], span: #8 bytes(613..820) }] }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func intCase(x int) string
[INFO] [stderr] { return switch x { case 42: "the answer" case 0: "zero" default: "other" } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: intCase
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1234..1235) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string
[INFO] [stderr] { return switch x { cas (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return switch x { case 42: "the answer" case 0: "zero" default: "other" } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return switch x { case 42: "the answer" case 0: "zero" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return switch x { case 42: "the answer" case 0: "zero" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: "the answer" case 0 : "zero" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "zero" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "other"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: SwitchReturn { tokens: TokenStream [Ident { ident: "match", span: #11 bytes(947..1210) }, Ident { ident: "x", span: #0 bytes(1272..1273) }, Group { delimiter: Brace, stream: TokenStream [Literal { kind: Integer, symbol: "42", suffix: None, span: #11 bytes(947..1210) }, Punct { ch: '=', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: '>', spacing: Alone, span: #11 bytes(947..1210) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "gourd", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "GoString", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "new", span: #11 bytes(947..1210) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "the answer", suffix: None, span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }, Literal { kind: Integer, symbol: "0", suffix: None, span: #11 bytes(947..1210) }, Punct { ch: '=', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: '>', spacing: Alone, span: #11 bytes(947..1210) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "gourd", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "GoString", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "new", span: #11 bytes(947..1210) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "zero", suffix: None, span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }, Punct { ch: ',', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "_", span: #11 bytes(947..1210) }, Punct { ch: '=', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: '>', spacing: Alone, span: #11 bytes(947..1210) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "gourd", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "GoString", span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Joint, span: #11 bytes(947..1210) }, Punct { ch: ':', spacing: Alone, span: #11 bytes(947..1210) }, Ident { ident: "new", span: #11 bytes(947..1210) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "other", suffix: None, span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }], span: #11 bytes(947..1210) }] }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func intCase(x int) string
[INFO] [stderr] { return switch x { case 42: "the answer" case 0: "zero" default: "other" } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: intCase
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1234..1235) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string
[INFO] [stderr] { return switch x { cas (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return switch x { case 42: "the answer" case 0: "zero" default: "other" } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return switch x { case 42: "the answer" case 0: "zero" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return switch x { case 42: "the answer" case 0: "zero" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: "the answer" case 0 : "zero" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "zero" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "other"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: SwitchReturn { tokens: TokenStream [Ident { ident: "match", span: #14 bytes(1211..1407) }, Ident { ident: "x", span: #0 bytes(1272..1273) }, Group { delimiter: Brace, stream: TokenStream [Literal { kind: Integer, symbol: "42", suffix: None, span: #14 bytes(1211..1407) }, Punct { ch: '=', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: '>', spacing: Alone, span: #14 bytes(1211..1407) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "gourd", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "GoString", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "new", span: #14 bytes(1211..1407) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "the answer", suffix: None, span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }, Literal { kind: Integer, symbol: "0", suffix: None, span: #14 bytes(1211..1407) }, Punct { ch: '=', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: '>', spacing: Alone, span: #14 bytes(1211..1407) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "gourd", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "GoString", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "new", span: #14 bytes(1211..1407) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "zero", suffix: None, span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }, Punct { ch: ',', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "_", span: #14 bytes(1211..1407) }, Punct { ch: '=', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: '>', spacing: Alone, span: #14 bytes(1211..1407) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "gourd", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "GoString", span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Joint, span: #14 bytes(1211..1407) }, Punct { ch: ':', spacing: Alone, span: #14 bytes(1211..1407) }, Ident { ident: "new", span: #14 bytes(1211..1407) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "other", suffix: None, span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }], span: #14 bytes(1211..1407) }] }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] warning: function `test_noSelector` should have a snake case name
[INFO] [stderr]   --> gourd-macro/tests/switch_extended.rs:51:4
[INFO] [stderr]    |
[INFO] [stderr] 51 | fn test_noSelector() {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `test_no_selector`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `test_intCase` should have a snake case name
[INFO] [stderr]   --> gourd-macro/tests/switch_extended.rs:58:4
[INFO] [stderr]    |
[INFO] [stderr] 58 | fn test_intCase() {
[INFO] [stderr]    |    ^^^^^^^^^^^^ help: convert the identifier to snake case: `test_int_case`
[INFO] [stderr] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertInt(x int) int { return x.(int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertInt
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(225..226) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return x.(int) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(int) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(int)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(int)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertString(x int) String { return x.(string) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertString
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(463..464) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: String { return x.(string) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(string) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(string)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(string)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertFloat64(x int) f64 { return x.(float64) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertFloat64
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(728..729) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: f64 { return x.(float64) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(float64) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(float64)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(float64)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[f64]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[f64]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertUint(x int) uint { return x.(uint) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertUint
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(972..973) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: uint { return x.(uint) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(uint) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(uint)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(uint)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[u32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[u32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertBool(x int) bool { return x.(bool) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertBool
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1220..1221) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return x.(bool) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(bool) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(bool)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(bool)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertByte(x int) byte { return x.(byte) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertByte
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1458..1459) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: byte { return x.(byte) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(byte) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(byte)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(byte)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[u8]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[u8]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTypeAssertRune(x int) rune { return x.(rune) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTypeAssertRune
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1699..1700) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: rune { return x.(rune) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(rune) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(rune)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(rune)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[char]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[char]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNestedTypeAssert(x int) int { return x.(int).(int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNestedTypeAssert
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "x", span: #0 bytes(1941..1942) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return x.(int).(int) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x.(int).(int) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x.(int).(int)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x.(int).(int)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: TypeAssert(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMinimal(n int) string
[INFO] [stderr] { return switch n { case 1: "one" case 2: "two" default: "other" } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMinimal
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(113..114) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return switch n { cas (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return switch n { case 1: "one" case 2: "two" default: "other" } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return switch n { case 1: "one" case 2: "two" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return switch n { case 1: "one" case 2: "two" default: "other" }
[INFO] [stderr] [DEBUG parse_hir_statement] input: "one" case 2 : "two" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "two" default : "other"
[INFO] [stderr] [DEBUG parse_hir_statement] input: "other"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: SwitchReturn { tokens: TokenStream [Ident { ident: "match", span: #5 bytes(88..277) }, Ident { ident: "n", span: #0 bytes(151..152) }, Group { delimiter: Brace, stream: TokenStream [Literal { kind: Integer, symbol: "1", suffix: None, span: #5 bytes(88..277) }, Punct { ch: '=', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: '>', spacing: Alone, span: #5 bytes(88..277) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "gourd", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "GoString", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "new", span: #5 bytes(88..277) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "one", suffix: None, span: #5 bytes(88..277) }], span: #5 bytes(88..277) }], span: #5 bytes(88..277) }, Literal { kind: Integer, symbol: "2", suffix: None, span: #5 bytes(88..277) }, Punct { ch: '=', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: '>', spacing: Alone, span: #5 bytes(88..277) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "gourd", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "GoString", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "new", span: #5 bytes(88..277) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "two", suffix: None, span: #5 bytes(88..277) }], span: #5 bytes(88..277) }], span: #5 bytes(88..277) }, Punct { ch: ',', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "_", span: #5 bytes(88..277) }, Punct { ch: '=', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: '>', spacing: Alone, span: #5 bytes(88..277) }, Group { delimiter: Brace, stream: TokenStream [Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "gourd", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "GoString", span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Joint, span: #5 bytes(88..277) }, Punct { ch: ':', spacing: Alone, span: #5 bytes(88..277) }, Ident { ident: "new", span: #5 bytes(88..277) }, Group { delimiter: Parenthesis, stream: TokenStream [Literal { kind: Str, symbol: "other", suffix: None, span: #5 bytes(88..277) }], span: #5 bytes(88..277) }], span: #5 bytes(88..277) }], span: #5 bytes(88..277) }] }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSumSlice(data []int) int
[INFO] [stderr] {
[INFO] [stderr]     sum := 0 for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } }
[INFO] [stderr]     return sum
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSumSlice
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "data", span: #0 bytes(203..207) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     sum := 0 for i, v := (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     sum := 0 for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } }
[INFO] [stderr]     return sum
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: sum := 0 for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } }
[INFO] [stderr] return sum
[INFO] [stderr] [DEBUG parse_hir_statement] input: sum := 0 for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } }
[INFO] [stderr] return sum
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } } return sum
[INFO] [stderr] [DEBUG parse_hir_statement] input: for i, v := range data { if i >= 0 && v > 0 { sum = sum + v } } return sum
[INFO] [stderr] [DEBUG parse_hir_statement] input: if i >= 0 && v > 0 { sum = sum + v }
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { sum = sum + v }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: sum = sum + v
[INFO] [stderr] [DEBUG parse_hir_statement] input: sum = sum + v
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return sum
[INFO] [stderr] [DEBUG parse_hir_statement] input: return sum
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "sum", span: #0 bytes(229..232) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stderr] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { ident: "i", span: #0 bytes(250..251) }), value_name: Ident { ident: "v", span: #0 bytes(253..254) }, iterable: HirExpr { kind: Identifier(data) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(And) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(sum) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(sum) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goCountPositive(data []int) int
[INFO] [stderr] {
[INFO] [stderr]     count := 0 for i := range data { if data[i] > 0 { count = count + 1 } }
[INFO] [stderr]     return count
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goCountPositive
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "data", span: #0 bytes(568..572) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     count := 0 for i :=  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     count := 0 for i := range data { if data[i] > 0 { count = count + 1 } }
[INFO] [stderr]     return count
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: count := 0 for i := range data { if data[i] > 0 { count = count + 1 } } return
[INFO] [stderr] count
[INFO] [stderr] [DEBUG parse_hir_statement] input: count := 0 for i := range data { if data[i] > 0 { count = count + 1 } } return
[INFO] [stderr] count
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: for i := range data { if data[i] > 0 { count = count + 1 } } return count
[INFO] [stderr] [DEBUG parse_hir_statement] input: for i := range data { if data[i] > 0 { count = count + 1 } } return count
[INFO] [stderr] [DEBUG parse_hir_statement] input: if data [i] > 0 { count = count + 1 }
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { count = count + 1 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: count = count + 1
[INFO] [stderr] [DEBUG parse_hir_statement] input: count = count + 1
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return count
[INFO] [stderr] [DEBUG parse_hir_statement] input: return count
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "count", span: #0 bytes(594..599) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stderr] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { ident: "i", span: #0 bytes(617..618) }), value_name: Ident { ident: "_", span: #8 bytes(537..750) }, iterable: HirExpr { kind: Identifier(data) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(count) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(count) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSkipFirst(data []int) int { for range data {} return len(data) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSkipFirst
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "data", span: #0 bytes(920..924) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { for range data {} return (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { for range data {} return len(data) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: for range data {} return len(data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: for range data {} return len(data)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return len(data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(data)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: ForRange { index_name: None, value_name: Ident { ident: "_", span: #11 bytes(893..1039) }, iterable: HirExpr { kind: Identifier(data) }, body: HirBlock { stmts: [] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMin(a int, b int) int { return min(a, b) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMin
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(43..44) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(50..51) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return min(a, b) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return min(a, b) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return min(a, b)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return min(a, b)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MinMax(min) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMax(a int, b int) int { return max(a, b) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMax
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, b int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(118..119) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(125..126) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return max(a, b) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return max(a, b) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return max(a, b)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return max(a, b)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MinMax(max) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] warning: `gourd-macro` (test "switch_extended") generated 2 warnings
[INFO] [stderr] warning: unused import: `Stdio`
[INFO] [stderr]   --> gourd-check/tests/test_examples.rs:11:29
[INFO] [stderr]    |
[INFO] [stderr] 11 | use std::process::{Command, Stdio};
[INFO] [stderr]    |                             ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goCopySlice() int
[INFO] [stderr] {
[INFO] [stderr]     dst := []int{1, 2, 3, 4, 5} src := []int{10, 20} result := copy(dst, src)
[INFO] [stderr]     return result
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goCopySlice
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     dst := []int{1, 2, 3 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     dst := []int{1, 2, 3, 4, 5} src := []int{10, 20} result := copy(dst, src)
[INFO] [stderr]     return result
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: dst := [] int { 1, 2, 3, 4, 5 } src := [] int { 10, 20 } result :=
[INFO] [stderr] copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: dst := [] int { 1, 2, 3, 4, 5 } src := [] int { 10, 20 } result :=
[INFO] [stderr] copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: src := [] int { 10, 20 } result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: src := [] int { 10, 20 } result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #4: return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: return result
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "dst", span: #0 bytes(290..293) }, mutable: true, value: HirExpr { kind: SliceLiteral(5 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "src", span: #0 bytes(326..329) }, mutable: true, value: HirExpr { kind: SliceLiteral(2 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(355..361) }, mutable: true, value: HirExpr { kind: Copy(_) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goCopyPartial() int
[INFO] [stderr] {
[INFO] [stderr]     dst := []int{0, 0, 0, 0, 0} src := []int{1, 2, 3, 4, 5, 6} result :=
[INFO] [stderr]     copy(dst, src) return result
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goCopyPartial
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     dst := []int{0, 0, 0 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     dst := []int{0, 0, 0, 0, 0} src := []int{1, 2, 3, 4, 5, 6} result :=
[INFO] [stderr]     copy(dst, src) return result
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: dst := [] int { 0, 0, 0, 0, 0 } src := [] int { 1, 2, 3, 4, 5, 6 } result :=
[INFO] [stderr] copy(dst, src) return r
[INFO] [stderr] [DEBUG parse_hir_statement] input: dst := [] int { 0, 0, 0, 0, 0 } src := [] int { 1, 2, 3, 4, 5, 6 } result :=
[INFO] [stderr] copy(dst, src) return r
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: src := [] int { 1, 2, 3, 4, 5, 6 } result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: src := [] int { 1, 2, 3, 4, 5, 6 } result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := copy(dst, src) return result
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #4: return result
[INFO] [stderr] [DEBUG parse_hir_statement] input: return result
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "dst", span: #0 bytes(456..459) }, mutable: true, value: HirExpr { kind: SliceLiteral(5 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "src", span: #0 bytes(492..495) }, mutable: true, value: HirExpr { kind: SliceLiteral(6 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(531..537) }, mutable: true, value: HirExpr { kind: Copy(_) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goDeleteFromMap() int
[INFO] [stderr] { m := map[string]int{"a": 1, "b": 2, "c": 3} delete(m, "b") return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goDeleteFromMap
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] { m := map[string]int{"a": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"a": 1, "b": 2, "c": 3} delete(m, "b") return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "a": 1, "b": 2, "c": 3 } delete(m, "b") return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "a": 1, "b": 2, "c": 3 } delete(m, "b") return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: delete(m, "b") return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: delete(m, "b") return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(831..832) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Delete(_) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goDeleteNonexistent() int
[INFO] [stderr] { m := map[string]int{"a": 1, "b": 2} delete(m, "z") return len(m) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goDeleteNonexistent
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { m := map[string]int{"a": (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { m := map[string]int{"a": 1, "b": 2} delete(m, "z") return len(m) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: m := map [string] int { "a": 1, "b": 2 } delete(m, "z") return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: m := map [string] int { "a": 1, "b": 2 } delete(m, "z") return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: delete(m, "z") return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: delete(m, "z") return len(m)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return len(m)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(m)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "m", span: #0 bytes(980..981) }, mutable: true, value: HirExpr { kind: Map(_) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Delete(_) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendSingle() int
[INFO] [stderr] { s := []int{1, 2, 3} result := append(s, 4) return len(result) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendSingle
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { s := []int{1, 2, 3} resu (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { s := []int{1, 2, 3} result := append(s, 4) return len(result) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: s := [] int { 1, 2, 3 } result := append(s, 4) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: s := [] int { 1, 2, 3 } result := append(s, 4) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: result := append(s, 4) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := append(s, 4) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(result)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "s", span: #0 bytes(1313..1314) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(1341..1347) }, mutable: true, value: HirExpr { kind: Append(_) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendMultiple() int
[INFO] [stderr] { s := []int{1, 2, 3} result := append(s, 4, 5, 6) return len(result) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendMultiple
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { s := []int{1, 2, 3} resu (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { s := []int{1, 2, 3} result := append(s, 4, 5, 6) return len(result) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: s := [] int { 1, 2, 3 } result := append(s, 4, 5, 6) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: s := [] int { 1, 2, 3 } result := append(s, 4, 5, 6) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: result := append(s, 4, 5, 6) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := append(s, 4, 5, 6) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(result)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "s", span: #0 bytes(1448..1449) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(1476..1482) }, mutable: true, value: HirExpr { kind: Append(_) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goAppendEmpty() int
[INFO] [stderr] { s := []int{1, 2, 3} result := append(s) return len(result) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goAppendEmpty
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { s := []int{1, 2, 3} resu (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { s := []int{1, 2, 3} result := append(s) return len(result) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: s := [] int { 1, 2, 3 } result := append(s) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: s := [] int { 1, 2, 3 } result := append(s) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: result := append(s) return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := append(s) return len(result)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return len(result)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return len(result)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "s", span: #0 bytes(1586..1587) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(1614..1620) }, mutable: true, value: HirExpr { kind: Append(_) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Len(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] warning: unused import: `std::convert::From`
[INFO] [stderr]  --> gourd-macro/tests/std_copy_delete_append.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::convert::From;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `gourd-check` (test "test_examples") generated 1 warning (run `cargo fix --test "test_examples" -p gourd-check` to apply 1 suggestion)
[INFO] [stderr] warning: `gourd-macro` (test "std_copy_delete_append") generated 1 warning (run `cargo fix --test "std_copy_delete_append" -p gourd-macro` to apply 1 suggestion)
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSum(nums ...int) int
[INFO] [stderr] {
[INFO] [stderr]     total := 0 for i, num := range nums { if i >= 0 { total = total + num } }
[INFO] [stderr]     return total
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSum
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "nums", span: #0 bytes(159..163) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     total := 0 for i, nu (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     total := 0 for i, num := range nums { if i >= 0 { total = total + num } }
[INFO] [stderr]     return total
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: total := 0 for i, num := range nums { if i >= 0 { total = total + num } }
[INFO] [stderr] return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: total := 0 for i, num := range nums { if i >= 0 { total = total + num } }
[INFO] [stderr] return total
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: for i, num := range nums { if i >= 0 { total = total + num } } return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: for i, num := range nums { if i >= 0 { total = total + num } } return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: if i >= 0 { total = total + num }
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { total = total + num }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: total = total + num
[INFO] [stderr] [DEBUG parse_hir_statement] input: total = total + num
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: return total
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "total", span: #0 bytes(186..191) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stderr] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { ident: "i", span: #0 bytes(209..210) }), value_name: Ident { ident: "num", span: #0 bytes(212..215) }, iterable: HirExpr { kind: Identifier(nums) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Ge) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(total) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(total) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goCount(nums ...int) int { count := len(nums) return count }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goCount
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "nums", span: #0 bytes(476..480) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { count := len(nums) retur (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { count := len(nums) return count }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: count := len(nums) return count
[INFO] [stderr] [DEBUG parse_hir_statement] input: count := len(nums) return count
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return count
[INFO] [stderr] [DEBUG parse_hir_statement] input: return count
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "count", span: #0 bytes(503..508) }, mutable: true, value: HirExpr { kind: Len(_) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(count) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goFilter(min int, nums ...int) int
[INFO] [stderr] {
[INFO] [stderr]     total := 0 for i, num := range nums
[INFO] [stderr]     { if num > min { total = total + num } } return total
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goFilter
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int, nums ... int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "min", span: #0 bytes(687..690) }, HirType { kind: I32 }), (Ident { ident: "nums", span: #0 bytes(696..700) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     total := 0 for i, nu (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     total := 0 for i, num := range nums
[INFO] [stderr]     { if num > min { total = total + num } } return total
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: total := 0 for i, num := range nums { if num > min { total = total + num } }
[INFO] [stderr] return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: total := 0 for i, num := range nums { if num > min { total = total + num } }
[INFO] [stderr] return total
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: for i, num := range nums { if num > min { total = total + num } } return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: for i, num := range nums { if num > min { total = total + num } } return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: if num > min { total = total + num }
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { total = total + num }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: total = total + num
[INFO] [stderr] [DEBUG parse_hir_statement] input: total = total + num
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return total
[INFO] [stderr] [DEBUG parse_hir_statement] input: return total
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "total", span: #0 bytes(723..728) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stderr] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { ident: "i", span: #0 bytes(746..747) }), value_name: Ident { ident: "num", span: #0 bytes(749..752) }, iterable: HirExpr { kind: Identifier(nums) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(total) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(total) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goClosureWithLen() int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 }
[INFO] [stderr]     data := []int{1, 2, 3} return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goClosureWithLen
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 }
[INFO] [stderr]     data := []int{1, 2, 3} return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 } data
[INFO] [stderr] := [] int { 1, 2, 3 } r
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 } data
[INFO] [stderr] := [] int { 1, 2, 3 } r
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG parse_hir_type] input: int { if len(arr) > 0 { return (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { if len(arr) > 0 { return arr[0] } return 0 } data := [] int { 1, 2, 3 }
[INFO] [stderr] return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: if len(arr) > 0 { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: if len(arr) > 0 { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return arr [0]
[INFO] [stderr] [DEBUG parse_hir_statement] input: return arr [0]
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: data := [] int { 1, 2, 3 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: data := [] int { 1, 2, 3 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return f(&data)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(106..107) }, params: [(Ident { ident: "arr", span: #0 bytes(116..119) }, Some(HirType { kind: SliceRef(HirType { kind: I32 }) }))], body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Index(_) }))] }, else_body: None }, Return(Some(HirExpr { kind: Literal(Int(0)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "data", span: #0 bytes(246..250) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 1 args) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goClosureWithIndex() int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) int { return arr[1] } data := []int{10, 20, 30}
[INFO] [stderr]     return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goClosureWithIndex
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     f := func(arr []int) int { return arr[1] } data := []int{10, 20, 30}
[INFO] [stderr]     return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func(arr []int) int { return arr[1] } data := [] int { 10, 20, 30 }
[INFO] [stderr] return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func(arr []int) int { return arr[1] } data := [] int { 10, 20, 30 }
[INFO] [stderr] return f(&data)
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return arr[1] } data :=  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return arr[1] } data := [] int { 10, 20, 30 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return arr [1]
[INFO] [stderr] [DEBUG parse_hir_statement] input: return arr [1]
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: data := [] int { 10, 20, 30 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: data := [] int { 10, 20, 30 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return f(&data)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(386..387) }, params: [(Ident { ident: "arr", span: #0 bytes(396..399) }, Some(HirType { kind: SliceRef(HirType { kind: I32 }) }))], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Index(_) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "data", span: #0 bytes(457..461) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 1 args) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goReplace() string
[INFO] [stderr] { return strings.Replace("hello world world", "world", "rust", 2) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goReplace
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return strings.Replac (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Replace("hello world world", "world", "rust", 2) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Replace("hello world world", "world", "rust", 2)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Replace("hello world world", "world", "rust", 2)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Replace.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goReplaceAll() string { return strings.ReplaceAll("aaa", "a", "b") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goReplaceAll
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return strings.Replac (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.ReplaceAll("aaa", "a", "b") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.ReplaceAll("aaa", "a", "b")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.ReplaceAll("aaa", "a", "b")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(ReplaceAll.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goHasPrefix() bool { return strings.HasPrefix("hello world", "hello") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goHasPrefix
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return strings.HasPrefi (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.HasPrefix("hello world", "hello") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.HasPrefix("hello world", "hello")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.HasPrefix("hello world", "hello")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(HasPrefix.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goHasSuffix() bool { return strings.HasSuffix("hello world", "world") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goHasSuffix
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return strings.HasSuffi (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.HasSuffix("hello world", "world") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.HasSuffix("hello world", "world")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.HasSuffix("hello world", "world")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(HasSuffix.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goContains() bool { return strings.Contains("hello world", "world") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goContains
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: bool { return strings.Contains (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Contains("hello world", "world") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Contains("hello world", "world")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Contains("hello world", "world")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Contains.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goJoin() string { return strings.Join(["a", "b", "c"], ",") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goJoin
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return strings.Join([ (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Join(["a", "b", "c"], ",") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Join(["a", "b", "c"], ",")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Join(["a", "b", "c"], ",")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Join.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSplit() [] string { return strings.Split("a,b,c", ",") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSplit
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] string { return strings.Spl (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Split("a,b,c", ",") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Split("a,b,c", ",")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Split("a,b,c", ",")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < :: gourd :: GoString >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Split.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < :: gourd :: GoString >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goIndex() int { return strings.Index("hello world", "world") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goIndex
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return strings.Index("he (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Index("hello world", "world") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Index("hello world", "world")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Index("hello world", "world")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Index.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTrim() string { return strings.Trim("  hello  ", " ") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTrim
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return strings.Trim(" (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.Trim("  hello  ", " ") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.Trim("  hello  ", " ")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.Trim("  hello  ", " ")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Trim.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goToUpper() string { return strings.ToUpper("hello") }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goToUpper
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return strings.ToUppe (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return strings.ToUpper("hello") }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return strings.ToUpper("hello")
[INFO] [stderr] [DEBUG parse_hir_statement] input: return strings.ToUpper("hello")
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(ToUpper.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goTimeNow() int64 { return time.Now() }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goTimeNow
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int64 { return time.Now() } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return time.Now() }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return time.Now()
[INFO] [stderr] [DEBUG parse_hir_statement] input: return time.Now()
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i64]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Now.() }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i64]
[INFO] [stderr] warning: unused import: `std::convert::From`
[INFO] [stderr]   --> gourd-macro/tests/package_functions.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use std::convert::From;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand2(a, b int) int { return a + b }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand2
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(276..277) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(279..280) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand2(a, b int) int { return a + b }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand2
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(276..277) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(279..280) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand3(a, b, c int) int { return a + b + c }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand3
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(615..616) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(618..619) }, HirType { kind: I32 }), (Ident { ident: "c", span: #0 bytes(621..622) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b + c } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b + c }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b + c
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b + c
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goShorthand3(a, b, c int) int { return a + b + c }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goShorthand3
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "a", span: #0 bytes(615..616) }, HirType { kind: I32 }), (Ident { ident: "b", span: #0 bytes(618..619) }, HirType { kind: I32 }), (Ident { ident: "c", span: #0 bytes(621..622) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return a + b + c } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return a + b + c }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return a + b + c
[INFO] [stderr] [DEBUG parse_hir_statement] input: return a + b + c
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSelectDefault(ch chan int) { select { default: } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSelectDefault
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(182..184) }, HirType { kind: Channel(HirType { kind: I32 }) })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 0
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { select { default: } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: select { default: }
[INFO] [stderr] [DEBUG parse_hir_statement] input: select { default: }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[]
[INFO] [stderr] DEBUG: No fix applied, using default: Select { cases: [], default_body: Some(HirBlock { stmts: [] }) }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSelectSend(ch chan int, value int) { select { case ch <- value: } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSelectSend
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int, value int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(313..315) }, HirType { kind: Channel(HirType { kind: I32 }) }), (Ident { ident: "value", span: #0 bytes(326..331) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 0
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { select { case ch <- value: } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: select { case ch <- value: }
[INFO] [stderr] [DEBUG parse_hir_statement] input: select { case ch <- value: }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[]
[INFO] [stderr] DEBUG: No fix applied, using default: Select { cases: [Send { ch: HirExpr { kind: Identifier(ch) }, value: HirExpr { kind: Identifier(value) } }], default_body: None }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goSelectSendWithDefault(ch chan int, value int)
[INFO] [stderr] { select { case ch <- value: default: } }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goSelectSendWithDefault
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int, value int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "ch", span: #0 bytes(482..484) }, HirType { kind: Channel(HirType { kind: I32 }) }), (Ident { ident: "value", span: #0 bytes(495..500) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG] returns parsed: 0
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { select { case ch <- value: default: } }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: select { case ch <- value: default: }
[INFO] [stderr] [DEBUG parse_hir_statement] input: select { case ch <- value: default: }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[]
[INFO] [stderr] DEBUG: No fix applied, using default: Select { cases: [Send { ch: HirExpr { kind: Identifier(ch) }, value: HirExpr { kind: Identifier(value) } }], default_body: Some(HirBlock { stmts: [] }) }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[]
[INFO] [stderr] warning: unused variable: `ch`
[INFO] [stderr]  --> gourd-macro/tests/select_builtin.rs:8:26
[INFO] [stderr]   |
[INFO] [stderr] 8 |     func goSelectDefault(ch chan int) {
[INFO] [stderr]   |                          ^^ help: if this is intentional, prefix it with an underscore: `_ch`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `gourd-macro` (test "package_functions") generated 1 warning (run `cargo fix --test "package_functions" -p gourd-macro` to apply 1 suggestion)
[INFO] [stderr] warning: `gourd-macro` (test "select_builtin") generated 1 warning (run `cargo fix --test "select_builtin" -p gourd-macro` to apply 1 suggestion)
[INFO] [stderr] [DEBUG parse_hir_function] input: func goDayName(d int) string
[INFO] [stderr] {
[INFO] [stderr]     switch d
[INFO] [stderr]     {
[INFO] [stderr]         case 1, 2, 3: return "weekday" case 4, 5: return "almost_weekend" case
[INFO] [stderr]         6, 7, 0: return "weekend" default: return "invalid"
[INFO] [stderr]     }
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goDayName
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "d", span: #0 bytes(152..153) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string
[INFO] [stderr] {
[INFO] [stderr]     switch d
[INFO] [stderr]     {
[INFO] [stderr]    (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     switch d
[INFO] [stderr]     {
[INFO] [stderr]         case 1, 2, 3: return "weekday" case 4, 5: return "almost_weekend" case
[INFO] [stderr]         6, 7, 0: return "weekend" default: return "invalid"
[INFO] [stderr]     }
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: switch d
[INFO] [stderr] {
[INFO] [stderr]     case 1, 2, 3: return "weekday" case 4, 5: return "almost_weekend" case 6,
[INFO] [stderr]     7, 0: r
[INFO] [stderr] [DEBUG parse_hir_statement] input: switch d
[INFO] [stderr] {
[INFO] [stderr]     case 1, 2, 3: return "weekday" case 4, 5: return "almost_weekend" case 6,
[INFO] [stderr]     7, 0: r
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "weekday" case 4, 5 : return "almost_weekend" case 6, 7, 0 : return
[INFO] [stderr] "weekend" default : retur
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "almost_weekend" case 6, 7, 0 : return "weekend" default : return
[INFO] [stderr] "invalid"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "weekend" default : return "invalid"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "invalid"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Switch { selector: Some(HirExpr { kind: Identifier(d) }), cases: [HirSwitchCase { patterns: [HirExpr { kind: Literal(Int(1)) }, HirExpr { kind: Literal(Int(2)) }, HirExpr { kind: Literal(Int(3)) }], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("weekday")) }))] } }, HirSwitchCase { patterns: [HirExpr { kind: Literal(Int(4)) }, HirExpr { kind: Literal(Int(5)) }], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("almost_weekend")) }))] } }, HirSwitchCase { patterns: [HirExpr { kind: Literal(Int(6)) }, HirExpr { kind: Literal(Int(7)) }, HirExpr { kind: Literal(Int(0)) }], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("weekend")) }))] } }], default_body: Some(HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("invalid")) }))] }) }
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]   --> gourd-macro/tests/multi_case_switch.rs:5:1
[INFO] [stderr]    |
[INFO] [stderr]  5 | / go! {
[INFO] [stderr]  6 | |     func goDayName(d int) string {
[INFO] [stderr]  7 | |         switch d {
[INFO] [stderr]  8 | |         case 1, 2, 3:
[INFO] [stderr] ...  |
[INFO] [stderr] 18 | | }
[INFO] [stderr]    | | ^
[INFO] [stderr]    | | |
[INFO] [stderr]    | |_unreachable expression
[INFO] [stderr]    |   any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr]    = note: this warning originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goStructReturn() Point { return Point{x: 1, y: 2} }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goStructReturn
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: Point { return Point{x: 1, y:  (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return Point{x: 1, y: 2} }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return Point { x: 1, y: 2 }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return Point { x: 1, y: 2 }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[Point]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: StructLit(Point) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[Point]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNestedStructs() Outer { return Outer{inner: Inner{x: 1}} }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNestedStructs
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: Outer { return Outer{inner: In (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return Outer{inner: Inner{x: 1}} }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return Outer { inner: Inner{x: 1} }
[INFO] [stderr] [DEBUG parse_hir_statement] input: return Outer { inner: Inner{x: 1} }
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[Outer]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: StructLit(Outer) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[Outer]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goStructInLet() string { p := Point{x: 1, y: 2} return "ok" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goStructInLet
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { p := Point{x: 1, y: 2 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { p := Point{x: 1, y: 2} return "ok" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: p := Point { x: 1, y: 2 } return "ok"
[INFO] [stderr] [DEBUG parse_hir_statement] input: p := Point { x: 1, y: 2 } return "ok"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return "ok"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "ok"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "p", span: #0 bytes(1465..1466) }, mutable: true, value: HirExpr { kind: StructLit(Point) }, type_hint: Some(HirType { kind: Unknown("p") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(StringTy("ok")) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] warning: struct `Point` is never constructed
[INFO] [stderr]   --> gourd-macro/tests/struct_literals.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | struct Point { pub x: i32, pub y: i32 }
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Outer` is never constructed
[INFO] [stderr]   --> gourd-macro/tests/struct_literals.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | struct Outer { pub inner: Inner }
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Inner` is never constructed
[INFO] [stderr]   --> gourd-macro/tests/struct_literals.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | struct Inner { pub x: i32 }
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func main() int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 }
[INFO] [stderr]     data := []int{1, 2, 3} return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: main
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int
[INFO] [stderr] {
[INFO] [stderr]     f := func(arr []int) (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 }
[INFO] [stderr]     data := []int{1, 2, 3} return f(&data)
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 } data
[INFO] [stderr] := [] int { 1, 2, 3 } r
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func(arr []int) int { if len(arr) > 0 { return arr[0] } return 0 } data
[INFO] [stderr] := [] int { 1, 2, 3 } r
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG parse_hir_type] input: int { if len(arr) > 0 { return (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { if len(arr) > 0 { return arr[0] } return 0 } data := [] int { 1, 2, 3 }
[INFO] [stderr] return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: if len(arr) > 0 { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: if len(arr) > 0 { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return arr[0] } return 0
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return arr [0]
[INFO] [stderr] [DEBUG parse_hir_statement] input: return arr [0]
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: data := [] int { 1, 2, 3 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: data := [] int { 1, 2, 3 } return f(&data)
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return f(&data)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return f(&data)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(1179..1180) }, params: [(Ident { ident: "arr", span: #0 bytes(1189..1192) }, Some(HirType { kind: SliceRef(HirType { kind: I32 }) }))], body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Index(_) }))] }, else_body: None }, Return(Some(HirExpr { kind: Literal(Int(0)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "data", span: #0 bytes(1343..1347) }, mutable: true, value: HirExpr { kind: SliceLiteral(3 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 1 args) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func main() int { f := func() { return 0 } f() return 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: main
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { f := func() { return 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { f := func() { return 0 } f() return 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func() { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func() { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: f() return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(979..980) }, params: [], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(Int(0)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 0 args) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(0)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func main() int { f := func() { return 0 } f() return 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: main
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { f := func() { return 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { f := func() { return 0 } f() return 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func() { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func() { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 0 } f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: f() return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: f() return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(781..782) }, params: [], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(Int(0)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 0 args) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(0)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func main() int
[INFO] [stderr] { add := func(x int, y int) int { return x + y } return add(1, 2) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: main
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { add := func(x int, y int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { add := func(x int, y int) int { return x + y } return add(1, 2) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: add := func(x int, y int) int { return x + y } return add(1, 2)
[INFO] [stderr] [DEBUG parse_hir_statement] input: add := func(x int, y int) int { return x + y } return add(1, 2)
[INFO] [stderr] [DEBUG parse_hir_type] input: int, y int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return x + y } return ad (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return x + y } return add(1, 2)
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return x + y
[INFO] [stderr] [DEBUG parse_hir_statement] input: return x + y
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return add(1, 2)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return add(1, 2)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "add", span: #0 bytes(501..504) }, params: [(Ident { ident: "x", span: #0 bytes(513..514) }, Some(HirType { kind: I32 })), (Ident { ident: "y", span: #0 bytes(520..521) }, Some(HirType { kind: I32 }))], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Binary(Add) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Call(func=HirExpr { kind: Identifier(add) }, 2 args) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func main() int { f := func() int { return 42 } return f() }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: main
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { f := func() int { return (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { f := func() int { return 42 } return f() }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func() int { return 42 } return f()
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func() int { return 42 } return f()
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return 42 } return f() (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return 42 } return f()
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return 42
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 42
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return f()
[INFO] [stderr] [DEBUG parse_hir_statement] input: return f()
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(213..214) }, params: [], body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(Int(42)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 0 args) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNewPoint() Point { return new(Point) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNewPoint
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: Point { return new(Point) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return new(Point) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return new(Point)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return new(Point)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[Point]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: New(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[Point]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNewWithDefault() int { p := new(Point) return p.x }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNewWithDefault
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { p := new(Point) return p (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { p := new(Point) return p.x }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: p := new(Point) return p.x
[INFO] [stderr] [DEBUG parse_hir_statement] input: p := new(Point) return p.x
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return p.x
[INFO] [stderr] [DEBUG parse_hir_statement] input: return p.x
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "p", span: #0 bytes(501..502) }, mutable: true, value: HirExpr { kind: New(_) }, type_hint: Some(HirType { kind: Unknown("p") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: FieldAccess(x) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNewInt() int { return new(int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNewInt
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { return new(int) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return new(int) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return new(int)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return new(int)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: New(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goNewString() string { return new(string) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goNewString
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string { return new(string) } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return new(string) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return new(string)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return new(string)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: New(_) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] warning: unused import: `std::convert::From`
[INFO] [stderr]  --> gourd-macro/tests/new_builtin.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::convert::From;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Point` is never constructed
[INFO] [stderr]  --> gourd-macro/tests/new_builtin.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 9 | struct Point {
[INFO] [stderr]   |        ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_get`: Use GoMap::get() instead
[INFO] [stderr]  --> gourd-macro/tests/prelude_map_ops.rs:3:22
[INFO] [stderr]   |
[INFO] [stderr] 3 | use gourd::prelude::{map_get, map_set_mut, map_set_val};
[INFO] [stderr]   |                      ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_set_mut`: Use GoMap::set() instead
[INFO] [stderr]  --> gourd-macro/tests/prelude_map_ops.rs:3:31
[INFO] [stderr]   |
[INFO] [stderr] 3 | use gourd::prelude::{map_get, map_set_mut, map_set_val};
[INFO] [stderr]   |                               ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_set_val`: Use GoMap::set() then dereference, or insert directly
[INFO] [stderr]  --> gourd-macro/tests/prelude_map_ops.rs:3:44
[INFO] [stderr]   |
[INFO] [stderr] 3 | use gourd::prelude::{map_get, map_set_mut, map_set_val};
[INFO] [stderr]   |                                            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_get`: Use GoMap::get() instead
[INFO] [stderr]   --> gourd-macro/tests/prelude_map_ops.rs:11:16
[INFO] [stderr]    |
[INFO] [stderr] 11 |     assert_eq!(map_get(&map, "a".to_string()), 42);
[INFO] [stderr]    |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_get`: Use GoMap::get() instead
[INFO] [stderr]   --> gourd-macro/tests/prelude_map_ops.rs:12:16
[INFO] [stderr]    |
[INFO] [stderr] 12 |     assert_eq!(map_get(&map, "b".to_string()), 7);
[INFO] [stderr]    |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_get`: Use GoMap::get() instead
[INFO] [stderr]   --> gourd-macro/tests/prelude_map_ops.rs:13:16
[INFO] [stderr]    |
[INFO] [stderr] 13 |     assert_eq!(map_get(&map, "c".to_string()), 0); // default for missing key
[INFO] [stderr]    |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_set_mut`: Use GoMap::set() instead
[INFO] [stderr]   --> gourd-macro/tests/prelude_map_ops.rs:22:17
[INFO] [stderr]    |
[INFO] [stderr] 22 |     assert_eq!(*map_set_mut(&mut map, "b".to_string()), 0);
[INFO] [stderr]    |                 ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_set_mut`: Use GoMap::set() instead
[INFO] [stderr]   --> gourd-macro/tests/prelude_map_ops.rs:26:17
[INFO] [stderr]    |
[INFO] [stderr] 26 |     assert_eq!(*map_set_mut(&mut map, "a".to_string()), 42);
[INFO] [stderr]    |                 ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_set_mut`: Use GoMap::set() instead
[INFO] [stderr]   --> gourd-macro/tests/prelude_map_ops.rs:29:6
[INFO] [stderr]    |
[INFO] [stderr] 29 |     *map_set_mut(&mut map, "a".to_string()) += 10;
[INFO] [stderr]    |      ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_set_val`: Use GoMap::set() then dereference, or insert directly
[INFO] [stderr]   --> gourd-macro/tests/prelude_map_ops.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 37 |     map_set_val(&mut map, "a".to_string(), 42);
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `gourd::prelude::map_set_val`: Use GoMap::set() then dereference, or insert directly
[INFO] [stderr]   --> gourd-macro/tests/prelude_map_ops.rs:38:5
[INFO] [stderr]    |
[INFO] [stderr] 38 |     map_set_val(&mut map, "b".to_string(), 7);
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMakeChannel() chan int { return make(chan int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMakeChannel
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int { return make(chan in (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return make(chan int) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return make(chan int)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return make(chan int)
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoChannel < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Make(Channel(HirType { kind: I32 })) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoChannel < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMakeBufferedChannel() chan int { return make(chan int, 10) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMakeBufferedChannel
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int { return make(chan in (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return make(chan int, 10) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return make(chan int, 10)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return make(chan int, 10)
[INFO] [stderr] [DEBUG parse_hir_type] input: chan int, 10 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoChannel < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Make(ChannelWithCap(HirType { kind: I32 }, HirExpr { kind: Literal(Int(10)) })) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoChannel < i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMakeStringChannel() chan string { return make(chan string, 5) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMakeStringChannel
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: chan string { return make(chan (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return make(chan string, 5) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return make(chan string, 5)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return make(chan string, 5)
[INFO] [stderr] [DEBUG parse_hir_type] input: chan string, 5 (peek_ident=true, peek_bracket=false)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoChannel < :: gourd :: GoString >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Make(ChannelWithCap(HirType { kind: StringTy }, HirExpr { kind: Literal(Int(5)) })) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoChannel < :: gourd :: GoString >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMakeMap() map [string] int { return make(map[string]int) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMakeMap
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: map [string] int { return make (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return make(map[string]int) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return make(map[string]int)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return make(map[string]int)
[INFO] [stderr] [DEBUG parse_hir_type] input: map [string] int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString, i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Make(Map(HirType { kind: StringTy }, HirType { kind: I32 })) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString, i32 >]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goMakeSlice() [] int { return make([]int, 5) }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goMakeSlice
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int { return make([]int, 5) (peek_ident=false, peek_bracket=true)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return make([]int, 5) }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return make([]int, 5)
[INFO] [stderr] [DEBUG parse_hir_statement] input: return make([]int, 5)
[INFO] [stderr] [DEBUG parse_hir_type] input: [] int, 5 (peek_ident=false, peek_bracket=true)
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Make(Slice(HirType { kind: I32 }, HirExpr { kind: Literal(Int(5)) })) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stderr] warning: `gourd-macro` (test "multi_case_switch") generated 1 warning
[INFO] [stderr] warning: `gourd-macro` (test "struct_literals") generated 3 warnings
[INFO] [stderr] warning: `gourd-macro` (test "new_builtin") generated 2 warnings (run `cargo fix --test "new_builtin" -p gourd-macro` to apply 1 suggestion)
[INFO] [stderr] warning: `gourd-macro` (test "prelude_map_ops") generated 11 warnings
[INFO] [stderr] [DEBUG parse_hir_function] input: func goPanicMsg() int { panic("something went wrong") return 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goPanicMsg
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { panic("something went wr (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { panic("something went wrong") return 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: panic("something went wrong") return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: panic("something went wrong") return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Panic(HirExpr { kind: Literal(StringTy("something went wrong")) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(0)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goPanicEmpty() int { panic() return 0 }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goPanicEmpty
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { panic() return 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { panic() return 0 }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: panic() return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: panic() return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: Panic(HirExpr { kind: Literal(StringTy("")) })
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Int(0)) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goPanicOnError(n int) int
[INFO] [stderr] { if n < 0 { panic("negative number not allowed") } return n }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goPanicOnError
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] params parsed: [(Ident { ident: "n", span: #0 bytes(535..536) }, HirType { kind: I32 })]
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: int { if n < 0 { panic("negati (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { if n < 0 { panic("negative number not allowed") } return n }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: if n < 0 { panic("negative number not allowed") } return n
[INFO] [stderr] [DEBUG parse_hir_statement] input: if n < 0 { panic("negative number not allowed") } return n
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { panic("negative number not allowed") } return n
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return n
[INFO] [stderr] [DEBUG parse_hir_statement] input: return n
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stderr] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Expr(HirExpr { kind: Panic(_) })] }, else_body: None }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(n) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]   --> gourd-macro/tests/panic_builtin.rs:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | / go! {
[INFO] [stderr] 12 | |     func goPanicMsg() int {
[INFO] [stderr] 13 | |         panic("something went wrong")
[INFO] [stderr] 14 | |         return 0
[INFO] [stderr] 15 | |     }
[INFO] [stderr] 16 | | }
[INFO] [stderr]    | | ^
[INFO] [stderr]    | | |
[INFO] [stderr]    | |_unreachable statement
[INFO] [stderr]    |   any code following this expression is unreachable
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr]    = note: this warning originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]   --> gourd-macro/tests/panic_builtin.rs:19:1
[INFO] [stderr]    |
[INFO] [stderr] 19 | / go! {
[INFO] [stderr] 20 | |     func goPanicEmpty() int {
[INFO] [stderr] 21 | |         panic()
[INFO] [stderr] 22 | |         return 0
[INFO] [stderr] 23 | |     }
[INFO] [stderr] 24 | | }
[INFO] [stderr]    | | ^
[INFO] [stderr]    | | |
[INFO] [stderr]    | |_unreachable statement
[INFO] [stderr]    |   any code following this expression is unreachable
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] [DEBUG parse_hir_function] input: func goRecoverNoPanic() string
[INFO] [stderr] { result := recover() if result != nil { return "caught" } return "no panic" }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goRecoverNoPanic
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string
[INFO] [stderr] { result := recover() i (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { result := recover() if result != nil { return "caught" } return "no panic" }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return "caught"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "caught"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "no panic"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(167..173) }, mutable: true, value: HirExpr { kind: Recover }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Ne) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("caught")) }))] }, else_body: None }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(StringTy("no panic")) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] [DEBUG parse_hir_function] input: func goRecoverAfterPanic() string
[INFO] [stderr] {
[INFO] [stderr]     f := func() int { panic("oops") return 0 } f() result := recover() if
[INFO] [stderr]     result != nil { return "caught" } return "no panic"
[INFO] [stderr] }
[INFO] [stderr] [DEBUG] receiver parsed: None
[INFO] [stderr] [DEBUG] parsing name via Ident::parse_any
[INFO] [stderr] [DEBUG] function name: goRecoverAfterPanic
[INFO] [stderr] [DEBUG] about to parse params
[INFO] [stderr] [DEBUG] params parsed: []
[INFO] [stderr] [DEBUG] about to parse returns
[INFO] [stderr] [DEBUG parse_hir_type] input: string
[INFO] [stderr] {
[INFO] [stderr]     f := func() int { (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG] returns parsed: 1
[INFO] [stderr] [DEBUG] about to parse body
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: {
[INFO] [stderr]     f := func() int { panic("oops") return 0 } f() result := recover() if
[INFO] [stderr]     result != nil { return "caught" } return "no panic"
[INFO] [stderr] }
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: f := func() int { panic("oops") return 0 } f() result := recover() if result
[INFO] [stderr] != nil { return "caught
[INFO] [stderr] [DEBUG parse_hir_statement] input: f := func() int { panic("oops") return 0 } f() result := recover() if result
[INFO] [stderr] != nil { return "caught
[INFO] [stderr] [DEBUG parse_hir_type] input: int { panic("oops") return 0 } (peek_ident=true, peek_bracket=false)
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { panic("oops") return 0 } f() result := recover() if result != nil
[INFO] [stderr] { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: panic("oops") return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: panic("oops") return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: return 0
[INFO] [stderr] [DEBUG parse_hir_statement] input: return 0
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #2: f() result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: f() result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #3: result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: result := recover() if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #4: if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: if result != nil { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] input starts with: { return "caught" } return "no panic"
[INFO] [stderr] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #1: return "caught"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "caught"
[INFO] [stderr] [DEBUG parse_hir_block] parsing statement #5: return "no panic"
[INFO] [stderr] [DEBUG parse_hir_statement] input: return "no panic"
[INFO] [stderr] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] DEBUG: No fix applied, using default: Closure { name: Ident { ident: "f", span: #0 bytes(583..584) }, params: [], body: HirBlock { stmts: [Panic(HirExpr { kind: Literal(StringTy("oops")) }), Return(Some(HirExpr { kind: Literal(Int(0)) }))] } }
[INFO] [stderr] DEBUG: No fix applied, using default: Expr(HirExpr { kind: Call(func=HirExpr { kind: Identifier(f) }, 0 args) })
[INFO] [stderr] DEBUG: No fix applied, using default: Local { name: Ident { ident: "result", span: #0 bytes(678..684) }, mutable: true, value: HirExpr { kind: Recover }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stderr] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Ne) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("caught")) }))] }, else_body: None }
[INFO] [stderr] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(StringTy("no panic")) }))
[INFO] [stderr] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]   --> gourd-macro/tests/recover_builtin_test.rs:20:1
[INFO] [stderr]    |
[INFO] [stderr] 20 | / go! {
[INFO] [stderr] 21 | |     func goRecoverAfterPanic() string {
[INFO] [stderr] 22 | |         f := func() int {
[INFO] [stderr] 23 | |             panic("oops")
[INFO] [stderr] ...  |
[INFO] [stderr] 33 | | }
[INFO] [stderr]    | | ^
[INFO] [stderr]    | | |
[INFO] [stderr]    | |_unreachable statement
[INFO] [stderr]    |   any code following this expression is unreachable
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr]    = note: this warning originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: function `goFn` should have a snake case name
[INFO] [stderr]   --> gourd-codegen/tests/transpile_go_fn.rs:14:4
[INFO] [stderr]    |
[INFO] [stderr] 14 | fn goFn(tokens: TokenStream) -> TokenStream {
[INFO] [stderr]    |    ^^^^ help: convert the identifier to snake case: `go_fn`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `gourd-macro` (test "panic_builtin") generated 2 warnings
[INFO] [stderr] warning: `gourd-macro` (test "recover_builtin_test") generated 1 warning
[INFO] [stderr] warning: `gourd-codegen` (test "transpile_go_fn") generated 1 warning
[INFO] [stderr] warning: `gourd-codegen` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gourd-7802579090188466)
[INFO] [stdout] 
[INFO] [stdout] running 117 tests
[INFO] [stdout] test go_map::tests::test_clone_nil_like_on_initialized ... ok
[INFO] [stdout] test go_map::tests::test_clone_nil_like_on_nil ... ok
[INFO] [stdout] test go_map::tests::test_get_ok_returns_none_for_missing_key ... ok
[INFO] [stdout] test go_map::tests::test_clone_preserves_initialized ... ok
[INFO] [stdout] test go_map::tests::test_clone_preserves_nil ... ok
[INFO] [stdout] test go_map::tests::test_get_ok_returns_some_for_existing_key ... ok
[INFO] [stdout] test go_map::tests::test_inner_access ... ok
[INFO] [stdout] test go_map::tests::test_map_is_empty ... ok
[INFO] [stdout] test go_map::tests::test_map_delete ... ok
[INFO] [stdout] test go_map::tests::test_map_is_nil ... ok
[INFO] [stdout] test go_map::tests::test_map_len ... ok
[INFO] [stdout] test go_map::tests::test_int_key_map ... ok
[INFO] [stdout] test go_map::tests::test_map_set_returns_mut_ref ... ok
[INFO] [stdout] test go_map::tests::test_new_initialized_map ... ok
[INFO] [stdout] test go_map::tests::test_nil_map_delete_does_nothing ... ok
[INFO] [stdout] test go_map::tests::test_nil_map_get_ok_returns_none ... ok
[INFO] [stdout] test go_map::tests::test_nil_map_reads_return_default ... ok
[INFO] [stdout] test go_map::tests::test_default_is_nil ... ok
[INFO] [stdout] test go_scheduler::tests::test_channel_buffered ... ok
[INFO] [stdout] test go_scheduler::tests::test_channel_send_recv ... ok
[INFO] [stdout] test go_scheduler::tests::test_scheduler_submit_and_run ... ok
[INFO] [stdout] test go_scheduler::tests::test_scheduler_clone_shares_tasks ... ok
[INFO] [stdout] test go_slice::tests::test_append_grows_capacity ... ok
[INFO] [stdout] test go_slice::tests::test_append_multiple ... ok
[INFO] [stdout] test go_scheduler::tests::test_select_default_case ... ok
[INFO] [stdout] test go_slice::tests::test_append_single ... ok
[INFO] [stdout] test go_map::tests::test_force_init ... ok
[INFO] [stdout] test go_slice::tests::test_byte_slice ... ok
[INFO] [stdout] test go_slice::tests::test_clone_nil_like_on_nil ... ok
[INFO] [stdout] test go_slice::tests::test_clone_preserves_data ... ok
[INFO] [stdout] test go_slice::tests::test_copy_partial ... ok
[INFO] [stdout] test go_slice::tests::test_clone_preserves_initialized ... ok
[INFO] [stdout] test go_scheduler::tests::test_select_send_case ... ok
[INFO] [stdout] test go_slice::tests::test_copy_from ... ok
[INFO] [stdout] test go_slice::tests::test_default_is_nil ... ok
[INFO] [stdout] test go_slice::tests::test_as_ref ... ok
[INFO] [stdout] test go_slice::tests::test_copy_to_nil_dst ... ok
[INFO] [stdout] test go_slice::tests::test_from_vec_and_into_vec ... ok
[INFO] [stdout] test go_slice::tests::test_get_in_bounds ... ok
[INFO] [stdout] test go_slice::tests::test_from_string_and_as_string ... ok
[INFO] [stdout] test go_slice::tests::test_get_out_of_bounds ... ok
[INFO] [stdout] test go_slice::tests::test_from_string_non_utf8 ... ok
[INFO] [stdout] test go_slice::tests::test_from_slice ... ok
[INFO] [stdout] test go_slice::tests::test_get_or_default_panics ... ok
[INFO] [stdout] test go_slice::tests::test_nil_slice_get_returns_none ... ok
[INFO] [stdout] test go_slice::tests::test_set_extends_in_available_capacity ... ok
[INFO] [stdout] test go_slice::tests::test_slice_basic ... ok
[INFO] [stdout] test go_slice::tests::test_new_empty ... ok
[INFO] [stdout] test go_slice::tests::test_nil_slice ... ok
[INFO] [stdout] test go_slice::tests::test_set_in_bounds ... ok
[INFO] [stdout] test go_slice::tests::test_slice_from ... ok
[INFO] [stdout] test go_slice::tests::test_with_capacity ... ok
[INFO] [stdout] test go_slice::tests::test_slice_to ... ok
[INFO] [stdout] test go_slice::tests::test_with_length ... ok
[INFO] [stdout] test go_string::tests::test_clone_shares_bytes ... ok
[INFO] [stdout] test go_string::tests::test_deref_to_str ... ok
[INFO] [stdout] test go_string::tests::test_empty_string ... ok
[INFO] [stdout] test go_string::tests::test_default_is_empty ... ok
[INFO] [stdout] test go_string::tests::test_from_byte ... ok
[INFO] [stdout] test go_string::tests::test_from_bytes ... ok
[INFO] [stdout] test go_string::tests::test_from_int ... ok
[INFO] [stdout] test go_string::tests::test_utf8_handling ... ok
[INFO] [stdout] test go_string::tests::test_slice ... ok
[INFO] [stdout] test go_string::tests::test_from_to_string ... ok
[INFO] [stdout] test go_string::tests::test_new_from_str ... ok
[INFO] [stdout] test packages::tests::tests::test_abs_i64 ... ok
[INFO] [stdout] test packages::tests::tests::test_bytes_contains ... ok
[INFO] [stdout] test packages::tests::tests::test_byte_of ... ok
[INFO] [stdout] test packages::tests::tests::test_abs_i32 ... ok
[INFO] [stdout] test packages::tests::tests::test_bytes_to_string ... ok
[INFO] [stdout] test packages::tests::tests::test_contains ... ok
[INFO] [stdout] test packages::tests::tests::test_ceil ... ok
[INFO] [stdout] test packages::tests::tests::test_contains_str ... ok
[INFO] [stdout] test packages::tests::tests::test_fields ... ok
[INFO] [stdout] test packages::tests::tests::test_floor ... ok
[INFO] [stdout] test packages::tests::tests::test_has_prefix ... ok
[INFO] [stdout] test packages::tests::tests::test_has_suffix ... ok
[INFO] [stdout] test packages::tests::tests::test_index ... ok
[INFO] [stdout] test packages::tests::tests::test_io_copy ... ok
[INFO] [stdout] test packages::tests::tests::test_join ... ok
[INFO] [stdout] test packages::tests::tests::test_index_str ... ok
[INFO] [stdout] test packages::tests::tests::test_json_marshal_basic ... ok
[INFO] [stdout] test packages::tests::tests::test_json_marshal_string ... ok
[INFO] [stdout] test packages::tests::tests::test_json_marshal_vec ... ok
[INFO] [stdout] test packages::tests::tests::test_max_f64 ... ok
[INFO] [stdout] test packages::tests::tests::test_last_index_str ... ok
[INFO] [stdout] test packages::tests::tests::test_min_f64 ... ok
[INFO] [stdout] test packages::tests::tests::test_os_getenv_setenv ... ok
[INFO] [stdout] test packages::tests::tests::test_os_mkdir ... ok
[INFO] [stdout] test packages::tests::tests::test_repeat ... ok
[INFO] [stdout] test packages::tests::tests::test_round ... ok
[INFO] [stdout] test packages::tests::tests::test_rune_of ... ok
[INFO] [stdout] test packages::tests::tests::test_os_mkdir_all ... ok
[INFO] [stdout] test packages::tests::tests::test_slice_sub ... ok
[INFO] [stdout] test packages::tests::tests::test_split ... ok
[INFO] [stdout] test packages::tests::tests::test_strings_replace ... ok
[INFO] [stdout] test packages::tests::tests::test_string_to_bytes ... ok
[INFO] [stdout] test packages::tests::tests::test_sqrt ... ok
[INFO] [stdout] test packages::tests::tests::test_strings_replace_all ... ok
[INFO] [stdout] test packages::tests::tests::test_to_lower ... ok
[INFO] [stdout] test packages::tests::tests::test_time_now ... ok
[INFO] [stdout] test packages::tests::tests::test_time_sleep ... ok
[INFO] [stdout] test packages::tests::tests::test_to_upper ... ok
[INFO] [stdout] test packages::tests::tests::test_trim ... ok
[INFO] [stdout] test packages::tests::tests::test_trim_left ... ok
[INFO] [stdout] test packages::tests::tests::test_trim_right ... ok
[INFO] [stdout] test prelude::complex::tests::test_complex128_div ... ok
[INFO] [stdout] test prelude::complex::tests::test_complex128_mul ... ok
[INFO] [stdout] test prelude::complex::tests::test_complex64_abs ... ok
[INFO] [stdout] test prelude::complex::tests::test_complex64_add ... ok
[INFO] [stdout] test prelude::complex::tests::test_complex64_conjugate ... ok
[INFO] [stdout] test prelude::complex::tests::test_complex64_div ... ok
[INFO] [stdout] test prelude::complex::tests::test_complex64_div_real ... ok
[INFO] [stdout] test prelude::complex::tests::test_complex64_mul ... ok
[INFO] [stdout] test prelude::complex::tests::test_complex64_new ... ok
[INFO] [stdout] test go_scheduler::tests::test_select_recv_case ... ok
[INFO] [stdout] test go_map::tests::test_nil_map_write_panics ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 117 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gourd-6f8ae68a47053762)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running tests/gc_tests.rs (/opt/rustwide/target/debug/deps/gc_tests-d6302adcd4021bd8)
[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] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_clone_increments_reference_count ... ok
[INFO] [stdout] test test_deref_access_fields ... ok
[INFO] [stdout] test test_display ... ok
[INFO] [stdout] test test_try_unwrap_fails_with_multiple_references ... ok
[INFO] [stdout] test test_new_creates_single_reference ... ok
[INFO] [stdout] test test_try_unwrap_succeeds_with_single_reference ... ok
[INFO] [stdout] test test_into_inner_preserves_reference_count ... ok
[INFO] [stdout] test test_eq_and_partial_cmp ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gourd_check-df95adc7892d0308)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gourd_check-bffe242708a18be0)
[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] [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] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-002103083a04e4c8)
[INFO] [stdout] test test_go_validation ... ok
[INFO] [stdout] test test_verify_validation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 45.57s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_examples.rs (/opt/rustwide/target/debug/deps/test_examples-4502bcb213360f3f)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test test_examples_dir_not_empty ... ok
[INFO] [stdout] test test_examples_compile ... ok
[INFO] [stdout] test test_data_filtering_regression ... FAILED
[INFO] [stdout] test test_examples_run ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_data_filtering_regression stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_data_filtering_regression' (13970) panicked at gourd-check/tests/test_examples.rs:195:5:
[INFO] [stdout] gourd run failed:
[INFO] [stdout] --- stderr ---
[INFO] [stdout]     Blocking waiting for file lock on build directory
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/expressions.rs:754:32
[INFO] [stdout]     |
[INFO] [stdout] 754 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/statement_parsing.rs:670:32
[INFO] [stdout]     |
[INFO] [stdout] 670 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `collected` is never read
[INFO] [stdout]    --> gourd-codegen/src/lib.rs:550:25
[INFO] [stdout]     |
[INFO] [stdout] 550 |                         collected = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] warning: `gourd-codegen` (lib) generated 3 warnings
[INFO] [stdout] warning: `gourd-codegen` (lib) generated 3 warnings (3 duplicates)
[INFO] [stdout]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.50s
[INFO] [stdout]      Running `/opt/rustwide/target/debug/gourd run examples/data_filtering.go`
[INFO] [stdout] [DEBUG parse_hir_function] input: func HasLongWords (text string , threshold int) bool { words := strings . Fields (text) for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshold { return true } } return false }
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: HasLongWords
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string , threshold int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: text, span: bytes(139..143) }, HirType { kind: StringTy }), (Ident { sym: threshold, span: bytes(152..161) }, HirType { kind: I32 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: bool { words := strings . Fiel (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { words := strings . Fields (text) for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshold { return true } } return false }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: words := strings . Fields (text) for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshol
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (text) for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshol
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshold { return true } } return false
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshold { return true } } return false
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshold { return true } } return false
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { if len (words [i]) > threshold { return true } } return false
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if len (words [i]) > threshold { return true } } return false
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if len (words [i]) > threshold { return true }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (words [i]) > threshold { return true }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { return true }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: return true
[INFO] [stdout] [DEBUG parse_hir_statement] input: return true
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return false
[INFO] [stdout] [DEBUG parse_hir_statement] input: return false
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(175..180) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(210..211) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(Bool(true)) }))] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Bool(false)) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stdout] [DEBUG parse_hir_function] input: func NormalizeScores (data [] int) [] int { if len (data) == 0 { return [] int { } } hi := data [0] lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] in
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: NormalizeScores
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: data, span: bytes(391..395) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int { if len (data) == 0 {  (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if len (data) == 0 { return [] int { } } hi := data [0] lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] int { } for i := 0 ; i < len (data) ; i ++ {
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if len (data) == 0 { return [] int { } } hi := data [0] lo := data [0] for _ , v := range data { if 
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (data) == 0 { return [] int { } } hi := data [0] lo := data [0] for _ , v := range data { if 
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { return [] int { } } hi := data [0] lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] int { } for i := 0 ; i < len (data) ; i ++ { if hi == lo { result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: return [] int { }
[INFO] [stdout] [DEBUG parse_hir_statement] input: return [] int { }
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: hi := data [0] lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } 
[INFO] [stdout] [DEBUG parse_hir_statement] input: hi := data [0] lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] in
[INFO] [stdout] [DEBUG parse_hir_statement] input: lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] in
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] int { } for i := 
[INFO] [stdout] [DEBUG parse_hir_statement] input: for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] int { } for i := 
[INFO] [stdout] [DEBUG parse_hir_statement] input: if v > hi { hi = v } if v < lo { lo = v }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { hi = v } if v < lo { lo = v }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: hi = v
[INFO] [stdout] [DEBUG parse_hir_statement] input: hi = v
[INFO] [stdout] [DEBUG parse_hir_statement] input: if v < lo { lo = v }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { lo = v }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: lo = v
[INFO] [stdout] [DEBUG parse_hir_statement] input: lo = v
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #5: result := [] int { } for i := 0 ; i < len (data) ; i ++ { if hi == lo { result = append (result , 0)
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := [] int { } for i := 0 ; i < len (data) ; i ++ { if hi == lo { result = append (result , 0)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #6: for i := 0 ; i < len (data) ; i ++ { if hi == lo { result = append (result , 0) } else { r := data [
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (data) ; i ++ { if hi == lo { result = append (result , 0) } else { r := data [
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (data) ; i ++ { if hi == lo { result = append (result , 0) } else { r := data [i] -
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { if hi == lo { result = append (result , 0) } else { r := data [i] - lo result = append (resul
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if hi == lo { result = append (result , 0) } else { r := data [i] - lo result = append (result , r / (hi - lo)) } } return result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if hi == lo { result = append (result , 0) } else { r := data [i] - lo result = append (result , r /
[INFO] [stdout] [DEBUG parse_hir_statement] input: if hi == lo { result = append (result , 0) } else { r := data [i] - lo result = append (result , r /
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = append (result , 0) } else { r := data [i] - lo result = append (result , r / (hi - lo)) }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = append (result , 0)
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = append (result , 0)
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { r := data [i] - lo result = append (result , r / (hi - lo)) }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: r := data [i] - lo result = append (result , r / (hi - lo))
[INFO] [stdout] [DEBUG parse_hir_statement] input: r := data [i] - lo result = append (result , r / (hi - lo))
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: result = append (result , r / (hi - lo))
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = append (result , r / (hi - lo))
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #7: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Eq) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: SliceLiteral(0 elems) }))] }, else_body: None }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: hi, span: bytes(453..455) }, mutable: true, value: HirExpr { kind: Index(_) }, type_hint: Some(HirType { kind: Unknown("hi") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: lo, span: bytes(468..470) }, mutable: true, value: HirExpr { kind: Index(_) }, type_hint: Some(HirType { kind: Unknown("lo") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: _, span: bytes(487..488) }), value_name: Ident { sym: v, span: bytes(490..491) }, iterable: HirExpr { kind: Identifier(data) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(hi) }, value: HirExpr { kind: Identifier(v) } }] }, else_body: None }, If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(lo) }, value: HirExpr { kind: Identifier(v) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(568..574) }, mutable: true, value: HirExpr { kind: SliceLiteral(0 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(591..592) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Eq) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Append(_) } }] }, else_body: Some(HirBlock { stmts: [Local { name: Ident { sym: r, span: bytes(680..681) }, mutable: true, value: HirExpr { kind: Binary(Sub) }, type_hint: Some(HirType { kind: Unknown("r") }) }, Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Append(_) } }] }) }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] [DEBUG parse_hir_function] input: func FindPeak (data [] int) int { peakIdx := 0 peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } return peakIdx }
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: FindPeak
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: data, span: bytes(829..833) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: int { peakIdx := 0 peakVal :=  (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { peakIdx := 0 peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } return peakIdx }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: peakIdx := 0 peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVa
[INFO] [stdout] [DEBUG parse_hir_statement] input: peakIdx := 0 peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVa
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] 
[INFO] [stdout] [DEBUG parse_hir_statement] input: peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } retu
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } retu
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } return p
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } return peakIdx
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } return peakIdx
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if data [i] > peakVal { peakVal = data [i] peakIdx = i }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if data [i] > peakVal { peakVal = data [i] peakIdx = i }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { peakVal = data [i] peakIdx = i }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: peakVal = data [i] peakIdx = i
[INFO] [stdout] [DEBUG parse_hir_statement] input: peakVal = data [i] peakIdx = i
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: peakIdx = i
[INFO] [stdout] [DEBUG parse_hir_statement] input: peakIdx = i
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return peakIdx
[INFO] [stdout] [DEBUG parse_hir_statement] input: return peakIdx
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: peakIdx, span: bytes(848..855) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: peakVal, span: bytes(862..869) }, mutable: true, value: HirExpr { kind: Index(_) }, type_hint: Some(HirType { kind: Unknown("peakVal") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(886..887) }, mutable: true, value: HirExpr { kind: Literal(Int(1)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(peakVal) }, value: HirExpr { kind: Index(_) } }, Assign { target: HirExpr { kind: Identifier(peakIdx) }, value: HirExpr { kind: Identifier(i) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(peakIdx) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stdout] [DEBUG parse_hir_function] input: func WordFilter (text string , minLength int) string { words := strings . Fields (text) result := [] string { } for _ , word := range words { if len (word) >= minLength { result = append (result , wor
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: WordFilter
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string , minLength int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: text, span: bytes(1070..1074) }, HirType { kind: StringTy }), (Ident { sym: minLength, span: bytes(1083..1092) }, HirType { kind: I32 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { words := strings . Fi (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { words := strings . Fields (text) result := [] string { } for _ , word := range words { if len (word) >= minLength { result = append (result , word) } } return strings . Join (result , " ") }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: words := strings . Fields (text) result := [] string { } for _ , word := range words { if len (word)
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (text) result := [] string { } for _ , word := range words { if len (word)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: result := [] string { } for _ , word := range words { if len (word) >= minLength { result = append (
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := [] string { } for _ , word := range words { if len (word) >= minLength { result = append (
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for _ , word := range words { if len (word) >= minLength { result = append (result , word) } } retur
[INFO] [stdout] [DEBUG parse_hir_statement] input: for _ , word := range words { if len (word) >= minLength { result = append (result , word) } } retur
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (word) >= minLength { result = append (result , word) }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = append (result , word) }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = append (result , word)
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = append (result , word)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return strings . Join (result , " ")
[INFO] [stdout] [DEBUG parse_hir_statement] input: return strings . Join (result , " ")
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(1108..1113) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(1139..1145) }, mutable: true, value: HirExpr { kind: SliceLiteral(0 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: StringTy }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: _, span: bytes(1165..1166) }), value_name: Ident { sym: word, span: bytes(1168..1172) }, iterable: HirExpr { kind: Identifier(words) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Ge) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Append(_) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Join.() }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func RangeClamp (data [] int , lo int , hi int) [] int { result := [] int { } for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (r
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: RangeClamp
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int , lo int , hi int (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG parse_hir_type] input: int , hi int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: data, span: bytes(1369..1373) }, HirType { kind: SliceRef(HirType { kind: I32 }) }), (Ident { sym: lo, span: bytes(1381..1383) }, HirType { kind: I32 }), (Ident { sym: hi, span: bytes(1389..1391) }, HirType { kind: I32 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int { result := [] int { }  (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result := [] int { } for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped) } return result }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result := [] int { } for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clam
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := [] int { } for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clam
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamp
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamp
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) 
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , 
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped) } return result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped
[INFO] [stdout] [DEBUG parse_hir_statement] input: v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_statement] input: clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: clamped = max (lo , clamped) result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_statement] input: clamped = max (lo , clamped) result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(1406..1412) }, mutable: true, value: HirExpr { kind: SliceLiteral(0 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(1429..1430) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Local { name: Ident { sym: v, span: bytes(1460..1461) }, mutable: true, value: HirExpr { kind: Index(_) }, type_hint: Some(HirType { kind: Unknown("v") }) }, Local { name: Ident { sym: clamped, span: bytes(1475..1482) }, mutable: true, value: HirExpr { kind: MinMax(min) }, type_hint: Some(HirType { kind: Unknown("clamped") }) }, Assign { target: HirExpr { kind: Identifier(clamped) }, value: HirExpr { kind: MinMax(max) } }, Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Append(_) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] [DEBUG parse_hir_function] input: func WordFreqTopN (text string , n int) map [string] int { counts := make (map [string] int) words := strings . Fields (text) for _ , word := range words { counts [word] = counts [word] + 1 } result :
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: WordFreqTopN
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string , n int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: text, span: bytes(1660..1664) }, HirType { kind: StringTy }), (Ident { sym: n, span: bytes(1673..1674) }, HirType { kind: I32 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int { counts := m (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { counts := make (map [string] int) words := strings . Fields (text) for _ , word := range words { counts [word] = counts [word] + 1 } result := make (map [string] int) i := 0 for k , v := range count
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: counts := make (map [string] int) words := strings . Fields (text) for _ , word := range words { cou
[INFO] [stdout] [DEBUG parse_hir_statement] input: counts := make (map [string] int) words := strings . Fields (text) for _ , word := range words { cou
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: words := strings . Fields (text) for _ , word := range words { counts [word] = counts [word] + 1 } r
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (text) for _ , word := range words { counts [word] = counts [word] + 1 } r
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for _ , word := range words { counts [word] = counts [word] + 1 } result := make (map [string] int) 
[INFO] [stdout] [DEBUG parse_hir_statement] input: for _ , word := range words { counts [word] = counts [word] + 1 } result := make (map [string] int) 
[INFO] [stdout] [DEBUG parse_hir_statement] input: counts [word] = counts [word] + 1
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: result := make (map [string] int) i := 0 for k , v := range counts { if i >= n { break } result [k] 
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := make (map [string] int) i := 0 for k , v := range counts { if i >= n { break } result [k] 
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #5: i := 0 for k , v := range counts { if i >= n { break } result [k] = v i = i + 1 } return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 for k , v := range counts { if i >= n { break } result [k] = v i = i + 1 } return result
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #6: for k , v := range counts { if i >= n { break } result [k] = v i = i + 1 } return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: for k , v := range counts { if i >= n { break } result [k] = v i = i + 1 } return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: if i >= n { break } result [k] = v i = i + 1
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { break } result [k] = v i = i + 1
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: break
[INFO] [stdout] [DEBUG parse_hir_statement] input: break
[INFO] [stdout] [DEBUG parse_hir_statement] input: result [k] = v i = i + 1
[INFO] [stdout] [DEBUG parse_hir_statement] input: i = i + 1
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #7: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString , i32 >]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: counts, span: bytes(1698..1704) }, mutable: true, value: HirExpr { kind: Make(Map(HirType { kind: StringTy }, HirType { kind: I32 })) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(1730..1735) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: _, span: bytes(1765..1766) }), value_name: Ident { sym: word, span: bytes(1768..1772) }, iterable: HirExpr { kind: Identifier(words) }, body: HirBlock { stmts: [Assign { target: HirExpr { kind: Index(_) }, value: HirExpr { kind: Binary(Add) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(1828..1834) }, mutable: true, value: HirExpr { kind: Make(Map(HirType { kind: StringTy }, HirType { kind: I32 })) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: i, span: bytes(1860..1861) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: k, span: bytes(1872..1873) }), value_name: Ident { sym: v, span: bytes(1875..1876) }, iterable: HirExpr { kind: Identifier(counts) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Ge) }, then_body: HirBlock { stmts: [Break(None)] }, else_body: None }, Assign { target: HirExpr { kind: Index(_) }, value: HirExpr { kind: Identifier(v) } }, Assign { target: HirExpr { kind: Identifier(i) }, value: HirExpr { kind: Binary(Add) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString , i32 >]
[INFO] [stdout] [DEBUG parse_hir_function] input: func SumAll (data [] int) int { sum := 0 for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum }
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: SumAll
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: data, span: bytes(2020..2024) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: int { sum := 0 for i := 0 ; i  (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { sum := 0 for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: sum := 0 for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_statement] input: sum := 0 for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: sum = sum + data [i]
[INFO] [stdout] [DEBUG parse_hir_statement] input: sum = sum + data [i]
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return sum
[INFO] [stdout] [DEBUG parse_hir_statement] input: return sum
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: sum, span: bytes(2039..2042) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(2053..2054) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(sum) }, value: HirExpr { kind: Binary(Add) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(sum) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stdout] [DEBUG parse_hir_function] input: func TrimAndFormat (text string , sep string) string { words := strings . Fields (text) result := "" for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 1 { result =
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: TrimAndFormat
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string , sep string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: text, span: bytes(2190..2194) }, HirType { kind: StringTy }), (Ident { sym: sep, span: bytes(2203..2206) }, HirType { kind: StringTy })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { words := strings . Fi (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { words := strings . Fields (text) result := "" for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 1 { result = result + sep } } return result }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: words := strings . Fields (text) result := "" for i := 0 ; i < len (words) ; i ++ { result = result 
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (text) result := "" for i := 0 ; i < len (words) ; i ++ { result = result 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: result := "" for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := "" for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 1 { result = 
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 1 { result = 
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 1 { result = resu
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { result = result + words [i] if i < len (words) - 1 { result = result + sep } } return result
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = result + words [i] if i < len (words) - 1 { result = result + sep } } return result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = result + words [i] if i < len (words) - 1 { result = result + sep }
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = result + words [i] if i < len (words) - 1 { result = result + sep }
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: if i < len (words) - 1 { result = result + sep }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if i < len (words) - 1 { result = result + sep }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = result + sep }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = result + sep
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = result + sep
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(2225..2230) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(2256..2262) }, mutable: true, value: HirExpr { kind: Literal(StringTy("")) }, type_hint: Some(HirType { kind: StringTy }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(2274..2275) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Binary(Add) } }, If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func Greet (name string) string { return "Hello, " + name + "!" }
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: Greet
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: name, span: bytes(2454..2458) }, HirType { kind: StringTy })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { return "Hello, " + na (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { return "Hello, " + name + "!" }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: return "Hello, " + name + "!"
[INFO] [stdout] [DEBUG parse_hir_statement] input: return "Hello, " + name + "!"
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func BuildOutput (labels [] string , values [] int , prefix string) string { if len (labels) != len (values) { return prefix + ": mismatched lengths" } report := prefix + ":" for i := 0 ; i < len (lab
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: BuildOutput
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] string , values [] int , pr (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int , prefix string (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: labels, span: bytes(2573..2579) }, HirType { kind: SliceRef(HirType { kind: StringTy }) }), (Ident { sym: values, span: bytes(2590..2596) }, HirType { kind: SliceRef(HirType { kind: I32 }) }), (Ident { sym: prefix, span: bytes(2604..2610) }, HirType { kind: StringTy })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { if len (labels) != le (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if len (labels) != len (values) { return prefix + ": mismatched lengths" } report := prefix + ":" for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + string (rune (values [i]
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if len (labels) != len (values) { return prefix + ": mismatched lengths" } report := prefix + ":" fo
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (labels) != len (values) { return prefix + ": mismatched lengths" } report := prefix + ":" fo
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { return prefix + ": mismatched lengths" } report := prefix + ":" for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + string (rune (values [i])) if i < len (labels) - 1 { repor
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: return prefix + ": mismatched lengths"
[INFO] [stdout] [DEBUG parse_hir_statement] input: return prefix + ": mismatched lengths"
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: report := prefix + ":" for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + s
[INFO] [stdout] [DEBUG parse_hir_statement] input: report := prefix + ":" for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + s
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + string (rune (values [i]
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + string (rune (values [i]
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + string (rune (values [i])) i
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { report = report + labels [i] + "=" + string (rune (values [i])) if i < len (labels) - 1 { rep
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { report = report + labels [i] + "=" + string (rune (values [i])) if i < len (labels) - 1 { report = report + ", " } } return report
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: report = report + labels [i] + "=" + string (rune (values [i])) if i < len (labels) - 1 { report = r
[INFO] [stdout] [DEBUG parse_hir_statement] input: report = report + labels [i] + "=" + string (rune (values [i])) if i < len (labels) - 1 { report = r
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: if i < len (labels) - 1 { report = report + ", " }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if i < len (labels) - 1 { report = report + ", " }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { report = report + ", " }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: report = report + ", "
[INFO] [stdout] [DEBUG parse_hir_statement] input: report = report + ", "
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return report
[INFO] [stdout] [DEBUG parse_hir_statement] input: return report
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Ne) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Binary(Add) }))] }, else_body: None }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: report, span: bytes(2706..2712) }, mutable: true, value: HirExpr { kind: Binary(Add) }, type_hint: Some(HirType { kind: Unknown("report") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(2734..2735) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(report) }, value: HirExpr { kind: Binary(Add) } }, If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(report) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(report) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func DurationReport (nanos int64) string { secs := nanos / 1000000000 if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sprintf ("%d.%03ds" , secs , ms)
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: DurationReport
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: int64 (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: nanos, span: bytes(2988..2993) }, HirType { kind: I64 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { secs := nanos / 10000 (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { secs := nanos / 1000000000 if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sprintf ("%d.%03ds" , secs , ms) } return fmt . Sprintf ("%dns" , nanos) 
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: secs := nanos / 1000000000 if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remainin
[INFO] [stdout] [DEBUG parse_hir_statement] input: secs := nanos / 1000000000 if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remainin
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sp
[INFO] [stdout] [DEBUG parse_hir_statement] input: if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sp
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sprintf ("%d.%03ds" , secs , ms) } return fmt . Sprintf ("%dns" , nanos)
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sprintf ("%d.%03
[INFO] [stdout] [DEBUG parse_hir_statement] input: remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sprintf ("%d.%03
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: ms := remaining / 1000000 return fmt . Sprintf ("%d.%03ds" , secs , ms)
[INFO] [stdout] [DEBUG parse_hir_statement] input: ms := remaining / 1000000 return fmt . Sprintf ("%d.%03ds" , secs , ms)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return fmt . Sprintf ("%d.%03ds" , secs , ms)
[INFO] [stdout] [DEBUG parse_hir_statement] input: return fmt . Sprintf ("%d.%03ds" , secs , ms)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return fmt . Sprintf ("%dns" , nanos)
[INFO] [stdout] [DEBUG parse_hir_statement] input: return fmt . Sprintf ("%dns" , nanos)
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: secs, span: bytes(3011..3015) }, mutable: true, value: HirExpr { kind: Binary(Div) }, type_hint: Some(HirType { kind: Unknown("secs") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Local { name: Ident { sym: remaining, span: bytes(3055..3064) }, mutable: true, value: HirExpr { kind: Cast(_) }, type_hint: Some(HirType { kind: Unknown("remaining") }) }, Local { name: Ident { sym: ms, span: bytes(3099..3101) }, mutable: true, value: HirExpr { kind: Binary(Div) }, type_hint: Some(HirType { kind: Unknown("ms") }) }, Return(Some(HirExpr { kind: MethodCall(Sprintf.() }))] }, else_body: None }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Sprintf.() }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func main () { text := "the quick brown fox jumps over the lazy dog the fox" fmt . Println ("Has long words:" , HasLongWords (text , 4)) fmt . Println ("Top 3:" , WordFreqTopN (text , 3)) fmt . Printl
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: main
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG] params parsed: []
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG] returns parsed: 0
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { text := "the quick brown fox jumps over the lazy dog the fox" fmt . Println ("Has long words:" , HasLongWords (text , 4)) fmt . Println ("Top 3:" , WordFreqTopN (text , 3)) fmt . Println ("Trimmed:"
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: text := "the quick brown fox jumps over the lazy dog the fox" fmt . Println ("Has long words:" , Has
[INFO] [stdout] [DEBUG parse_hir_statement] input: text := "the quick brown fox jumps over the lazy dog the fox" fmt . Println ("Has long words:" , Has
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: fmt . Println ("Has long words:" , HasLongWords (text , 4)) fmt . Println ("Top 3:" , WordFreqTopN (
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Has long words:" , HasLongWords (text , 4)) fmt . Println ("Top 3:" , WordFreqTopN (
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: fmt . Println ("Top 3:" , WordFreqTopN (text , 3)) fmt . Println ("Trimmed:" , TrimAndFormat (text ,
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Top 3:" , WordFreqTopN (text , 3)) fmt . Println ("Trimmed:" , TrimAndFormat (text ,
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: fmt . Println ("Trimmed:" , TrimAndFormat (text , " | ")) fmt . Println ("Normalized:" , NormalizeSc
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Trimmed:" , TrimAndFormat (text , " | ")) fmt . Println ("Normalized:" , NormalizeSc
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #5: fmt . Println ("Normalized:" , NormalizeScores ([] int { 0 , 50 , 100 })) fmt . Println ("Peak:" , F
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Normalized:" , NormalizeScores ([] int { 0 , 50 , 100 })) fmt . Println ("Peak:" , F
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #6: fmt . Println ("Peak:" , FindPeak ([] int { 1 , 3 , 2 , 5 , 4 })) fmt . Println ("Clamped:" , RangeC
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Peak:" , FindPeak ([] int { 1 , 3 , 2 , 5 , 4 })) fmt . Println ("Clamped:" , RangeC
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #7: fmt . Println ("Clamped:" , RangeClamp ([] int { - 5 , 0 , 5 , 10 , 15 } , 0 , 10)) fmt . Println ("
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Clamped:" , RangeClamp ([] int { - 5 , 0 , 5 , 10 , 15 } , 0 , 10)) fmt . Println ("
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #8: fmt . Println ("Filtered:" , WordFilter ("hi hello hi there" , 3)) fmt . Println ("Summed:" , SumAll
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Filtered:" , WordFilter ("hi hello hi there" , 3)) fmt . Println ("Summed:" , SumAll
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #9: fmt . Println ("Summed:" , SumAll ([] int { 1 , 2 , 3 , 4 , 5 })) fmt . Println ("Report:" , BuildOu
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Summed:" , SumAll ([] int { 1 , 2 , 3 , 4 , 5 })) fmt . Println ("Report:" , BuildOu
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #10: fmt . Println ("Report:" , BuildOutput ([] string { "a" , "b" , "c" } , [] int { 1 , 2 , 3 } , "tag"
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Report:" , BuildOutput ([] string { "a" , "b" , "c" } , [] int { 1 , 2 , 3 } , "tag"
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #11: fmt . Println ("Duration:" , DurationReport (1500000000)) fmt . Println ("Greet:" , Greet ("world"))
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Duration:" , DurationReport (1500000000)) fmt . Println ("Greet:" , Greet ("world"))
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #12: fmt . Println ("Greet:" , Greet ("world"))
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Greet:" , Greet ("world"))
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: text, span: bytes(3224..3228) }, mutable: true, value: HirExpr { kind: Literal(StringTy("the quick brown fox jumps over the lazy dog the fox")) }, type_hint: Some(HirType { kind: StringTy }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[]
[INFO] [stdout] DEBUG: main.rs at /tmp/.tmpjh3sCh/src/main.rs (dump: /tmp/gourd-run/src/main.rs)
[INFO] [stdout]     Updating crates.io index
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] error: failed to get `crossbeam` as a dependency of package `gourd-run v0.0.0 (/tmp/.tmpjh3sCh)`
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   failed to load source for dependency `crossbeam`
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   unable to update registry `crates-io`
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   download of config.json failed
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] DEBUG: kept temp dir at /tmp/.tmpjh3sCh
[INFO] [stdout] 
[INFO] [stdout] --- stdout ---
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x57ed6a5c0cd8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x57ed6a5c0cd8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x57ed6a5c0cd8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x57ed6a5c0cd8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x57ed6a5d4fba - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x57ed6a5d4fba - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x57ed6a5c5952 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x57ed6a5c5952 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x57ed6a59f6c6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x57ed6a59f6c6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x57ed6a5b9049 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x57ed6a554a0c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x57ed6a554a0c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x57ed6a5b9202 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x57ed6a5b9202 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x57ed6a59f782 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x57ed6a5948e9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x57ed6a5a049d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x57ed6a5d56ec - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x57ed6a543389 - test_examples[d1aa03acffdb8865]::test_data_filtering_regression
[INFO] [stdout]                                at /opt/rustwide/workdir/gourd-check/tests/test_examples.rs:195:5
[INFO] [stdout]   20:     0x57ed6a540e57 - test_examples[d1aa03acffdb8865]::test_data_filtering_regression::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/gourd-check/tests/test_examples.rs:184:36
[INFO] [stdout]   21:     0x57ed6a53f8d6 - <test_examples[d1aa03acffdb8865]::test_data_filtering_regression::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x57ed6a547aeb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x57ed6a547aeb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x57ed6a555365 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x57ed6a555365 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x57ed6a555365 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x57ed6a555365 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x57ed6a555365 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x57ed6a555365 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x57ed6a555365 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x57ed6a54ec74 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x57ed6a54ec74 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x57ed6a5583e2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x57ed6a5583e2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x57ed6a5583e2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x57ed6a5583e2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x57ed6a5583e2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x57ed6a5583e2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x57ed6a5583e2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x57ed6a5c063f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   41:     0x57ed6a5c063f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7af2dc64baa4 - <unknown>
[INFO] [stdout]   43:     0x7af2dc6d8a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_examples_run stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_examples_run' (13973) panicked at gourd-check/tests/test_examples.rs:139:9:
[INFO] [stdout] 2 file(s) failed to run:
[INFO] [stdout] /opt/rustwide/workdir/examples/text_analysis.go: Exit code exit status: 1
[INFO] [stdout] --- stdout ---
[INFO] [stdout] 
[INFO] [stdout] --- stderr ---
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/expressions.rs:754:32
[INFO] [stdout]     |
[INFO] [stdout] 754 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/statement_parsing.rs:670:32
[INFO] [stdout]     |
[INFO] [stdout] 670 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `collected` is never read
[INFO] [stdout]    --> gourd-codegen/src/lib.rs:550:25
[INFO] [stdout]     |
[INFO] [stdout] 550 |                         collected = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] warning: `gourd-codegen` (lib) generated 3 warnings
[INFO] [stdout]    Compiling gourd-macro v0.1.1 (/opt/rustwide/workdir/gourd-macro)
[INFO] [stdout] warning: `gourd-codegen` (lib) generated 3 warnings (3 duplicates)
[INFO] [stdout]    Compiling gourd v0.1.1 (/opt/rustwide/workdir/gourd)
[INFO] [stdout]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.45s
[INFO] [stdout]      Running `/opt/rustwide/target/debug/gourd run /opt/rustwide/workdir/examples/text_analysis.go`
[INFO] [stdout] [DEBUG parse_hir_function] input: func TextAnalyzer (text string) map [string] int { count := make (map [string] int) words := strings . Fields (text) for _ , word := range words { count [word] = count [word] + 1 } return count }
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: TextAnalyzer
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: text, span: bytes(99..103) }, HirType { kind: StringTy })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int { count := ma (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { count := make (map [string] int) words := strings . Fields (text) for _ , word := range words { count [word] = count [word] + 1 } return count }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: count := make (map [string] int) words := strings . Fields (text) for _ , word := range words { coun
[INFO] [stdout] [DEBUG parse_hir_statement] input: count := make (map [string] int) words := strings . Fields (text) for _ , word := range words { coun
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: words := strings . Fields (text) for _ , word := range words { count [word] = count [word] + 1 } ret
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (text) for _ , word := range words { count [word] = count [word] + 1 } ret
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for _ , word := range words { count [word] = count [word] + 1 } return count
[INFO] [stdout] [DEBUG parse_hir_statement] input: for _ , word := range words { count [word] = count [word] + 1 } return count
[INFO] [stdout] [DEBUG parse_hir_statement] input: count [word] = count [word] + 1
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return count
[INFO] [stdout] [DEBUG parse_hir_statement] input: return count
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString , i32 >]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: count, span: bytes(130..135) }, mutable: true, value: HirExpr { kind: Make(Map(HirType { kind: StringTy }, HirType { kind: I32 })) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(161..166) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: _, span: bytes(196..197) }), value_name: Ident { sym: word, span: bytes(199..203) }, iterable: HirExpr { kind: Identifier(words) }, body: HirBlock { stmts: [Assign { target: HirExpr { kind: Index(_) }, value: HirExpr { kind: Binary(Add) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(count) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString , i32 >]
[INFO] [stdout] [DEBUG parse_hir_function] input: func StringMetrics (input string) (int , int , int) { length := len (input) words := strings . Fields (input) wordCount := len (words) longest := 0 for i := 0 ; i < len (words) ; i ++ { if len (words 
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: StringMetrics
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: input, span: bytes(337..342) }, HirType { kind: StringTy })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG] returns parsed: 3
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { length := len (input) words := strings . Fields (input) wordCount := len (words) longest := 0 for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > longest { longest = len (words [i]) } } retur
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: length := len (input) words := strings . Fields (input) wordCount := len (words) longest := 0 for i 
[INFO] [stdout] [DEBUG parse_hir_statement] input: length := len (input) words := strings . Fields (input) wordCount := len (words) longest := 0 for i 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: words := strings . Fields (input) wordCount := len (words) longest := 0 for i := 0 ; i < len (words)
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (input) wordCount := len (words) longest := 0 for i := 0 ; i < len (words)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: wordCount := len (words) longest := 0 for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > lon
[INFO] [stdout] [DEBUG parse_hir_statement] input: wordCount := len (words) longest := 0 for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > lon
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: longest := 0 for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > longest { longest = len (wor
[INFO] [stdout] [DEBUG parse_hir_statement] input: longest := 0 for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > longest { longest = len (wor
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #5: for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > longest { longest = len (words [i]) } } r
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > longest { longest = len (words [i]) } } r
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (words) ; i ++ { if len (words [i]) > longest { longest = len (words [i]) } } retur
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { if len (words [i]) > longest { longest = len (words [i]) } } return length , wordCount , long
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if len (words [i]) > longest { longest = len (words [i]) } } return length , wordCount , longest
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if len (words [i]) > longest { longest = len (words [i]) }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (words [i]) > longest { longest = len (words [i]) }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { longest = len (words [i]) }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: longest = len (words [i])
[INFO] [stdout] [DEBUG parse_hir_statement] input: longest = len (words [i])
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #6: return length , wordCount , longest
[INFO] [stdout] [DEBUG parse_hir_statement] input: return length , wordCount , longest
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32, i32, i32]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: length, span: bytes(370..376) }, mutable: true, value: HirExpr { kind: Len(_) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(392..397) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: wordCount, span: bytes(424..433) }, mutable: true, value: HirExpr { kind: Len(_) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: longest, span: bytes(449..456) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(467..468) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(longest) }, value: HirExpr { kind: Len(_) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Tuple(3 items) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[i32, i32, i32]
[INFO] [stdout] [DEBUG parse_hir_function] input: func BatchProcessor (numbers [] int , threshold int) [] int { result := [] int { } for i := 0 ; i < len (numbers) ; i ++ { if numbers [i] >= threshold { result = append (result , numbers [i]) } } retu
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: BatchProcessor
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int , threshold int (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: numbers, span: bytes(678..685) }, HirType { kind: SliceRef(HirType { kind: I32 }) }), (Ident { sym: threshold, span: bytes(693..702) }, HirType { kind: I32 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int { result := [] int { }  (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result := [] int { } for i := 0 ; i < len (numbers) ; i ++ { if numbers [i] >= threshold { result = append (result , numbers [i]) } } return result }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result := [] int { } for i := 0 ; i < len (numbers) ; i ++ { if numbers [i] >= threshold { result = 
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := [] int { } for i := 0 ; i < len (numbers) ; i ++ { if numbers [i] >= threshold { result = 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: for i := 0 ; i < len (numbers) ; i ++ { if numbers [i] >= threshold { result = append (result , numb
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (numbers) ; i ++ { if numbers [i] >= threshold { result = append (result , numb
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (numbers) ; i ++ { if numbers [i] >= threshold { result = append (result , numbers 
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { if numbers [i] >= threshold { result = append (result , numbers [i]) } } return result
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if numbers [i] >= threshold { result = append (result , numbers [i]) } } return result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if numbers [i] >= threshold { result = append (result , numbers [i]) }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if numbers [i] >= threshold { result = append (result , numbers [i]) }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = append (result , numbers [i]) }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = append (result , numbers [i])
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = append (result , numbers [i])
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(717..723) }, mutable: true, value: HirExpr { kind: SliceLiteral(0 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(740..741) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Ge) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Append(_) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] [DEBUG parse_hir_function] input: func DuplicateFinder (items [] string) [] string { seen := make (map [string] int) for i := 0 ; i < len (items) ; i ++ { seen [items [i]] = seen [items [i]] + 1 } duplicates := [] string { } for i := 
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: DuplicateFinder
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] string (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: items, span: bytes(947..952) }, HirType { kind: SliceRef(HirType { kind: StringTy }) })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: [] string { seen := make (map  (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { seen := make (map [string] int) for i := 0 ; i < len (items) ; i ++ { seen [items [i]] = seen [items [i]] + 1 } duplicates := [] string { } for i := 0 ; i < len (items) ; i ++ { if seen [items [i]] 
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: seen := make (map [string] int) for i := 0 ; i < len (items) ; i ++ { seen [items [i]] = seen [items
[INFO] [stdout] [DEBUG parse_hir_statement] input: seen := make (map [string] int) for i := 0 ; i < len (items) ; i ++ { seen [items [i]] = seen [items
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: for i := 0 ; i < len (items) ; i ++ { seen [items [i]] = seen [items [i]] + 1 } duplicates := [] str
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (items) ; i ++ { seen [items [i]] = seen [items [i]] + 1 } duplicates := [] str
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (items) ; i ++ { seen [items [i]] = seen [items [i]] + 1 } duplicates := [] string 
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { seen [items [i]] = seen [items [i]] + 1 } duplicates := [] string { } for i := 0 ; i < len (i
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { seen [items [i]] = seen [items [i]] + 1 } duplicates := [] string { } for i := 0 ; i < len (items) ; i ++ { if seen [items [i]] > 1 { duplicates = append (duplicates , items [i]) seen [items [i]] = 
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: seen [items [i]] = seen [items [i]] + 1
[INFO] [stdout] [DEBUG parse_hir_statement] input: seen [items [i]] = seen [items [i]] + 1
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: duplicates := [] string { } for i := 0 ; i < len (items) ; i ++ { if seen [items [i]] > 1 { duplicat
[INFO] [stdout] [DEBUG parse_hir_statement] input: duplicates := [] string { } for i := 0 ; i < len (items) ; i ++ { if seen [items [i]] > 1 { duplicat
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: for i := 0 ; i < len (items) ; i ++ { if seen [items [i]] > 1 { duplicates = append (duplicates , it
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (items) ; i ++ { if seen [items [i]] > 1 { duplicates = append (duplicates , it
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (items) ; i ++ { if seen [items [i]] > 1 { duplicates = append (duplicates , items 
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { if seen [items [i]] > 1 { duplicates = append (duplicates , items [i]) seen [items [i]] = 0 }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if seen [items [i]] > 1 { duplicates = append (duplicates , items [i]) seen [items [i]] = 0 } } return duplicates
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if seen [items [i]] > 1 { duplicates = append (duplicates , items [i]) seen [items [i]] = 0 }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if seen [items [i]] > 1 { duplicates = append (duplicates , items [i]) seen [items [i]] = 0 }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { duplicates = append (duplicates , items [i]) seen [items [i]] = 0 }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: duplicates = append (duplicates , items [i]) seen [items [i]] = 0
[INFO] [stdout] [DEBUG parse_hir_statement] input: duplicates = append (duplicates , items [i]) seen [items [i]] = 0
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: seen [items [i]] = 0
[INFO] [stdout] [DEBUG parse_hir_statement] input: seen [items [i]] = 0
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #5: return duplicates
[INFO] [stdout] [DEBUG parse_hir_statement] input: return duplicates
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < :: gourd :: GoString >]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: seen, span: bytes(975..979) }, mutable: true, value: HirExpr { kind: Make(Map(HirType { kind: StringTy }, HirType { kind: I32 })) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(1009..1010) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Assign { target: HirExpr { kind: Index(_) }, value: HirExpr { kind: Binary(Add) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: duplicates, span: bytes(1081..1091) }, mutable: true, value: HirExpr { kind: SliceLiteral(0 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: StringTy }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(1111..1112) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(duplicates) }, value: HirExpr { kind: Append(_) } }, Assign { target: HirExpr { kind: Index(_) }, value: HirExpr { kind: Literal(Int(0)) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(duplicates) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < :: gourd :: GoString >]
[INFO] [stdout] [DEBUG parse_hir_function] input: func DataFormatter (data [] string , prefix string) string { if len (data) == 0 { return prefix + ": empty" } result := prefix + ": " for i := 0 ; i < len (data) ; i ++ { result = result + data [i] if
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: DataFormatter
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] string , prefix string (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: data, span: bytes(1340..1344) }, HirType { kind: SliceRef(HirType { kind: StringTy }) }), (Ident { sym: prefix, span: bytes(1355..1361) }, HirType { kind: StringTy })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { if len (data) == 0 {  (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if len (data) == 0 { return prefix + ": empty" } result := prefix + ": " for i := 0 ; i < len (data) ; i ++ { result = result + data [i] if i < len (data) - 1 { result = result + ", " } } return res
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if len (data) == 0 { return prefix + ": empty" } result := prefix + ": " for i := 0 ; i < len (data)
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (data) == 0 { return prefix + ": empty" } result := prefix + ": " for i := 0 ; i < len (data)
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { return prefix + ": empty" } result := prefix + ": " for i := 0 ; i < len (data) ; i ++ { result = result + data [i] if i < len (data) - 1 { result = result + ", " } } return result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: return prefix + ": empty"
[INFO] [stdout] [DEBUG parse_hir_statement] input: return prefix + ": empty"
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: result := prefix + ": " for i := 0 ; i < len (data) ; i ++ { result = result + data [i] if i < len (
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := prefix + ": " for i := 0 ; i < len (data) ; i ++ { result = result + data [i] if i < len (
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for i := 0 ; i < len (data) ; i ++ { result = result + data [i] if i < len (data) - 1 { result = res
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (data) ; i ++ { result = result + data [i] if i < len (data) - 1 { result = res
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (data) ; i ++ { result = result + data [i] if i < len (data) - 1 { result = result 
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { result = result + data [i] if i < len (data) - 1 { result = result + ", " } } return result
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = result + data [i] if i < len (data) - 1 { result = result + ", " } } return result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = result + data [i] if i < len (data) - 1 { result = result + ", " }
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = result + data [i] if i < len (data) - 1 { result = result + ", " }
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: if i < len (data) - 1 { result = result + ", " }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if i < len (data) - 1 { result = result + ", " }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = result + ", " }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = result + ", "
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = result + ", "
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Eq) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Binary(Add) }))] }, else_body: None }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(1432..1438) }, mutable: true, value: HirExpr { kind: Binary(Add) }, type_hint: Some(HirType { kind: Unknown("result") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(1461..1462) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Binary(Add) } }, If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func WordFrequencyTopN (text string , n int) map [string] int { count := make (map [string] int) words := strings . Fields (text) for _ , w := range words { count [w] = count [w] + 1 } top := make (ma
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: WordFrequencyTopN
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string , n int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: text, span: bytes(1668..1672) }, HirType { kind: StringTy }), (Ident { sym: n, span: bytes(1681..1682) }, HirType { kind: I32 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int { count := ma (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { count := make (map [string] int) words := strings . Fields (text) for _ , w := range words { count [w] = count [w] + 1 } top := make (map [string] int) i := 0 for k , v := range count { if i >= n { 
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: count := make (map [string] int) words := strings . Fields (text) for _ , w := range words { count [
[INFO] [stdout] [DEBUG parse_hir_statement] input: count := make (map [string] int) words := strings . Fields (text) for _ , w := range words { count [
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: words := strings . Fields (text) for _ , w := range words { count [w] = count [w] + 1 } top := make 
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (text) for _ , w := range words { count [w] = count [w] + 1 } top := make 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for _ , w := range words { count [w] = count [w] + 1 } top := make (map [string] int) i := 0 for k ,
[INFO] [stdout] [DEBUG parse_hir_statement] input: for _ , w := range words { count [w] = count [w] + 1 } top := make (map [string] int) i := 0 for k ,
[INFO] [stdout] [DEBUG parse_hir_statement] input: count [w] = count [w] + 1
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: top := make (map [string] int) i := 0 for k , v := range count { if i >= n { break } top [k] = v i =
[INFO] [stdout] [DEBUG parse_hir_statement] input: top := make (map [string] int) i := 0 for k , v := range count { if i >= n { break } top [k] = v i =
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #5: i := 0 for k , v := range count { if i >= n { break } top [k] = v i = i + 1 } return top
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 for k , v := range count { if i >= n { break } top [k] = v i = i + 1 } return top
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #6: for k , v := range count { if i >= n { break } top [k] = v i = i + 1 } return top
[INFO] [stdout] [DEBUG parse_hir_statement] input: for k , v := range count { if i >= n { break } top [k] = v i = i + 1 } return top
[INFO] [stdout] [DEBUG parse_hir_statement] input: if i >= n { break } top [k] = v i = i + 1
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { break } top [k] = v i = i + 1
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: break
[INFO] [stdout] [DEBUG parse_hir_statement] input: break
[INFO] [stdout] [DEBUG parse_hir_statement] input: top [k] = v i = i + 1
[INFO] [stdout] [DEBUG parse_hir_statement] input: i = i + 1
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #7: return top
[INFO] [stdout] [DEBUG parse_hir_statement] input: return top
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString , i32 >]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: count, span: bytes(1706..1711) }, mutable: true, value: HirExpr { kind: Make(Map(HirType { kind: StringTy }, HirType { kind: I32 })) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(1737..1742) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: _, span: bytes(1772..1773) }), value_name: Ident { sym: w, span: bytes(1775..1776) }, iterable: HirExpr { kind: Identifier(words) }, body: HirBlock { stmts: [Assign { target: HirExpr { kind: Index(_) }, value: HirExpr { kind: Binary(Add) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: top, span: bytes(1824..1827) }, mutable: true, value: HirExpr { kind: Make(Map(HirType { kind: StringTy }, HirType { kind: I32 })) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: i, span: bytes(1853..1854) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: k, span: bytes(1865..1866) }), value_name: Ident { sym: v, span: bytes(1868..1869) }, iterable: HirExpr { kind: Identifier(count) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Ge) }, then_body: HirBlock { stmts: [Break(None)] }, else_body: None }, Assign { target: HirExpr { kind: Index(_) }, value: HirExpr { kind: Identifier(v) } }, Assign { target: HirExpr { kind: Identifier(i) }, value: HirExpr { kind: Binary(Add) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(top) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString , i32 >]
[INFO] [stdout] [DEBUG parse_hir_function] input: func StringCompressor (input string) string { if len (input) == 0 { return "" } result := "" for i := 0 ; i < len (input) ; i ++ { count := 1 for j := i + 1 ; j < len (input) && input [j] == input [i]
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: StringCompressor
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: input, span: bytes(2038..2043) }, HirType { kind: StringTy })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { if len (input) == 0 { (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if len (input) == 0 { return "" } result := "" for i := 0 ; i < len (input) ; i ++ { count := 1 for j := i + 1 ; j < len (input) && input [j] == input [i] ; j ++ { count = count + 1 } if count > 1 {
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if len (input) == 0 { return "" } result := "" for i := 0 ; i < len (input) ; i ++ { count := 1 for 
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (input) == 0 { return "" } result := "" for i := 0 ; i < len (input) ; i ++ { count := 1 for 
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { return "" } result := "" for i := 0 ; i < len (input) ; i ++ { count := 1 for j := i + 1 ; j < len (input) && input [j] == input [i] ; j ++ { count = count + 1 } if count > 1 { result = result + str
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: return ""
[INFO] [stdout] [DEBUG parse_hir_statement] input: return ""
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: result := "" for i := 0 ; i < len (input) ; i ++ { count := 1 for j := i + 1 ; j < len (input) && in
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := "" for i := 0 ; i < len (input) ; i ++ { count := 1 for j := i + 1 ; j < len (input) && in
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for i := 0 ; i < len (input) ; i ++ { count := 1 for j := i + 1 ; j < len (input) && input [j] == in
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (input) ; i ++ { count := 1 for j := i + 1 ; j < len (input) && input [j] == in
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (input) ; i ++ { count := 1 for j := i + 1 ; j < len (input) && input [j] == input 
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { count := 1 for j := i + 1 ; j < len (input) && input [j] == input [i] ; j ++ { count = count 
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { count := 1 for j := i + 1 ; j < len (input) && input [j] == input [i] ; j ++ { count = count + 1 } if count > 1 { result = result + string (input [i]) + string (rune (count +'0')) } else { result = 
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: count := 1 for j := i + 1 ; j < len (input) && input [j] == input [i] ; j ++ { count = count + 1 } i
[INFO] [stdout] [DEBUG parse_hir_statement] input: count := 1 for j := i + 1 ; j < len (input) && input [j] == input [i] ; j ++ { count = count + 1 } i
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: for j := i + 1 ; j < len (input) && input [j] == input [i] ; j ++ { count = count + 1 } if count > 1
[INFO] [stdout] [DEBUG parse_hir_statement] input: for j := i + 1 ; j < len (input) && input [j] == input [i] ; j ++ { count = count + 1 } if count > 1
[INFO] [stdout] [DEBUG parse_hir_statement] input: j := i + 1 ; j < len (input) && input [j] == input [i] ; j ++ { count = count + 1 } if count > 1 { r
[INFO] [stdout] [DEBUG parse_hir_statement] input: j ++ { count = count + 1 } if count > 1 { result = result + string (input [i]) + string (rune (count
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { count = count + 1 } if count > 1 { result = result + string (input [i]) + string (rune (count +'0')) } else { result = result + string (input [i]) } i = i + count - 1
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: count = count + 1
[INFO] [stdout] [DEBUG parse_hir_statement] input: count = count + 1
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: if count > 1 { result = result + string (input [i]) + string (rune (count +'0')) } else { result = r
[INFO] [stdout] [DEBUG parse_hir_statement] input: if count > 1 { result = result + string (input [i]) + string (rune (count +'0')) } else { result = r
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = result + string (input [i]) + string (rune (count +'0')) } else { result = result + string (input [i]) } i = i + count - 1
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = result + string (input [i]) + string (rune (count +'0'))
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = result + string (input [i]) + string (rune (count +'0'))
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = result + string (input [i]) } i = i + count - 1
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = result + string (input [i])
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = result + string (input [i])
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: i = i + count - 1
[INFO] [stdout] [DEBUG parse_hir_statement] input: i = i + count - 1
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Eq) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(StringTy("")) }))] }, else_body: None }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(2099..2105) }, mutable: true, value: HirExpr { kind: Literal(StringTy("")) }, type_hint: Some(HirType { kind: StringTy }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(2117..2118) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Local { name: Ident { sym: count, span: bytes(2149..2154) }, mutable: true, value: HirExpr { kind: Literal(Int(1)) }, type_hint: Some(HirType { kind: I32 }) }, ForLoop { init: Some(Local { name: Ident { sym: j, span: bytes(2166..2167) }, mutable: true, value: HirExpr { kind: Binary(Add) }, type_hint: Some(HirType { kind: Unknown("j") }) }), condition: HirExpr { kind: Binary(And) }, post: Some(Expr(HirExpr { kind: PostfixInc(j) })), body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(count) }, value: HirExpr { kind: Binary(Add) } }] } }, If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: Some(HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Binary(Add) } }] }) }, Assign { target: HirExpr { kind: Identifier(i) }, value: HirExpr { kind: Binary(Sub) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: main.rs at /tmp/.tmphxqg6T/src/main.rs (dump: /tmp/gourd-run/src/main.rs)
[INFO] [stdout]     Updating crates.io index
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] error: failed to get `crossbeam` as a dependency of package `gourd-run v0.0.0 (/tmp/.tmphxqg6T)`
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   failed to load source for dependency `crossbeam`
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   unable to update registry `crates-io`
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   download of config.json failed
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] DEBUG: kept temp dir at /tmp/.tmphxqg6T
[INFO] [stdout] 
[INFO] [stdout] /opt/rustwide/workdir/examples/data_filtering.go: Exit code exit status: 1
[INFO] [stdout] --- stdout ---
[INFO] [stdout] 
[INFO] [stdout] --- stderr ---
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/expressions.rs:754:32
[INFO] [stdout]     |
[INFO] [stdout] 754 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `idx` is never read
[INFO] [stdout]    --> gourd-codegen/src/transpiler/hir/parsing_hir/statement_parsing.rs:670:32
[INFO] [stdout]     |
[INFO] [stdout] 670 |         if chars[idx] == '}' { idx += 1; break; }
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `collected` is never read
[INFO] [stdout]    --> gourd-codegen/src/lib.rs:550:25
[INFO] [stdout]     |
[INFO] [stdout] 550 |                         collected = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] warning: `gourd-codegen` (lib) generated 3 warnings
[INFO] [stdout] warning: `gourd-codegen` (lib) generated 3 warnings (3 duplicates)
[INFO] [stdout]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stdout]      Running `/opt/rustwide/target/debug/gourd run /opt/rustwide/workdir/examples/data_filtering.go`
[INFO] [stdout] [DEBUG parse_hir_function] input: func HasLongWords (text string , threshold int) bool { words := strings . Fields (text) for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshold { return true } } return false }
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: HasLongWords
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string , threshold int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: text, span: bytes(139..143) }, HirType { kind: StringTy }), (Ident { sym: threshold, span: bytes(152..161) }, HirType { kind: I32 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: bool { words := strings . Fiel (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { words := strings . Fields (text) for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshold { return true } } return false }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: words := strings . Fields (text) for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshol
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (text) for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshol
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshold { return true } } return false
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshold { return true } } return false
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (words) ; i ++ { if len (words [i]) > threshold { return true } } return false
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { if len (words [i]) > threshold { return true } } return false
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if len (words [i]) > threshold { return true } } return false
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if len (words [i]) > threshold { return true }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (words [i]) > threshold { return true }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { return true }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: return true
[INFO] [stdout] [DEBUG parse_hir_statement] input: return true
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return false
[INFO] [stdout] [DEBUG parse_hir_statement] input: return false
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[bool]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(175..180) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(210..211) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Literal(Bool(true)) }))] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Literal(Bool(false)) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[bool]
[INFO] [stdout] [DEBUG parse_hir_function] input: func NormalizeScores (data [] int) [] int { if len (data) == 0 { return [] int { } } hi := data [0] lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] in
[INFO] [stderr] error: test failed, to rerun pass `-p gourd-check --test test_examples`
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: NormalizeScores
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: data, span: bytes(391..395) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int { if len (data) == 0 {  (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if len (data) == 0 { return [] int { } } hi := data [0] lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] int { } for i := 0 ; i < len (data) ; i ++ {
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if len (data) == 0 { return [] int { } } hi := data [0] lo := data [0] for _ , v := range data { if 
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (data) == 0 { return [] int { } } hi := data [0] lo := data [0] for _ , v := range data { if 
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { return [] int { } } hi := data [0] lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] int { } for i := 0 ; i < len (data) ; i ++ { if hi == lo { result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: return [] int { }
[INFO] [stdout] [DEBUG parse_hir_statement] input: return [] int { }
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: hi := data [0] lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } 
[INFO] [stdout] [DEBUG parse_hir_statement] input: hi := data [0] lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] in
[INFO] [stdout] [DEBUG parse_hir_statement] input: lo := data [0] for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] in
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] int { } for i := 
[INFO] [stdout] [DEBUG parse_hir_statement] input: for _ , v := range data { if v > hi { hi = v } if v < lo { lo = v } } result := [] int { } for i := 
[INFO] [stdout] [DEBUG parse_hir_statement] input: if v > hi { hi = v } if v < lo { lo = v }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { hi = v } if v < lo { lo = v }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: hi = v
[INFO] [stdout] [DEBUG parse_hir_statement] input: hi = v
[INFO] [stdout] [DEBUG parse_hir_statement] input: if v < lo { lo = v }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { lo = v }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: lo = v
[INFO] [stdout] [DEBUG parse_hir_statement] input: lo = v
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #5: result := [] int { } for i := 0 ; i < len (data) ; i ++ { if hi == lo { result = append (result , 0)
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := [] int { } for i := 0 ; i < len (data) ; i ++ { if hi == lo { result = append (result , 0)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #6: for i := 0 ; i < len (data) ; i ++ { if hi == lo { result = append (result , 0) } else { r := data [
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (data) ; i ++ { if hi == lo { result = append (result , 0) } else { r := data [
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (data) ; i ++ { if hi == lo { result = append (result , 0) } else { r := data [i] -
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { if hi == lo { result = append (result , 0) } else { r := data [i] - lo result = append (resul
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if hi == lo { result = append (result , 0) } else { r := data [i] - lo result = append (result , r / (hi - lo)) } } return result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if hi == lo { result = append (result , 0) } else { r := data [i] - lo result = append (result , r /
[INFO] [stdout] [DEBUG parse_hir_statement] input: if hi == lo { result = append (result , 0) } else { r := data [i] - lo result = append (result , r /
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = append (result , 0) } else { r := data [i] - lo result = append (result , r / (hi - lo)) }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = append (result , 0)
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = append (result , 0)
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { r := data [i] - lo result = append (result , r / (hi - lo)) }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: r := data [i] - lo result = append (result , r / (hi - lo))
[INFO] [stdout] [DEBUG parse_hir_statement] input: r := data [i] - lo result = append (result , r / (hi - lo))
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: result = append (result , r / (hi - lo))
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = append (result , r / (hi - lo))
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #7: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Eq) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: SliceLiteral(0 elems) }))] }, else_body: None }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: hi, span: bytes(453..455) }, mutable: true, value: HirExpr { kind: Index(_) }, type_hint: Some(HirType { kind: Unknown("hi") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: lo, span: bytes(468..470) }, mutable: true, value: HirExpr { kind: Index(_) }, type_hint: Some(HirType { kind: Unknown("lo") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: _, span: bytes(487..488) }), value_name: Ident { sym: v, span: bytes(490..491) }, iterable: HirExpr { kind: Identifier(data) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(hi) }, value: HirExpr { kind: Identifier(v) } }] }, else_body: None }, If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(lo) }, value: HirExpr { kind: Identifier(v) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(568..574) }, mutable: true, value: HirExpr { kind: SliceLiteral(0 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(591..592) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Eq) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Append(_) } }] }, else_body: Some(HirBlock { stmts: [Local { name: Ident { sym: r, span: bytes(680..681) }, mutable: true, value: HirExpr { kind: Binary(Sub) }, type_hint: Some(HirType { kind: Unknown("r") }) }, Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Append(_) } }] }) }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] [DEBUG parse_hir_function] input: func FindPeak (data [] int) int { peakIdx := 0 peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } return peakIdx }
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: FindPeak
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: data, span: bytes(829..833) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: int { peakIdx := 0 peakVal :=  (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { peakIdx := 0 peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } return peakIdx }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: peakIdx := 0 peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVa
[INFO] [stdout] [DEBUG parse_hir_statement] input: peakIdx := 0 peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVa
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] 
[INFO] [stdout] [DEBUG parse_hir_statement] input: peakVal := data [0] for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } retu
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } retu
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 1 ; i < len (data) ; i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } return p
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } return peakIdx
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if data [i] > peakVal { peakVal = data [i] peakIdx = i } } return peakIdx
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if data [i] > peakVal { peakVal = data [i] peakIdx = i }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if data [i] > peakVal { peakVal = data [i] peakIdx = i }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { peakVal = data [i] peakIdx = i }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: peakVal = data [i] peakIdx = i
[INFO] [stdout] [DEBUG parse_hir_statement] input: peakVal = data [i] peakIdx = i
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: peakIdx = i
[INFO] [stdout] [DEBUG parse_hir_statement] input: peakIdx = i
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return peakIdx
[INFO] [stdout] [DEBUG parse_hir_statement] input: return peakIdx
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: peakIdx, span: bytes(848..855) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: peakVal, span: bytes(862..869) }, mutable: true, value: HirExpr { kind: Index(_) }, type_hint: Some(HirType { kind: Unknown("peakVal") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(886..887) }, mutable: true, value: HirExpr { kind: Literal(Int(1)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(peakVal) }, value: HirExpr { kind: Index(_) } }, Assign { target: HirExpr { kind: Identifier(peakIdx) }, value: HirExpr { kind: Identifier(i) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(peakIdx) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stdout] [DEBUG parse_hir_function] input: func WordFilter (text string , minLength int) string { words := strings . Fields (text) result := [] string { } for _ , word := range words { if len (word) >= minLength { result = append (result , wor
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: WordFilter
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string , minLength int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: text, span: bytes(1070..1074) }, HirType { kind: StringTy }), (Ident { sym: minLength, span: bytes(1083..1092) }, HirType { kind: I32 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { words := strings . Fi (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { words := strings . Fields (text) result := [] string { } for _ , word := range words { if len (word) >= minLength { result = append (result , word) } } return strings . Join (result , " ") }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: words := strings . Fields (text) result := [] string { } for _ , word := range words { if len (word)
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (text) result := [] string { } for _ , word := range words { if len (word)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: result := [] string { } for _ , word := range words { if len (word) >= minLength { result = append (
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := [] string { } for _ , word := range words { if len (word) >= minLength { result = append (
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for _ , word := range words { if len (word) >= minLength { result = append (result , word) } } retur
[INFO] [stdout] [DEBUG parse_hir_statement] input: for _ , word := range words { if len (word) >= minLength { result = append (result , word) } } retur
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (word) >= minLength { result = append (result , word) }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = append (result , word) }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = append (result , word)
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = append (result , word)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return strings . Join (result , " ")
[INFO] [stdout] [DEBUG parse_hir_statement] input: return strings . Join (result , " ")
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(1108..1113) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(1139..1145) }, mutable: true, value: HirExpr { kind: SliceLiteral(0 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: StringTy }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: _, span: bytes(1165..1166) }), value_name: Ident { sym: word, span: bytes(1168..1172) }, iterable: HirExpr { kind: Identifier(words) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Ge) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Append(_) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Join.() }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func RangeClamp (data [] int , lo int , hi int) [] int { result := [] int { } for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (r
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: RangeClamp
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int , lo int , hi int (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG parse_hir_type] input: int , hi int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: data, span: bytes(1369..1373) }, HirType { kind: SliceRef(HirType { kind: I32 }) }), (Ident { sym: lo, span: bytes(1381..1383) }, HirType { kind: I32 }), (Ident { sym: hi, span: bytes(1389..1391) }, HirType { kind: I32 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int { result := [] int { }  (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result := [] int { } for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped) } return result }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result := [] int { } for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clam
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := [] int { } for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clam
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamp
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamp
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (data) ; i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) 
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , 
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped) } return result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped
[INFO] [stdout] [DEBUG parse_hir_statement] input: v := data [i] clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_statement] input: clamped := min (hi , v) clamped = max (lo , clamped) result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: clamped = max (lo , clamped) result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_statement] input: clamped = max (lo , clamped) result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = append (result , clamped)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(1406..1412) }, mutable: true, value: HirExpr { kind: SliceLiteral(0 elems) }, type_hint: Some(HirType { kind: Slice(HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(1429..1430) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Local { name: Ident { sym: v, span: bytes(1460..1461) }, mutable: true, value: HirExpr { kind: Index(_) }, type_hint: Some(HirType { kind: Unknown("v") }) }, Local { name: Ident { sym: clamped, span: bytes(1475..1482) }, mutable: true, value: HirExpr { kind: MinMax(min) }, type_hint: Some(HirType { kind: Unknown("clamped") }) }, Assign { target: HirExpr { kind: Identifier(clamped) }, value: HirExpr { kind: MinMax(max) } }, Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Append(_) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoSlice < i32 >]
[INFO] [stdout] [DEBUG parse_hir_function] input: func WordFreqTopN (text string , n int) map [string] int { counts := make (map [string] int) words := strings . Fields (text) for _ , word := range words { counts [word] = counts [word] + 1 } result :
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: WordFreqTopN
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string , n int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: text, span: bytes(1660..1664) }, HirType { kind: StringTy }), (Ident { sym: n, span: bytes(1673..1674) }, HirType { kind: I32 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int { counts := m (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { counts := make (map [string] int) words := strings . Fields (text) for _ , word := range words { counts [word] = counts [word] + 1 } result := make (map [string] int) i := 0 for k , v := range count
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: counts := make (map [string] int) words := strings . Fields (text) for _ , word := range words { cou
[INFO] [stdout] [DEBUG parse_hir_statement] input: counts := make (map [string] int) words := strings . Fields (text) for _ , word := range words { cou
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: words := strings . Fields (text) for _ , word := range words { counts [word] = counts [word] + 1 } r
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (text) for _ , word := range words { counts [word] = counts [word] + 1 } r
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for _ , word := range words { counts [word] = counts [word] + 1 } result := make (map [string] int) 
[INFO] [stdout] [DEBUG parse_hir_statement] input: for _ , word := range words { counts [word] = counts [word] + 1 } result := make (map [string] int) 
[INFO] [stdout] [DEBUG parse_hir_statement] input: counts [word] = counts [word] + 1
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: result := make (map [string] int) i := 0 for k , v := range counts { if i >= n { break } result [k] 
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := make (map [string] int) i := 0 for k , v := range counts { if i >= n { break } result [k] 
[INFO] [stdout] [DEBUG parse_hir_type] input: map [string] int (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #5: i := 0 for k , v := range counts { if i >= n { break } result [k] = v i = i + 1 } return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 for k , v := range counts { if i >= n { break } result [k] = v i = i + 1 } return result
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #6: for k , v := range counts { if i >= n { break } result [k] = v i = i + 1 } return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: for k , v := range counts { if i >= n { break } result [k] = v i = i + 1 } return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: if i >= n { break } result [k] = v i = i + 1
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { break } result [k] = v i = i + 1
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: break
[INFO] [stdout] [DEBUG parse_hir_statement] input: break
[INFO] [stdout] [DEBUG parse_hir_statement] input: result [k] = v i = i + 1
[INFO] [stdout] [DEBUG parse_hir_statement] input: i = i + 1
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #7: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString , i32 >]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: counts, span: bytes(1698..1704) }, mutable: true, value: HirExpr { kind: Make(Map(HirType { kind: StringTy }, HirType { kind: I32 })) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(1730..1735) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: _, span: bytes(1765..1766) }), value_name: Ident { sym: word, span: bytes(1768..1772) }, iterable: HirExpr { kind: Identifier(words) }, body: HirBlock { stmts: [Assign { target: HirExpr { kind: Index(_) }, value: HirExpr { kind: Binary(Add) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(1828..1834) }, mutable: true, value: HirExpr { kind: Make(Map(HirType { kind: StringTy }, HirType { kind: I32 })) }, type_hint: Some(HirType { kind: Map(HirType { kind: StringTy }, HirType { kind: I32 }) }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: i, span: bytes(1860..1861) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForRange { index_name: Some(Ident { sym: k, span: bytes(1872..1873) }), value_name: Ident { sym: v, span: bytes(1875..1876) }, iterable: HirExpr { kind: Identifier(counts) }, body: HirBlock { stmts: [If { cond: HirExpr { kind: Binary(Ge) }, then_body: HirBlock { stmts: [Break(None)] }, else_body: None }, Assign { target: HirExpr { kind: Index(_) }, value: HirExpr { kind: Identifier(v) } }, Assign { target: HirExpr { kind: Identifier(i) }, value: HirExpr { kind: Binary(Add) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoMap < :: gourd :: GoString , i32 >]
[INFO] [stdout] [DEBUG parse_hir_function] input: func SumAll (data [] int) int { sum := 0 for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum }
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: SumAll
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: data, span: bytes(2020..2024) }, HirType { kind: SliceRef(HirType { kind: I32 }) })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: int { sum := 0 for i := 0 ; i  (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { sum := 0 for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: sum := 0 for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_statement] input: sum := 0 for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (data) ; i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { sum = sum + data [i] } return sum
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: sum = sum + data [i]
[INFO] [stdout] [DEBUG parse_hir_statement] input: sum = sum + data [i]
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return sum
[INFO] [stdout] [DEBUG parse_hir_statement] input: return sum
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[i32]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: sum, span: bytes(2039..2042) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(2053..2054) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(sum) }, value: HirExpr { kind: Binary(Add) } }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(sum) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[i32]
[INFO] [stdout] [DEBUG parse_hir_function] input: func TrimAndFormat (text string , sep string) string { words := strings . Fields (text) result := "" for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 1 { result =
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: TrimAndFormat
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string , sep string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: text, span: bytes(2190..2194) }, HirType { kind: StringTy }), (Ident { sym: sep, span: bytes(2203..2206) }, HirType { kind: StringTy })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { words := strings . Fi (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { words := strings . Fields (text) result := "" for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 1 { result = result + sep } } return result }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: words := strings . Fields (text) result := "" for i := 0 ; i < len (words) ; i ++ { result = result 
[INFO] [stdout] [DEBUG parse_hir_statement] input: words := strings . Fields (text) result := "" for i := 0 ; i < len (words) ; i ++ { result = result 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: result := "" for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 
[INFO] [stdout] [DEBUG parse_hir_statement] input: result := "" for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 1 { result = 
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 1 { result = 
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (words) ; i ++ { result = result + words [i] if i < len (words) - 1 { result = resu
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { result = result + words [i] if i < len (words) - 1 { result = result + sep } } return result
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = result + words [i] if i < len (words) - 1 { result = result + sep } } return result
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = result + words [i] if i < len (words) - 1 { result = result + sep }
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = result + words [i] if i < len (words) - 1 { result = result + sep }
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: if i < len (words) - 1 { result = result + sep }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if i < len (words) - 1 { result = result + sep }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { result = result + sep }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: result = result + sep
[INFO] [stdout] [DEBUG parse_hir_statement] input: result = result + sep
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return result
[INFO] [stdout] [DEBUG parse_hir_statement] input: return result
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: words, span: bytes(2225..2230) }, mutable: true, value: HirExpr { kind: MethodCall(Fields.() }, type_hint: Some(HirType { kind: Unknown("words") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: result, span: bytes(2256..2262) }, mutable: true, value: HirExpr { kind: Literal(StringTy("")) }, type_hint: Some(HirType { kind: StringTy }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(2274..2275) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Binary(Add) } }, If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(result) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(result) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func Greet (name string) string { return "Hello, " + name + "!" }
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: Greet
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: name, span: bytes(2454..2458) }, HirType { kind: StringTy })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { return "Hello, " + na (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { return "Hello, " + name + "!" }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: return "Hello, " + name + "!"
[INFO] [stdout] [DEBUG parse_hir_statement] input: return "Hello, " + name + "!"
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Binary(Add) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func BuildOutput (labels [] string , values [] int , prefix string) string { if len (labels) != len (values) { return prefix + ": mismatched lengths" } report := prefix + ":" for i := 0 ; i < len (lab
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: BuildOutput
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: [] string , values [] int , pr (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG parse_hir_type] input: [] int , prefix string (peek_ident=false, peek_bracket=true)
[INFO] [stdout] [DEBUG parse_hir_type] input: string (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: labels, span: bytes(2573..2579) }, HirType { kind: SliceRef(HirType { kind: StringTy }) }), (Ident { sym: values, span: bytes(2590..2596) }, HirType { kind: SliceRef(HirType { kind: I32 }) }), (Ident { sym: prefix, span: bytes(2604..2610) }, HirType { kind: StringTy })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { if len (labels) != le (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { if len (labels) != len (values) { return prefix + ": mismatched lengths" } report := prefix + ":" for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + string (rune (values [i]
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: if len (labels) != len (values) { return prefix + ": mismatched lengths" } report := prefix + ":" fo
[INFO] [stdout] [DEBUG parse_hir_statement] input: if len (labels) != len (values) { return prefix + ": mismatched lengths" } report := prefix + ":" fo
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { return prefix + ": mismatched lengths" } report := prefix + ":" for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + string (rune (values [i])) if i < len (labels) - 1 { repor
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: return prefix + ": mismatched lengths"
[INFO] [stdout] [DEBUG parse_hir_statement] input: return prefix + ": mismatched lengths"
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: report := prefix + ":" for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + s
[INFO] [stdout] [DEBUG parse_hir_statement] input: report := prefix + ":" for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + s
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + string (rune (values [i]
[INFO] [stdout] [DEBUG parse_hir_statement] input: for i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + string (rune (values [i]
[INFO] [stdout] [DEBUG parse_hir_statement] input: i := 0 ; i < len (labels) ; i ++ { report = report + labels [i] + "=" + string (rune (values [i])) i
[INFO] [stdout] [DEBUG parse_hir_statement] input: i ++ { report = report + labels [i] + "=" + string (rune (values [i])) if i < len (labels) - 1 { rep
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { report = report + labels [i] + "=" + string (rune (values [i])) if i < len (labels) - 1 { report = report + ", " } } return report
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: report = report + labels [i] + "=" + string (rune (values [i])) if i < len (labels) - 1 { report = r
[INFO] [stdout] [DEBUG parse_hir_statement] input: report = report + labels [i] + "=" + string (rune (values [i])) if i < len (labels) - 1 { report = r
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: if i < len (labels) - 1 { report = report + ", " }
[INFO] [stdout] [DEBUG parse_hir_statement] input: if i < len (labels) - 1 { report = report + ", " }
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { report = report + ", " }
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: report = report + ", "
[INFO] [stdout] [DEBUG parse_hir_statement] input: report = report + ", "
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: return report
[INFO] [stdout] [DEBUG parse_hir_statement] input: return report
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Ne) }, then_body: HirBlock { stmts: [Return(Some(HirExpr { kind: Binary(Add) }))] }, else_body: None }
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: report, span: bytes(2706..2712) }, mutable: true, value: HirExpr { kind: Binary(Add) }, type_hint: Some(HirType { kind: Unknown("report") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: ForLoop { init: Some(Local { name: Ident { sym: i, span: bytes(2734..2735) }, mutable: true, value: HirExpr { kind: Literal(Int(0)) }, type_hint: Some(HirType { kind: I32 }) }), condition: HirExpr { kind: Binary(Lt) }, post: Some(Expr(HirExpr { kind: PostfixInc(i) })), body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(report) }, value: HirExpr { kind: Binary(Add) } }, If { cond: HirExpr { kind: Binary(Lt) }, then_body: HirBlock { stmts: [Assign { target: HirExpr { kind: Identifier(report) }, value: HirExpr { kind: Binary(Add) } }] }, else_body: None }] } }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: Identifier(report) }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func DurationReport (nanos int64) string { secs := nanos / 1000000000 if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sprintf ("%d.%03ds" , secs , ms)
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: DurationReport
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG parse_hir_type] input: int64 (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] params parsed: [(Ident { sym: nanos, span: bytes(2988..2993) }, HirType { kind: I64 })]
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG parse_hir_type] input: string { secs := nanos / 10000 (peek_ident=true, peek_bracket=false)
[INFO] [stdout] [DEBUG] returns parsed: 1
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { secs := nanos / 1000000000 if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sprintf ("%d.%03ds" , secs , ms) } return fmt . Sprintf ("%dns" , nanos) 
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: secs := nanos / 1000000000 if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remainin
[INFO] [stdout] [DEBUG parse_hir_statement] input: secs := nanos / 1000000000 if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remainin
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sp
[INFO] [stdout] [DEBUG parse_hir_statement] input: if secs > 0 { remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sp
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sprintf ("%d.%03ds" , secs , ms) } return fmt . Sprintf ("%dns" , nanos)
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sprintf ("%d.%03
[INFO] [stdout] [DEBUG parse_hir_statement] input: remaining := int (nanos - secs * 1000000000) ms := remaining / 1000000 return fmt . Sprintf ("%d.%03
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: ms := remaining / 1000000 return fmt . Sprintf ("%d.%03ds" , secs , ms)
[INFO] [stdout] [DEBUG parse_hir_statement] input: ms := remaining / 1000000 return fmt . Sprintf ("%d.%03ds" , secs , ms)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return fmt . Sprintf ("%d.%03ds" , secs , ms)
[INFO] [stdout] [DEBUG parse_hir_statement] input: return fmt . Sprintf ("%d.%03ds" , secs , ms)
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: return fmt . Sprintf ("%dns" , nanos)
[INFO] [stdout] [DEBUG parse_hir_statement] input: return fmt . Sprintf ("%dns" , nanos)
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: secs, span: bytes(3011..3015) }, mutable: true, value: HirExpr { kind: Binary(Div) }, type_hint: Some(HirType { kind: Unknown("secs") }) }
[INFO] [stdout] DEBUG: No fix applied, using default: If { cond: HirExpr { kind: Binary(Gt) }, then_body: HirBlock { stmts: [Local { name: Ident { sym: remaining, span: bytes(3055..3064) }, mutable: true, value: HirExpr { kind: Cast(_) }, type_hint: Some(HirType { kind: Unknown("remaining") }) }, Local { name: Ident { sym: ms, span: bytes(3099..3101) }, mutable: true, value: HirExpr { kind: Binary(Div) }, type_hint: Some(HirType { kind: Unknown("ms") }) }, Return(Some(HirExpr { kind: MethodCall(Sprintf.() }))] }, else_body: None }
[INFO] [stdout] DEBUG: No fix applied, using default: Return(Some(HirExpr { kind: MethodCall(Sprintf.() }))
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[:: gourd :: GoString]
[INFO] [stdout] [DEBUG parse_hir_function] input: func main () { text := "the quick brown fox jumps over the lazy dog the fox" fmt . Println ("Has long words:" , HasLongWords (text , 4)) fmt . Println ("Top 3:" , WordFreqTopN (text , 3)) fmt . Printl
[INFO] [stdout] [DEBUG] receiver parsed: None
[INFO] [stdout] [DEBUG] parsing name via Ident::parse_any
[INFO] [stdout] [DEBUG] function name: main
[INFO] [stdout] [DEBUG] about to parse params
[INFO] [stdout] [DEBUG] params parsed: []
[INFO] [stdout] [DEBUG] about to parse returns
[INFO] [stdout] [DEBUG] returns parsed: 0
[INFO] [stdout] [DEBUG] about to parse body
[INFO] [stdout] [DEBUG parse_hir_block] input starts with: { text := "the quick brown fox jumps over the lazy dog the fox" fmt . Println ("Has long words:" , HasLongWords (text , 4)) fmt . Println ("Top 3:" , WordFreqTopN (text , 3)) fmt . Println ("Trimmed:"
[INFO] [stdout] [DEBUG parse_hir_block] entered Brace branch, content is_empty: false
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #1: text := "the quick brown fox jumps over the lazy dog the fox" fmt . Println ("Has long words:" , Has
[INFO] [stdout] [DEBUG parse_hir_statement] input: text := "the quick brown fox jumps over the lazy dog the fox" fmt . Println ("Has long words:" , Has
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #2: fmt . Println ("Has long words:" , HasLongWords (text , 4)) fmt . Println ("Top 3:" , WordFreqTopN (
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Has long words:" , HasLongWords (text , 4)) fmt . Println ("Top 3:" , WordFreqTopN (
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #3: fmt . Println ("Top 3:" , WordFreqTopN (text , 3)) fmt . Println ("Trimmed:" , TrimAndFormat (text ,
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Top 3:" , WordFreqTopN (text , 3)) fmt . Println ("Trimmed:" , TrimAndFormat (text ,
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #4: fmt . Println ("Trimmed:" , TrimAndFormat (text , " | ")) fmt . Println ("Normalized:" , NormalizeSc
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Trimmed:" , TrimAndFormat (text , " | ")) fmt . Println ("Normalized:" , NormalizeSc
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #5: fmt . Println ("Normalized:" , NormalizeScores ([] int { 0 , 50 , 100 })) fmt . Println ("Peak:" , F
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Normalized:" , NormalizeScores ([] int { 0 , 50 , 100 })) fmt . Println ("Peak:" , F
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #6: fmt . Println ("Peak:" , FindPeak ([] int { 1 , 3 , 2 , 5 , 4 })) fmt . Println ("Clamped:" , RangeC
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Peak:" , FindPeak ([] int { 1 , 3 , 2 , 5 , 4 })) fmt . Println ("Clamped:" , RangeC
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #7: fmt . Println ("Clamped:" , RangeClamp ([] int { - 5 , 0 , 5 , 10 , 15 } , 0 , 10)) fmt . Println ("
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Clamped:" , RangeClamp ([] int { - 5 , 0 , 5 , 10 , 15 } , 0 , 10)) fmt . Println ("
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #8: fmt . Println ("Filtered:" , WordFilter ("hi hello hi there" , 3)) fmt . Println ("Summed:" , SumAll
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Filtered:" , WordFilter ("hi hello hi there" , 3)) fmt . Println ("Summed:" , SumAll
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #9: fmt . Println ("Summed:" , SumAll ([] int { 1 , 2 , 3 , 4 , 5 })) fmt . Println ("Report:" , BuildOu
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Summed:" , SumAll ([] int { 1 , 2 , 3 , 4 , 5 })) fmt . Println ("Report:" , BuildOu
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #10: fmt . Println ("Report:" , BuildOutput ([] string { "a" , "b" , "c" } , [] int { 1 , 2 , 3 } , "tag"
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Report:" , BuildOutput ([] string { "a" , "b" , "c" } , [] int { 1 , 2 , 3 } , "tag"
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #11: fmt . Println ("Duration:" , DurationReport (1500000000)) fmt . Println ("Greet:" , Greet ("world"))
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Duration:" , DurationReport (1500000000)) fmt . Println ("Greet:" , Greet ("world"))
[INFO] [stdout] [DEBUG parse_hir_block] parsing statement #12: fmt . Println ("Greet:" , Greet ("world"))
[INFO] [stdout] [DEBUG parse_hir_statement] input: fmt . Println ("Greet:" , Greet ("world"))
[INFO] [stdout] DEBUG: has_error_return=false, has_option_box=false, returns_str=[]
[INFO] [stdout] DEBUG: No fix applied, using default: Local { name: Ident { sym: text, span: bytes(3224..3228) }, mutable: true, value: HirExpr { kind: Literal(StringTy("the quick brown fox jumps over the lazy dog the fox")) }, type_hint: Some(HirType { kind: StringTy }) }
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: No fix applied, using default: Expr(HirExpr { kind: MethodCall(Println.() })
[INFO] [stdout] DEBUG: has_error_return=false, returns_str=[]
[INFO] [stdout] DEBUG: main.rs at /tmp/.tmpU7uOQe/src/main.rs (dump: /tmp/gourd-run/src/main.rs)
[INFO] [stdout]     Updating crates.io index
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (3 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (2 tries remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] warning: spurious network error (1 try remaining): [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] error: failed to get `crossbeam` as a dependency of package `gourd-run v0.0.0 (/tmp/.tmpU7uOQe)`
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   failed to load source for dependency `crossbeam`
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   unable to update registry `crates-io`
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   download of config.json failed
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]   [6] Could not resolve hostname (Could not resolve host: index.crates.io)
[INFO] [stdout] DEBUG: kept temp dir at /tmp/.tmpU7uOQe
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x57ed6a5c0cd8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x57ed6a5c0cd8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x57ed6a5c0cd8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x57ed6a5c0cd8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x57ed6a5d4fba - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x57ed6a5d4fba - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x57ed6a5c5952 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x57ed6a5c5952 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x57ed6a59f6c6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x57ed6a59f6c6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x57ed6a5b9049 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x57ed6a554a0c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x57ed6a554a0c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x57ed6a5b9202 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x57ed6a5b9202 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x57ed6a59f782 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x57ed6a5948e9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x57ed6a5a049d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x57ed6a5d56ec - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x57ed6a542459 - test_examples[d1aa03acffdb8865]::test_examples_run
[INFO] [stdout]                                at /opt/rustwide/workdir/gourd-check/tests/test_examples.rs:139:9
[INFO] [stdout]   20:     0x57ed6a540dc7 - test_examples[d1aa03acffdb8865]::test_examples_run::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/gourd-check/tests/test_examples.rs:95:23
[INFO] [stdout]   21:     0x57ed6a53f816 - <test_examples[d1aa03acffdb8865]::test_examples_run::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x57ed6a547aeb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x57ed6a547aeb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x57ed6a555365 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x57ed6a555365 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x57ed6a555365 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x57ed6a555365 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x57ed6a555365 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x57ed6a555365 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x57ed6a555365 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x57ed6a54ec74 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x57ed6a54ec74 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x57ed6a5583e2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x57ed6a5583e2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x57ed6a5583e2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x57ed6a5583e2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x57ed6a5583e2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x57ed6a5583e2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x57ed6a5583e2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x57ed6a5c063f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   41:     0x57ed6a5c063f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7af2dc64baa4 - <unknown>
[INFO] [stdout]   43:     0x7af2dc6d8a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_data_filtering_regression
[INFO] [stdout]     test_examples_run
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 48.19s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5", kill_on_drop: false }`
[INFO] [stdout] 0a7bfd08e151af479da0e6fa4d71466c08048e427207ee5e0fbb79f7481892c5
