[INFO] cloning repository https://github.com/fabriceHategekimana/typr
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fabriceHategekimana/typr" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfabriceHategekimana%2Ftypr", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfabriceHategekimana%2Ftypr'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 395d233fb723e499753e016d4841c74417467bfa
[INFO] testing fabriceHategekimana/typr against nightly-2025-01-18 for randomize-layout-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfabriceHategekimana%2Ftypr" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/fabriceHategekimana/typr on toolchain nightly-2025-01-18
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2025-01-18" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/fabriceHategekimana/typr
[INFO] finished tweaking git repo https://github.com/fabriceHategekimana/typr
[INFO] tweaked toml for git repo https://github.com/fabriceHategekimana/typr written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/fabriceHategekimana/typr 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" "+nightly-2025-01-18" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v1.0.91
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 27ddb1390fbbc02af781d595106a7cf8270ff7ad863598ece70ce612a4a945d5
[INFO] running `Command { std: "docker" "start" "-a" "27ddb1390fbbc02af781d595106a7cf8270ff7ad863598ece70ce612a4a945d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "27ddb1390fbbc02af781d595106a7cf8270ff7ad863598ece70ce612a4a945d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27ddb1390fbbc02af781d595106a7cf8270ff7ad863598ece70ce612a4a945d5", kill_on_drop: false }`
[INFO] [stdout] 27ddb1390fbbc02af781d595106a7cf8270ff7ad863598ece70ce612a4a945d5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ae3c1bffcdea6de9a396e9c2abaa70eff2ad81919b41c820c3185a12855ca904
[INFO] running `Command { std: "docker" "start" "-a" "ae3c1bffcdea6de9a396e9c2abaa70eff2ad81919b41c820c3185a12855ca904", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.91
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling serde v1.0.215
[INFO] [stderr]    Compiling serde_json v1.0.133
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling ryu v1.0.18
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling itoa v1.0.13
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.89
[INFO] [stderr]    Compiling serde_derive v1.0.215
[INFO] [stderr]    Compiling typr v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::context::Context`
[INFO] [stdout]   --> src/parser.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::context::Context;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/type_comparison.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::context::Context`
[INFO] [stdout]  --> src/unification.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::context::Context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dot`
[INFO] [stdout]    --> src/context_manager.rs:248:16
[INFO] [stdout]     |
[INFO] [stdout] 248 |         Ok((s, dot)) => Ok((s, Data::Dot)),
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_dot`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/type_comparison.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         (type1, Type::Union(types)) => {
[INFO] [stdout]    |         --------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 66 |         (Type::Union(types1), Type::Union(_types2)) => {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/type_comparison.rs:182:36
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn get_common_type_denominator(context: &Context, type1: &Type, type2: &Type) -> Option<Type> {
[INFO] [stdout]     |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nominal_context`
[INFO] [stdout]   --> src/adt.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let nominal_context: NominalContext = context.into();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nominal_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_`
[INFO] [stdout]   --> src/nominal_context.rs:47:37
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn corresponding_nominal(&self, type_: &Type) -> Option<Nominal> {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/nominal_context.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 |       let res = match type_ {
[INFO] [stdout]    |           ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_nominal`
[INFO] [stdout]   --> src/nominal_context.rs:82:23
[INFO] [stdout]    |
[INFO] [stdout] 82 |    fn push(&mut self, type_nominal: (Type, Nominal)) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_nominal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> src/nominal_context.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 |    fn from(val: (Type, usize)) -> Self {
[INFO] [stdout]    |            ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `con`
[INFO] [stdout]    --> src/nominal_context.rs:101:34
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn get_nominal(types: Vec<Type>, con: Context) -> TypeNominal {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_con`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nominals`
[INFO] [stdout]    --> src/nominal_context.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 |        let nominals = get_nominal(types.clone(), con);
[INFO] [stdout]     |            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nominals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_name` is never used
[INFO] [stdout]   --> src/types.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl Type {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 52 |     pub fn get_name(self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_to_type` is never used
[INFO] [stdout]    --> src/types.rs:494:8
[INFO] [stdout]     |
[INFO] [stdout] 494 | pub fn string_to_type(s: &str) -> Type {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_path` and `get_type` are never used
[INFO] [stdout]   --> src/var.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Var {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn set_path(self, new_path: &str) -> Var {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn get_type(&self) -> Type {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_alias` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn get_alias(t: Type) -> Type {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_module` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn find_module(name: &str, seq: &[Lang]) -> Module {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_core_function` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn get_core_function(var: Var, seq: &[Lang]) -> Lang {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `implement` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn implement(func: &Lang, name: String, parent_type: &Type, field: String, child_type: &Type, adt: &Adt) -> Lang {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_related_functions` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_related_functions(typ: Type, adt: &Adt) -> Vec<(Lang, String)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_record_embeddings` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn get_record_embeddings(name: Type, args: Vec<ArgumentType>) -> Vec<(Type, ArgumentType)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_embeddings` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn get_embeddings(line: &Lang, adt: &Adt) -> Vec<(Type, ArgumentType)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `type_embedding` is never used
[INFO] [stdout]    --> src/metaprogramming.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn type_embedding(adt: Adt) -> Adt {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_related_functions2` is never used
[INFO] [stdout]    --> src/metaprogramming.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn get_related_functions2(module_name: &str, name: &str, adt: &Adt) -> Vec<Lang> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_related_module_functions` is never used
[INFO] [stdout]    --> src/metaprogramming.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn get_related_module_functions(name: &str, typ: Type, adt: &Adt) -> Vec<Lang> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_imports` is never used
[INFO] [stdout]    --> src/metaprogramming.rs:175:4
[INFO] [stdout]     |
[INFO] [stdout] 175 | fn remove_imports(lets: &[Lang]) -> Vec<Lang> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `import_types` is never used
[INFO] [stdout]    --> src/metaprogramming.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn import_types(adt: Adt) -> Adt {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `embedded` are never used
[INFO] [stdout]   --> src/argument_type.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl ArgumentType {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn new(name: &str, type_: &Type) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn embedded(name: &str, type_: &Type) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_name` is never used
[INFO] [stdout]   --> src/context_manager.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Data {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 42 |     fn to_name(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_in` is never used
[INFO] [stdout]   --> src/type_comparison.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn all_in(subset: &[ArgumentType], superset: &[ArgumentType]) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_interface_function` is never used
[INFO] [stdout]   --> src/type_comparison.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn check_interface_function(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_interface_functions` is never used
[INFO] [stdout]   --> src/type_comparison.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn check_interface_functions(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_subtype` is never used
[INFO] [stdout]   --> src/type_comparison.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn is_subtype(context: &Context, type1: &Type, type2: &Type) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_matching` is never used
[INFO] [stdout]   --> src/type_comparison.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn is_matching(context: &Context, type1: &Type, type2: &Type) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reduce_param` is never used
[INFO] [stdout]    --> src/type_comparison.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn reduce_param(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reduce_type` is never used
[INFO] [stdout]    --> src/type_comparison.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn reduce_type(context: &Context, type_: &Type) -> Type {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_best_type` is never used
[INFO] [stdout]    --> src/type_comparison.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn get_best_type(context: &Context, type1: &Type, type2: &Type) -> Option<Type> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_same_type` is never used
[INFO] [stdout]    --> src/type_comparison.rs:173:4
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn is_same_type(context: &Context, type1: &Type, type2: &Type) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_common_type_denominator` is never used
[INFO] [stdout]    --> src/type_comparison.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn get_common_type_denominator(context: &Context, type1: &Type, type2: &Type) -> Option<Type> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `type_substitution` is never used
[INFO] [stdout]  --> src/unification.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn type_substitution(type_: &Type, substitutions: &[(String, Type)]) -> Type {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unification_helper` is never used
[INFO] [stdout]    --> src/unification.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn unification_helper(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unify` is never used
[INFO] [stdout]    --> src/unification.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub fn unify(type1: &Type, type2: &Type) -> Option<Vec<(String, Type)>> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_substitutions` is never used
[INFO] [stdout]    --> src/unification.rs:233:4
[INFO] [stdout]     |
[INFO] [stdout] 233 | fn merge_substitutions(existing: &mut Vec<(String, Type)>, new: Vec<(String, Type)>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_coherent` is never used
[INFO] [stdout]    --> src/unification.rs:243:4
[INFO] [stdout]     |
[INFO] [stdout] 243 | fn is_coherent(substitutions: &[(String, Type)]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_intersection` is never used
[INFO] [stdout]    --> src/unification.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub fn record_intersection(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]   --> src/context.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Context {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 22 |     pub fn get(&self, var: &Var) -> Option<Type> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_alias` is never used
[INFO] [stdout]   --> src/adt.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn find_alias(name: &str, v: Vec<Lang>) -> Lang {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_alias_module` and `find_module` are never used
[INFO] [stdout]   --> src/adt.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Adt {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn find_alias_module(&self, path: &str, name: &str) -> (Lang, Module) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn find_module(&self, path: &str) -> Module {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Module` is never constructed
[INFO] [stdout]  --> src/module.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Module(pub String, pub Vec<Lang>);
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_body` and `from_language` are never used
[INFO] [stdout]   --> src/module.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout] 5  | impl Module {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 6  |     pub fn get_body(&self) -> Vec<Lang> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn from_language(l: Lang) -> Option<Module> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/nominal_context.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct NominalContext(Vec<(Type, String, Vec<String>)>);
[INFO] [stdout]   |            -------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `body` is never read
[INFO] [stdout]   --> src/nominal_context.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct TypeNominal {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 26 |     body: Vec<(Type, Nominal)>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.72s
[INFO] running `Command { std: "docker" "inspect" "ae3c1bffcdea6de9a396e9c2abaa70eff2ad81919b41c820c3185a12855ca904", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ae3c1bffcdea6de9a396e9c2abaa70eff2ad81919b41c820c3185a12855ca904", kill_on_drop: false }`
[INFO] [stdout] ae3c1bffcdea6de9a396e9c2abaa70eff2ad81919b41c820c3185a12855ca904
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5c7f9fae9c74f23445b17e30878a352876fe2e2782c900097863bdffeed9d319
[INFO] running `Command { std: "docker" "start" "-a" "5c7f9fae9c74f23445b17e30878a352876fe2e2782c900097863bdffeed9d319", kill_on_drop: false }`
[INFO] [stderr]    Compiling typr v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::context::Context`
[INFO] [stdout]   --> src/parser.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::context::Context;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/type_comparison.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::context::Context`
[INFO] [stdout]  --> src/unification.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::context::Context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dot`
[INFO] [stdout]    --> src/context_manager.rs:248:16
[INFO] [stdout]     |
[INFO] [stdout] 248 |         Ok((s, dot)) => Ok((s, Data::Dot)),
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_dot`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/type_comparison.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         (type1, Type::Union(types)) => {
[INFO] [stdout]    |         --------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 66 |         (Type::Union(types1), Type::Union(_types2)) => {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/type_comparison.rs:182:36
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn get_common_type_denominator(context: &Context, type1: &Type, type2: &Type) -> Option<Type> {
[INFO] [stdout]     |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nominal_context`
[INFO] [stdout]   --> src/adt.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let nominal_context: NominalContext = context.into();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nominal_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_`
[INFO] [stdout]   --> src/nominal_context.rs:47:37
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn corresponding_nominal(&self, type_: &Type) -> Option<Nominal> {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/nominal_context.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 |       let res = match type_ {
[INFO] [stdout]    |           ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_nominal`
[INFO] [stdout]   --> src/nominal_context.rs:82:23
[INFO] [stdout]    |
[INFO] [stdout] 82 |    fn push(&mut self, type_nominal: (Type, Nominal)) {
[INFO] [stdout]    |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_nominal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> src/nominal_context.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 |    fn from(val: (Type, usize)) -> Self {
[INFO] [stdout]    |            ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `con`
[INFO] [stdout]    --> src/nominal_context.rs:101:34
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn get_nominal(types: Vec<Type>, con: Context) -> TypeNominal {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_con`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nominals`
[INFO] [stdout]    --> src/nominal_context.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 |        let nominals = get_nominal(types.clone(), con);
[INFO] [stdout]     |            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nominals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_name` is never used
[INFO] [stdout]   --> src/types.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl Type {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 52 |     pub fn get_name(self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_to_type` is never used
[INFO] [stdout]    --> src/types.rs:494:8
[INFO] [stdout]     |
[INFO] [stdout] 494 | pub fn string_to_type(s: &str) -> Type {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_path` and `get_type` are never used
[INFO] [stdout]   --> src/var.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Var {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn set_path(self, new_path: &str) -> Var {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn get_type(&self) -> Type {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_alias` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn get_alias(t: Type) -> Type {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_module` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn find_module(name: &str, seq: &[Lang]) -> Module {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_core_function` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn get_core_function(var: Var, seq: &[Lang]) -> Lang {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `implement` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn implement(func: &Lang, name: String, parent_type: &Type, field: String, child_type: &Type, adt: &Adt) -> Lang {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_related_functions` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_related_functions(typ: Type, adt: &Adt) -> Vec<(Lang, String)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_record_embeddings` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn get_record_embeddings(name: Type, args: Vec<ArgumentType>) -> Vec<(Type, ArgumentType)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_embeddings` is never used
[INFO] [stdout]   --> src/metaprogramming.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn get_embeddings(line: &Lang, adt: &Adt) -> Vec<(Type, ArgumentType)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `type_embedding` is never used
[INFO] [stdout]    --> src/metaprogramming.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn type_embedding(adt: Adt) -> Adt {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_related_functions2` is never used
[INFO] [stdout]    --> src/metaprogramming.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn get_related_functions2(module_name: &str, name: &str, adt: &Adt) -> Vec<Lang> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_related_module_functions` is never used
[INFO] [stdout]    --> src/metaprogramming.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn get_related_module_functions(name: &str, typ: Type, adt: &Adt) -> Vec<Lang> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_imports` is never used
[INFO] [stdout]    --> src/metaprogramming.rs:175:4
[INFO] [stdout]     |
[INFO] [stdout] 175 | fn remove_imports(lets: &[Lang]) -> Vec<Lang> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `import_types` is never used
[INFO] [stdout]    --> src/metaprogramming.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn import_types(adt: Adt) -> Adt {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `embedded` are never used
[INFO] [stdout]   --> src/argument_type.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl ArgumentType {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn new(name: &str, type_: &Type) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn embedded(name: &str, type_: &Type) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_name` is never used
[INFO] [stdout]   --> src/context_manager.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Data {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 42 |     fn to_name(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_in` is never used
[INFO] [stdout]   --> src/type_comparison.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn all_in(subset: &[ArgumentType], superset: &[ArgumentType]) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_interface_function` is never used
[INFO] [stdout]   --> src/type_comparison.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn check_interface_function(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_interface_functions` is never used
[INFO] [stdout]   --> src/type_comparison.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn check_interface_functions(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_subtype` is never used
[INFO] [stdout]   --> src/type_comparison.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn is_subtype(context: &Context, type1: &Type, type2: &Type) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_matching` is never used
[INFO] [stdout]   --> src/type_comparison.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn is_matching(context: &Context, type1: &Type, type2: &Type) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reduce_param` is never used
[INFO] [stdout]    --> src/type_comparison.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn reduce_param(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reduce_type` is never used
[INFO] [stdout]    --> src/type_comparison.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn reduce_type(context: &Context, type_: &Type) -> Type {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_best_type` is never used
[INFO] [stdout]    --> src/type_comparison.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn get_best_type(context: &Context, type1: &Type, type2: &Type) -> Option<Type> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_same_type` is never used
[INFO] [stdout]    --> src/type_comparison.rs:173:4
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn is_same_type(context: &Context, type1: &Type, type2: &Type) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_common_type_denominator` is never used
[INFO] [stdout]    --> src/type_comparison.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn get_common_type_denominator(context: &Context, type1: &Type, type2: &Type) -> Option<Type> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `type_substitution` is never used
[INFO] [stdout]  --> src/unification.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn type_substitution(type_: &Type, substitutions: &[(String, Type)]) -> Type {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unification_helper` is never used
[INFO] [stdout]    --> src/unification.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn unification_helper(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unify` is never used
[INFO] [stdout]    --> src/unification.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub fn unify(type1: &Type, type2: &Type) -> Option<Vec<(String, Type)>> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_substitutions` is never used
[INFO] [stdout]    --> src/unification.rs:233:4
[INFO] [stdout]     |
[INFO] [stdout] 233 | fn merge_substitutions(existing: &mut Vec<(String, Type)>, new: Vec<(String, Type)>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_coherent` is never used
[INFO] [stdout]    --> src/unification.rs:243:4
[INFO] [stdout]     |
[INFO] [stdout] 243 | fn is_coherent(substitutions: &[(String, Type)]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_intersection` is never used
[INFO] [stdout]    --> src/unification.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub fn record_intersection(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]   --> src/context.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Context {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 22 |     pub fn get(&self, var: &Var) -> Option<Type> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_alias` is never used
[INFO] [stdout]   --> src/adt.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn find_alias(name: &str, v: Vec<Lang>) -> Lang {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_alias_module` and `find_module` are never used
[INFO] [stdout]   --> src/adt.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Adt {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn find_alias_module(&self, path: &str, name: &str) -> (Lang, Module) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn find_module(&self, path: &str) -> Module {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Module` is never constructed
[INFO] [stdout]  --> src/module.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Module(pub String, pub Vec<Lang>);
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_body` and `from_language` are never used
[INFO] [stdout]   --> src/module.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout] 5  | impl Module {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 6  |     pub fn get_body(&self) -> Vec<Lang> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn from_language(l: Lang) -> Option<Module> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/nominal_context.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct NominalContext(Vec<(Type, String, Vec<String>)>);
[INFO] [stdout]   |            -------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `body` is never read
[INFO] [stdout]   --> src/nominal_context.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct TypeNominal {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 26 |     body: Vec<(Type, Nominal)>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.92s
[INFO] running `Command { std: "docker" "inspect" "5c7f9fae9c74f23445b17e30878a352876fe2e2782c900097863bdffeed9d319", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5c7f9fae9c74f23445b17e30878a352876fe2e2782c900097863bdffeed9d319", kill_on_drop: false }`
[INFO] [stdout] 5c7f9fae9c74f23445b17e30878a352876fe2e2782c900097863bdffeed9d319
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 05789392fd16305f917439f046eff978a8afd01120a29de16d46927e6d51f7e8
[INFO] running `Command { std: "docker" "start" "-a" "05789392fd16305f917439f046eff978a8afd01120a29de16d46927e6d51f7e8", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `crate::context::Context`
[INFO] [stderr]   --> src/parser.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | use crate::context::Context;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/type_comparison.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::context::Context`
[INFO] [stderr]  --> src/unification.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::context::Context;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dot`
[INFO] [stderr]    --> src/context_manager.rs:248:16
[INFO] [stderr]     |
[INFO] [stderr] 248 |         Ok((s, dot)) => Ok((s, Data::Dot)),
[INFO] [stderr]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_dot`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/type_comparison.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 62 |         (type1, Type::Union(types)) => {
[INFO] [stderr]    |         --------------------------- matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 66 |         (Type::Union(types1), Type::Union(_types2)) => {
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> src/type_comparison.rs:182:36
[INFO] [stderr]     |
[INFO] [stderr] 182 | pub fn get_common_type_denominator(context: &Context, type1: &Type, type2: &Type) -> Option<Type> {
[INFO] [stderr]     |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nominal_context`
[INFO] [stderr]   --> src/adt.rs:60:13
[INFO] [stderr]    |
[INFO] [stderr] 60 |         let nominal_context: NominalContext = context.into();
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nominal_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `type_`
[INFO] [stderr]   --> src/nominal_context.rs:47:37
[INFO] [stderr]    |
[INFO] [stderr] 47 |     fn corresponding_nominal(&self, type_: &Type) -> Option<Nominal> {
[INFO] [stderr]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `res`
[INFO] [stderr]   --> src/nominal_context.rs:52:11
[INFO] [stderr]    |
[INFO] [stderr] 52 |       let res = match type_ {
[INFO] [stderr]    |           ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `type_nominal`
[INFO] [stderr]   --> src/nominal_context.rs:82:23
[INFO] [stderr]    |
[INFO] [stderr] 82 |    fn push(&mut self, type_nominal: (Type, Nominal)) {
[INFO] [stderr]    |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_nominal`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]   --> src/nominal_context.rs:96:12
[INFO] [stderr]    |
[INFO] [stderr] 96 |    fn from(val: (Type, usize)) -> Self {
[INFO] [stderr]    |            ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `con`
[INFO] [stderr]    --> src/nominal_context.rs:101:34
[INFO] [stderr]     |
[INFO] [stderr] 101 | fn get_nominal(types: Vec<Type>, con: Context) -> TypeNominal {
[INFO] [stderr]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_con`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nominals`
[INFO] [stderr]    --> src/nominal_context.rs:114:12
[INFO] [stderr]     |
[INFO] [stderr] 114 |        let nominals = get_nominal(types.clone(), con);
[INFO] [stderr]     |            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nominals`
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_name` is never used
[INFO] [stderr]   --> src/types.rs:52:12
[INFO] [stderr]    |
[INFO] [stderr] 51 | impl Type {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] 52 |     pub fn get_name(self) -> String {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `string_to_type` is never used
[INFO] [stderr]    --> src/types.rs:494:8
[INFO] [stderr]     |
[INFO] [stderr] 494 | pub fn string_to_type(s: &str) -> Type {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set_path` and `get_type` are never used
[INFO] [stderr]   --> src/var.rs:79:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl Var {
[INFO] [stderr]    | -------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 79 |     pub fn set_path(self, new_path: &str) -> Var {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub fn get_type(&self) -> Type {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_alias` is never used
[INFO] [stderr]   --> src/metaprogramming.rs:11:4
[INFO] [stderr]    |
[INFO] [stderr] 11 | fn get_alias(t: Type) -> Type {
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_module` is never used
[INFO] [stderr]   --> src/metaprogramming.rs:15:4
[INFO] [stderr]    |
[INFO] [stderr] 15 | fn find_module(name: &str, seq: &[Lang]) -> Module {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_core_function` is never used
[INFO] [stderr]   --> src/metaprogramming.rs:25:4
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn get_core_function(var: Var, seq: &[Lang]) -> Lang {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `implement` is never used
[INFO] [stderr]   --> src/metaprogramming.rs:39:4
[INFO] [stderr]    |
[INFO] [stderr] 39 | fn implement(func: &Lang, name: String, parent_type: &Type, field: String, child_type: &Type, adt: &Adt) -> Lang {
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_related_functions` is never used
[INFO] [stderr]   --> src/metaprogramming.rs:73:4
[INFO] [stderr]    |
[INFO] [stderr] 73 | fn get_related_functions(typ: Type, adt: &Adt) -> Vec<(Lang, String)> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_record_embeddings` is never used
[INFO] [stderr]   --> src/metaprogramming.rs:86:4
[INFO] [stderr]    |
[INFO] [stderr] 86 | fn get_record_embeddings(name: Type, args: Vec<ArgumentType>) -> Vec<(Type, ArgumentType)> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_embeddings` is never used
[INFO] [stderr]   --> src/metaprogramming.rs:90:4
[INFO] [stderr]    |
[INFO] [stderr] 90 | fn get_embeddings(line: &Lang, adt: &Adt) -> Vec<(Type, ArgumentType)> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `type_embedding` is never used
[INFO] [stderr]    --> src/metaprogramming.rs:115:4
[INFO] [stderr]     |
[INFO] [stderr] 115 | fn type_embedding(adt: Adt) -> Adt {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_related_functions2` is never used
[INFO] [stderr]    --> src/metaprogramming.rs:141:4
[INFO] [stderr]     |
[INFO] [stderr] 141 | fn get_related_functions2(module_name: &str, name: &str, adt: &Adt) -> Vec<Lang> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_related_module_functions` is never used
[INFO] [stderr]    --> src/metaprogramming.rs:158:4
[INFO] [stderr]     |
[INFO] [stderr] 158 | fn get_related_module_functions(name: &str, typ: Type, adt: &Adt) -> Vec<Lang> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `remove_imports` is never used
[INFO] [stderr]    --> src/metaprogramming.rs:175:4
[INFO] [stderr]     |
[INFO] [stderr] 175 | fn remove_imports(lets: &[Lang]) -> Vec<Lang> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `import_types` is never used
[INFO] [stderr]    --> src/metaprogramming.rs:184:4
[INFO] [stderr]     |
[INFO] [stderr] 184 | fn import_types(adt: Adt) -> Adt {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new` and `embedded` are never used
[INFO] [stderr]   --> src/argument_type.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 8  | impl ArgumentType {
[INFO] [stderr]    | ----------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 12 |     pub fn new(name: &str, type_: &Type) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub fn embedded(name: &str, type_: &Type) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `to_name` is never used
[INFO] [stderr]   --> src/context_manager.rs:42:8
[INFO] [stderr]    |
[INFO] [stderr] 41 | impl Data {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] 42 |     fn to_name(&self) -> String {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `all_in` is never used
[INFO] [stderr]   --> src/type_comparison.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn all_in(subset: &[ArgumentType], superset: &[ArgumentType]) -> bool {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_interface_function` is never used
[INFO] [stderr]   --> src/type_comparison.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn check_interface_function(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_interface_functions` is never used
[INFO] [stderr]   --> src/type_comparison.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn check_interface_functions(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_subtype` is never used
[INFO] [stderr]   --> src/type_comparison.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub fn is_subtype(context: &Context, type1: &Type, type2: &Type) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_matching` is never used
[INFO] [stderr]   --> src/type_comparison.rs:84:8
[INFO] [stderr]    |
[INFO] [stderr] 84 | pub fn is_matching(context: &Context, type1: &Type, type2: &Type) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `reduce_param` is never used
[INFO] [stderr]    --> src/type_comparison.rs:106:8
[INFO] [stderr]     |
[INFO] [stderr] 106 | pub fn reduce_param(
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `reduce_type` is never used
[INFO] [stderr]    --> src/type_comparison.rs:119:8
[INFO] [stderr]     |
[INFO] [stderr] 119 | pub fn reduce_type(context: &Context, type_: &Type) -> Type {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_best_type` is never used
[INFO] [stderr]    --> src/type_comparison.rs:156:8
[INFO] [stderr]     |
[INFO] [stderr] 156 | pub fn get_best_type(context: &Context, type1: &Type, type2: &Type) -> Option<Type> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_same_type` is never used
[INFO] [stderr]    --> src/type_comparison.rs:173:4
[INFO] [stderr]     |
[INFO] [stderr] 173 | fn is_same_type(context: &Context, type1: &Type, type2: &Type) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_common_type_denominator` is never used
[INFO] [stderr]    --> src/type_comparison.rs:182:8
[INFO] [stderr]     |
[INFO] [stderr] 182 | pub fn get_common_type_denominator(context: &Context, type1: &Type, type2: &Type) -> Option<Type> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `type_substitution` is never used
[INFO] [stderr]  --> src/unification.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub fn type_substitution(type_: &Type, substitutions: &[(String, Type)]) -> Type {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unification_helper` is never used
[INFO] [stderr]    --> src/unification.rs:131:4
[INFO] [stderr]     |
[INFO] [stderr] 131 | fn unification_helper(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unify` is never used
[INFO] [stderr]    --> src/unification.rs:211:8
[INFO] [stderr]     |
[INFO] [stderr] 211 | pub fn unify(type1: &Type, type2: &Type) -> Option<Vec<(String, Type)>> {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `merge_substitutions` is never used
[INFO] [stderr]    --> src/unification.rs:233:4
[INFO] [stderr]     |
[INFO] [stderr] 233 | fn merge_substitutions(existing: &mut Vec<(String, Type)>, new: Vec<(String, Type)>) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_coherent` is never used
[INFO] [stderr]    --> src/unification.rs:243:4
[INFO] [stderr]     |
[INFO] [stderr] 243 | fn is_coherent(substitutions: &[(String, Type)]) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `record_intersection` is never used
[INFO] [stderr]    --> src/unification.rs:256:8
[INFO] [stderr]     |
[INFO] [stderr] 256 | pub fn record_intersection(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get` is never used
[INFO] [stderr]   --> src/context.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl Context {
[INFO] [stderr]    | ------------ method in this implementation
[INFO] [stderr] 22 |     pub fn get(&self, var: &Var) -> Option<Type> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_alias` is never used
[INFO] [stderr]   --> src/adt.rs:26:4
[INFO] [stderr]    |
[INFO] [stderr] 26 | fn find_alias(name: &str, v: Vec<Lang>) -> Lang {
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `find_alias_module` and `find_module` are never used
[INFO] [stderr]   --> src/adt.rs:40:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | impl Adt {
[INFO] [stderr]    | -------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub fn find_alias_module(&self, path: &str, name: &str) -> (Lang, Module) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 46 |     fn find_module(&self, path: &str) -> Module {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Module` is never constructed
[INFO] [stderr]  --> src/module.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct Module(pub String, pub Vec<Lang>);
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `get_body` and `from_language` are never used
[INFO] [stderr]   --> src/module.rs:6:12
[INFO] [stderr]    |
[INFO] [stderr] 5  | impl Module {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr] 6  |     pub fn get_body(&self) -> Vec<Lang> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 10 |     pub fn from_language(l: Lang) -> Option<Module> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/nominal_context.rs:5:27
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct NominalContext(Vec<(Type, String, Vec<String>)>);
[INFO] [stderr]   |            -------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |            |
[INFO] [stderr]   |            field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr] 
[INFO] [stderr] warning: field `body` is never read
[INFO] [stderr]   --> src/nominal_context.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 25 | struct TypeNominal {
[INFO] [stderr]    |        ----------- field in this struct
[INFO] [stderr] 26 |     body: Vec<(Type, Nominal)>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `typr` (bin "typr" test) generated 53 warnings (run `cargo fix --bin "typr" --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stdout] 
[INFO] [stdout] running 119 tests
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/typr-c3dc5691d5c4ce61)
[INFO] [stdout] test elements::tests::test_array ... ok
[INFO] [stdout] test elements::tests::test_chain2 ... FAILED
[INFO] [stdout] test elements::tests::test_chain0 ... FAILED
[INFO] [stdout] test elements::tests::test_char1 ... FAILED
[INFO] [stdout] test elements::tests::test_chain4 ... FAILED
[INFO] [stdout] test elements::tests::test_char2 ... FAILED
[INFO] [stdout] test elements::tests::test_el_op0 ... FAILED
[INFO] [stdout] test elements::tests::test_chain1 ... FAILED
[INFO] [stdout] test elements::tests::test_chain3 ... FAILED
[INFO] [stdout] test elements::tests::test_chain5 ... FAILED
[INFO] [stdout] test elements::tests::test_branch2 ... FAILED
[INFO] [stdout] test elements::tests::test_func_appli2 ... FAILED
[INFO] [stdout] test elements::tests::test_function_application1 ... FAILED
[INFO] [stdout] test elements::tests::test_func_appli1 ... FAILED
[INFO] [stdout] test elements::tests::test_chain_string0 ... FAILED
[INFO] [stdout] test elements::tests::test_function_application4 ... FAILED
[INFO] [stdout] test elements::tests::test_function_application5 ... FAILED
[INFO] [stdout] test elements::tests::test_branch1 ... FAILED
[INFO] [stdout] test elements::tests::test_function_application3 ... FAILED
[INFO] [stdout] test elements::tests::test_el_op1 ... FAILED
[INFO] [stdout] test elements::tests::test_function_no_parameters ... FAILED
[INFO] [stdout] test elements::tests::test_function_with_parameters ... FAILED
[INFO] [stderr] error: test failed, to rerun pass `--bin typr`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/typr-c3dc5691d5c4ce61` (exit status: 1)
[INFO] [stderr] note: test exited abnormally; to see the full output pass --nocapture to the harness.
[INFO] running `Command { std: "docker" "inspect" "05789392fd16305f917439f046eff978a8afd01120a29de16d46927e6d51f7e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "05789392fd16305f917439f046eff978a8afd01120a29de16d46927e6d51f7e8", kill_on_drop: false }`
[INFO] [stdout] 05789392fd16305f917439f046eff978a8afd01120a29de16d46927e6d51f7e8
