[INFO] cloning repository https://github.com/iantbutler01/gasp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iantbutler01/gasp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiantbutler01%2Fgasp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiantbutler01%2Fgasp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 06cc11ad96b116a9741effbe67272d68b9a0d71c
[INFO] checking iantbutler01/gasp against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiantbutler01%2Fgasp" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/iantbutler01/gasp
[INFO] finished tweaking git repo https://github.com/iantbutler01/gasp
[INFO] tweaked toml for git repo https://github.com/iantbutler01/gasp written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/iantbutler01/gasp on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/iantbutler01/gasp 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" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 446b7f1e5a44c4acbdef89ed942c419f1bbe7f2f765657d9c0968a7586b4c876
[INFO] running `Command { std: "docker" "start" "446b7f1e5a44c4acbdef89ed942c419f1bbe7f2f765657d9c0968a7586b4c876", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "446b7f1e5a44c4acbdef89ed942c419f1bbe7f2f765657d9c0968a7586b4c876", 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" "446b7f1e5a44c4acbdef89ed942c419f1bbe7f2f765657d9c0968a7586b4c876" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "446b7f1e5a44c4acbdef89ed942c419f1bbe7f2f765657d9c0968a7586b4c876", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "446b7f1e5a44c4acbdef89ed942c419f1bbe7f2f765657d9c0968a7586b4c876" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling getrandom v0.3.1
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking brownstone v3.0.0
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking indent_write v2.2.0
[INFO] [stderr]     Checking unindent v0.1.11
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking joinery v2.1.0
[INFO] [stderr]    Compiling indoc v1.0.9
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]     Checking RustyXML v0.3.0
[INFO] [stderr]     Checking unarray v0.1.4
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]    Compiling pyo3-build-config v0.19.2
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling pyo3-ffi v0.19.2
[INFO] [stderr]    Compiling pyo3 v0.19.2
[INFO] [stderr]     Checking nom-supreme v0.8.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking tempfile v3.16.0
[INFO] [stderr]     Checking rusty-fork v0.3.0
[INFO] [stderr]     Checking proptest v1.6.0
[INFO] [stderr]    Compiling pyo3-macros-backend v0.19.2
[INFO] [stderr]    Compiling pyo3-macros v0.19.2
[INFO] [stderr]     Checking gasp v1.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: value assigned to `should_push` is never read
[INFO] [stdout]    --> src/parser.rs:538:35
[INFO] [stdout]     |
[INFO] [stdout] 538 |             let mut should_push = false;
[INFO] [stdout]     |                                   ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 599 |             should_push = true;
[INFO] [stdout]     |             ------------------ `should_push` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/python_types.rs:904:5
[INFO] [stdout]     |
[INFO] [stdout] 904 |     name: &str,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `should_push` is never read
[INFO] [stdout]    --> src/parser.rs:538:35
[INFO] [stdout]     |
[INFO] [stdout] 538 |             let mut should_push = false;
[INFO] [stdout]     |                                   ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 599 |             should_push = true;
[INFO] [stdout]     |             ------------------ `should_push` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item_attrs`
[INFO] [stdout]     --> src/python_types.rs:1670:69
[INFO] [stdout]      |
[INFO] [stdout] 1670 | ...                   if let XmlValue::Element(item_name, item_attrs, item_children) =
[INFO] [stdout]      |                                                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_item_attrs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `py`
[INFO] [stdout]   --> src/lib.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn parse<'p>(&mut self, py: Python<'p>, chunk: &str) -> PyResult<Option<PyObject>> {
[INFO] [stdout]    |                             ^^ help: if this is intentional, prefix it with an underscore: `_py`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `py`
[INFO] [stdout]   --> src/lib.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn gasp(py: Python, m: &PyModule) -> PyResult<()> {
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_py`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_type` is never read
[INFO] [stdout]   --> src/parser.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Dict {
[INFO] [stdout]    |     ---- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 19 |         key_type: Option<PyTypeInfo>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StackFrame` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_primitive_union` and `matches` are never used
[INFO] [stdout]    --> src/python_types.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl PyTypeInfo {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn is_primitive_union(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn matches(&self, value: &XmlValue) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `xml_to_python` is never used
[INFO] [stdout]    --> src/python_types.rs:455:8
[INFO] [stdout]     |
[INFO] [stdout] 455 | pub fn xml_to_python(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_instance_from_xml` is never used
[INFO] [stdout]    --> src/python_types.rs:901:8
[INFO] [stdout]     |
[INFO] [stdout] 901 | pub fn create_instance_from_xml(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_instance_from_xml_events` is never used
[INFO] [stdout]     --> src/python_types.rs:1075:8
[INFO] [stdout]      |
[INFO] [stdout] 1075 | pub fn create_instance_from_xml_events(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tag_finder.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl TagFinder {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 48 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_type_string` is never used
[INFO] [stdout]  --> src/type_string_parser.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn parse_type_string(type_str: &str) -> PyResult<PyTypeInfo> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_type_args` is never used
[INFO] [stdout]   --> src/type_string_parser.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn parse_type_args(args_str: &str) -> PyResult<Vec<PyTypeInfo>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/xml_parser.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl StreamParser {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 29 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `events_to_xml_value` is never used
[INFO] [stdout]   --> src/xml_parser.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn events_to_xml_value(events: Vec<Result<Event, XmlError>>) -> Result<XmlValue, XmlError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `XmlValue` is never used
[INFO] [stdout]  --> src/xml_types.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum XmlValue {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&PyString`
[INFO] [stdout]    --> src/parser.rs:906:37
[INFO] [stdout]     |
[INFO] [stdout] 906 |                 .unwrap_or_else(|_| PyString::new(py, "Error getting repr").into()))
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 906 -                 .unwrap_or_else(|_| PyString::new(py, "Error getting repr").into()))
[INFO] [stdout] 906 +                 .unwrap_or_else(|_| PyString::new(py, "Error getting repr")))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 906 -                 .unwrap_or_else(|_| PyString::new(py, "Error getting repr").into()))
[INFO] [stdout] 906 +                 .unwrap_or_else(|_| <&PyString as Into<_>>::into(PyString::new(py, "Error getting repr"))))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/lib.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 21 | impl PyStreamParser {
[INFO] [stdout]    |      --------------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyStreamParser` is not local
[INFO] [stdout]    |      `PyStreamParser` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/parser.rs:897:1
[INFO] [stdout]     |
[INFO] [stdout] 897 | #[pymethods]
[INFO] [stdout]     | -^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `PyClassImplCollector` is not local
[INFO] [stdout]     | `PyClassNewTextSignature` is not local
[INFO] [stdout]     | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 898 | impl PyParser {
[INFO] [stdout]     |      --------
[INFO] [stdout]     |      |
[INFO] [stdout]     |      `PyParser` is not local
[INFO] [stdout]     |      `PyParser` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/python_types.rs:904:5
[INFO] [stdout]     |
[INFO] [stdout] 904 |     name: &str,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gasp` (lib) due to 1 previous error; 18 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `item_attrs`
[INFO] [stdout]     --> src/python_types.rs:1670:69
[INFO] [stdout]      |
[INFO] [stdout] 1670 | ...                   if let XmlValue::Element(item_name, item_attrs, item_children) =
[INFO] [stdout]      |                                                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_item_attrs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `py`
[INFO] [stdout]   --> src/lib.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn parse<'p>(&mut self, py: Python<'p>, chunk: &str) -> PyResult<Option<PyObject>> {
[INFO] [stdout]    |                             ^^ help: if this is intentional, prefix it with an underscore: `_py`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `py`
[INFO] [stdout]   --> src/lib.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn gasp(py: Python, m: &PyModule) -> PyResult<()> {
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_py`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_type` is never read
[INFO] [stdout]   --> src/parser.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Dict {
[INFO] [stdout]    |     ---- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 19 |         key_type: Option<PyTypeInfo>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StackFrame` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_primitive_union` and `matches` are never used
[INFO] [stdout]    --> src/python_types.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl PyTypeInfo {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn is_primitive_union(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn matches(&self, value: &XmlValue) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `xml_to_python` is never used
[INFO] [stdout]    --> src/python_types.rs:455:8
[INFO] [stdout]     |
[INFO] [stdout] 455 | pub fn xml_to_python(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_instance_from_xml` is never used
[INFO] [stdout]    --> src/python_types.rs:901:8
[INFO] [stdout]     |
[INFO] [stdout] 901 | pub fn create_instance_from_xml(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_instance_from_xml_events` is never used
[INFO] [stdout]     --> src/python_types.rs:1075:8
[INFO] [stdout]      |
[INFO] [stdout] 1075 | pub fn create_instance_from_xml_events(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/xml_parser.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl StreamParser {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 29 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `events_to_xml_value` is never used
[INFO] [stdout]   --> src/xml_parser.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn events_to_xml_value(events: Vec<Result<Event, XmlError>>) -> Result<XmlValue, XmlError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `XmlValue` is never used
[INFO] [stdout]  --> src/xml_types.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum XmlValue {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&PyString`
[INFO] [stdout]    --> src/parser.rs:906:37
[INFO] [stdout]     |
[INFO] [stdout] 906 |                 .unwrap_or_else(|_| PyString::new(py, "Error getting repr").into()))
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 906 -                 .unwrap_or_else(|_| PyString::new(py, "Error getting repr").into()))
[INFO] [stdout] 906 +                 .unwrap_or_else(|_| PyString::new(py, "Error getting repr")))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 906 -                 .unwrap_or_else(|_| PyString::new(py, "Error getting repr").into()))
[INFO] [stdout] 906 +                 .unwrap_or_else(|_| <&PyString as Into<_>>::into(PyString::new(py, "Error getting repr"))))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/lib.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 21 | impl PyStreamParser {
[INFO] [stdout]    |      --------------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyStreamParser` is not local
[INFO] [stdout]    |      `PyStreamParser` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/parser.rs:897:1
[INFO] [stdout]     |
[INFO] [stdout] 897 | #[pymethods]
[INFO] [stdout]     | -^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `PyClassImplCollector` is not local
[INFO] [stdout]     | `PyClassNewTextSignature` is not local
[INFO] [stdout]     | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 898 | impl PyParser {
[INFO] [stdout]     |      --------
[INFO] [stdout]     |      |
[INFO] [stdout]     |      `PyParser` is not local
[INFO] [stdout]     |      `PyParser` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gasp` (lib test) due to 1 previous error; 15 warnings emitted
[INFO] [stderr] warning: unused dependency `nom-supreme`
[INFO] [stderr]  --> Cargo.toml:5:1
[INFO] [stderr]   |
[INFO] [stderr] 5 | nom-supreme = "0.8.0"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `nom-supreme`
[INFO] [stderr] warning: unused dependency `serde_json`
[INFO] [stderr]   --> Cargo.toml:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | serde_json = "1"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: unused dependency `serde_json`
[INFO] [stderr]  --> Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | serde_json = "1"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: unused dependency `strsim`
[INFO] [stderr]  --> Cargo.toml:9:1
[INFO] [stderr]   |
[INFO] [stderr] 9 | strsim = "0.11.1"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `strsim`
[INFO] [stderr] warning: `gasp` (manifest) generated 4 warnings
[INFO] running `Command { std: "docker" "inspect" "446b7f1e5a44c4acbdef89ed942c419f1bbe7f2f765657d9c0968a7586b4c876", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "446b7f1e5a44c4acbdef89ed942c419f1bbe7f2f765657d9c0968a7586b4c876", kill_on_drop: false }`
[INFO] [stdout] 446b7f1e5a44c4acbdef89ed942c419f1bbe7f2f765657d9c0968a7586b4c876
