[INFO] cloning repository https://github.com/flake-lang/flake2 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/flake-lang/flake2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflake-lang%2Fflake2", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflake-lang%2Fflake2'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2728b593aede27dd08770f7ee8553b3dd19dc098 [INFO] linting flake-lang/flake2 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflake-lang%2Fflake2" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/flake-lang/flake2 [INFO] finished tweaking git repo https://github.com/flake-lang/flake2 [INFO] tweaked toml for git repo https://github.com/flake-lang/flake2 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/flake-lang/flake2 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/flake-lang/flake2 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" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded lexgen_util v0.15.0 [INFO] [stderr] Downloaded llvm-sys v140.1.3 [INFO] [stderr] Downloaded inkwell_internals v0.9.0 [INFO] [stderr] Downloaded plex v0.3.0 [INFO] [stderr] Downloaded inkwell v0.4.0 [INFO] [stderr] Downloaded lexgen v0.15.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] cbe10ebfc72a6ccd64fe95a0c1d62d0ec7314a46b1bacc4fb55025f35b6afdd6 [INFO] running `Command { std: "docker" "start" "-a" "cbe10ebfc72a6ccd64fe95a0c1d62d0ec7314a46b1bacc4fb55025f35b6afdd6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cbe10ebfc72a6ccd64fe95a0c1d62d0ec7314a46b1bacc4fb55025f35b6afdd6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cbe10ebfc72a6ccd64fe95a0c1d62d0ec7314a46b1bacc4fb55025f35b6afdd6", kill_on_drop: false }` [INFO] [stdout] cbe10ebfc72a6ccd64fe95a0c1d62d0ec7314a46b1bacc4fb55025f35b6afdd6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0a3e1e9233f940e9e7c70db4c70f832b4158069a41417f4f944349f1ce1c15e0 [INFO] running `Command { std: "docker" "start" "-a" "0a3e1e9233f940e9e7c70db4c70f832b4158069a41417f4f944349f1ce1c15e0", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.78 [INFO] [stderr] Checking unicode-width v0.1.11 [INFO] [stderr] Compiling lalr v0.0.2 [INFO] [stderr] Compiling memchr v2.7.1 [INFO] [stderr] Compiling semver v1.0.22 [INFO] [stderr] Compiling regex-syntax v0.8.2 [INFO] [stderr] Compiling thiserror v1.0.57 [INFO] [stderr] Compiling cc v1.0.88 [INFO] [stderr] Checking lexgen_util v0.15.0 [INFO] [stderr] Compiling inkwell v0.4.0 [INFO] [stderr] Checking either v1.10.0 [INFO] [stderr] Checking unicode-ident v1.0.12 [INFO] [stderr] Checking flakec-codegen v0.0.0 (/opt/rustwide/workdir/compiler/flakec-codegen) [INFO] [stderr] Compiling aho-corasick v1.1.2 [INFO] [stderr] Checking quote v1.0.35 [INFO] [stderr] Checking syn v2.0.52 [INFO] [stderr] Compiling regex-automata v0.4.5 [INFO] [stderr] Checking flakec-parser-derive v0.1.0 (/opt/rustwide/workdir/compiler/flakec-parser-derive) [INFO] [stdout] warning: unused import: `ToTokens as _` [INFO] [stdout] --> compiler/flakec-parser-derive/src/lib.rs:2:20 [INFO] [stdout] | [INFO] [stdout] 2 | use quote::{quote, ToTokens as _}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> compiler/flakec-parser-derive/src/lib.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | use syn; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToTokens as _` [INFO] [stdout] --> compiler/flakec-parser-derive/src/lib.rs:2:20 [INFO] [stdout] | [INFO] [stdout] 2 | use quote::{quote, ToTokens as _}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> compiler/flakec-parser-derive/src/lib.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | use syn; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling regex v1.10.3 [INFO] [stderr] Compiling llvm-sys v140.1.3 [INFO] [stderr] Compiling lexgen v0.15.0 [INFO] [stderr] Compiling plex v0.3.0 [INFO] [stderr] Compiling thiserror-impl v1.0.57 [INFO] [stderr] Compiling inkwell_internals v0.9.0 [INFO] [stderr] Checking flakec-lexer v0.0.0 (/opt/rustwide/workdir/compiler/flakec-lexer) [INFO] [stdout] warning: unused imports: `str::Chars` and `string::ParseError` [INFO] [stdout] --> compiler/flakec-lexer/src/stream.rs:3:32 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{convert::Infallible, str::Chars, string::ParseError}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Lexer` [INFO] [stdout] --> compiler/flakec-lexer/src/stream.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | Lexer, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `vec_into_raw_parts` has been stable since 1.93.0 and no longer requires an attribute to enable [INFO] [stdout] --> compiler/flakec-lexer/src/lib.rs:5:30 [INFO] [stdout] | [INFO] [stdout] 5 | #![feature(adt_const_params, vec_into_raw_parts)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `str::Chars` and `string::ParseError` [INFO] [stdout] --> compiler/flakec-lexer/src/stream.rs:3:32 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{convert::Infallible, str::Chars, string::ParseError}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Lexer` [INFO] [stdout] --> compiler/flakec-lexer/src/stream.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | Lexer, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `vec_into_raw_parts` has been stable since 1.93.0 and no longer requires an attribute to enable [INFO] [stdout] --> compiler/flakec-lexer/src/lib.rs:5:30 [INFO] [stdout] | [INFO] [stdout] 5 | #![feature(adt_const_params, vec_into_raw_parts)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> compiler/flakec-lexer/src/stream.rs:75:23 [INFO] [stdout] | [INFO] [stdout] 75 | let ptr = (&self.buffer).as_ptr(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `self.buffer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> compiler/flakec-lexer/src/stream.rs:75:23 [INFO] [stdout] | [INFO] [stdout] 75 | let ptr = (&self.buffer).as_ptr(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `self.buffer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> compiler/flakec-lexer/src/token.rs:138:17 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn kind(&self) -> &TokenKind{ [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 138 | pub fn kind(&self) -> &TokenKind<'_>{ [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking flakec-ast v0.0.0 (/opt/rustwide/workdir/compiler/flakec-ast) [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> compiler/flakec-lexer/src/token.rs:138:17 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn kind(&self) -> &TokenKind{ [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 138 | pub fn kind(&self) -> &TokenKind<'_>{ [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Function` [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | use item::{Function, Item}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deref`, `IndexMut`, and `path::MAIN_SEPARATOR` [INFO] [stdout] --> compiler/flakec-ast/src/expression.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | ops::{Deref, IndexMut}, [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] 4 | path::MAIN_SEPARATOR, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> compiler/flakec-ast/src/expression.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | token::{self, BasicToken, Token, TokenKind, TokenType}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Operator_`, `Value_`, and `self` [INFO] [stdout] --> compiler/flakec-ast/src/expression.rs:14:68 [INFO] [stdout] | [INFO] [stdout] 14 | ...:{parse_operator, Operator, Operator_}, parse, types::Type, value::{self, parse_value, Value, Value_}, ParseError [INFO] [stdout] | ^^^^^^^^^ ^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `keyword::Keyword` and `token::TokenKind` [INFO] [stdout] --> compiler/flakec-ast/src/item.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use lexer::{keyword::Keyword, token::TokenKind}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Token` [INFO] [stdout] --> compiler/flakec-ast/src/operator.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | token::{BasicToken, Token, TokenKind, TokenType}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `marker::PhantomData` [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{convert::Infallible, marker::PhantomData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | crate::parse($input)? [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] = note: `#[warn(clippy::crate_in_macro_def)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:324:18 [INFO] [stdout] | [INFO] [stdout] 324 | impl<'a> crate::FromTokens<'a> for $name<'a> { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Function` [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | use item::{Function, Item}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deref`, `IndexMut`, and `path::MAIN_SEPARATOR` [INFO] [stdout] --> compiler/flakec-ast/src/expression.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | ops::{Deref, IndexMut}, [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] 4 | path::MAIN_SEPARATOR, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> compiler/flakec-ast/src/expression.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | token::{self, BasicToken, Token, TokenKind, TokenType}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Operator_`, `Value_`, and `self` [INFO] [stdout] --> compiler/flakec-ast/src/expression.rs:14:68 [INFO] [stdout] | [INFO] [stdout] 14 | ...:{parse_operator, Operator, Operator_}, parse, types::Type, value::{self, parse_value, Value, Value_}, ParseError [INFO] [stdout] | ^^^^^^^^^ ^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `keyword::Keyword` and `token::TokenKind` [INFO] [stdout] --> compiler/flakec-ast/src/item.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use lexer::{keyword::Keyword, token::TokenKind}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Token` [INFO] [stdout] --> compiler/flakec-ast/src/operator.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | token::{BasicToken, Token, TokenKind, TokenType}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `marker::PhantomData` [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{convert::Infallible, marker::PhantomData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | crate::parse($input)? [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] = note: `#[warn(clippy::crate_in_macro_def)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:324:18 [INFO] [stdout] | [INFO] [stdout] 324 | impl<'a> crate::FromTokens<'a> for $name<'a> { [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tok` [INFO] [stdout] --> compiler/flakec-ast/src/item.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | let tok = input.peek().ok_or(ParseError::UnexpectedEndOfFile)?; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tok` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> compiler/flakec-ast/src/types.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | _ => Ok(()) [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> compiler/flakec-ast/src/types.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 93 | Type::Int { bits: 8 } => f.write_str("i8"), [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] 94 | Type::Int { bits: 16 } => f.write_str("i16"), [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] 95 | Type::Int { bits: 32 } => f.write_str("i32"), [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] 96 | Type::Int { bits: 64 } => f.write_str("i64"), [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 113 | _ => Ok(()) [INFO] [stdout] | ^ ...and 16 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tok` [INFO] [stdout] --> compiler/flakec-ast/src/item.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | let tok = input.peek().ok_or(ParseError::UnexpectedEndOfFile)?; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tok` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/expression.rs:133:13 [INFO] [stdout] | [INFO] [stdout] 133 | _ = expect_token(input, TokenKind::Basic(BasicToken::RBracket))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 133 - _ = expect_token(input, TokenKind::Basic(BasicToken::RBracket))?; [INFO] [stdout] 133 + expect_token(input, TokenKind::Basic(BasicToken::RBracket))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> compiler/flakec-ast/src/types.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | _ => Ok(()) [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> compiler/flakec-ast/src/types.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 93 | Type::Int { bits: 8 } => f.write_str("i8"), [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] 94 | Type::Int { bits: 16 } => f.write_str("i16"), [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] 95 | Type::Int { bits: 32 } => f.write_str("i32"), [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] 96 | Type::Int { bits: 64 } => f.write_str("i64"), [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 113 | _ => Ok(()) [INFO] [stdout] | ^ ...and 16 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | _ = expect_token(input, TokenKind::Keyword(keyword::Keyword::Let))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 52 - _ = expect_token(input, TokenKind::Keyword(keyword::Keyword::Let))?; [INFO] [stdout] 52 + expect_token(input, TokenKind::Keyword(keyword::Keyword::Let))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | _ = expect_token(input, TokenKind::Basic(BasicToken::Eq))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 77 - _ = expect_token(input, TokenKind::Basic(BasicToken::Eq))?; [INFO] [stdout] 77 + expect_token(input, TokenKind::Basic(BasicToken::Eq))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | _ = expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 81 - _ = expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] 81 + expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | _ = expect_token(_input, TokenKind::Keyword(keyword::Keyword::Return))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 94 - _ = expect_token(_input, TokenKind::Keyword(keyword::Keyword::Return))?; [INFO] [stdout] 94 + expect_token(_input, TokenKind::Keyword(keyword::Keyword::Return))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | _ = expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 104 - _ = expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] 104 + expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | _ = expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 133 - _ = expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] 133 + expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:153:17 [INFO] [stdout] | [INFO] [stdout] 153 | _ = expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 153 - _ = expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] 153 + expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/expression.rs:133:13 [INFO] [stdout] | [INFO] [stdout] 133 | _ = expect_token(input, TokenKind::Basic(BasicToken::RBracket))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 133 - _ = expect_token(input, TokenKind::Basic(BasicToken::RBracket))?; [INFO] [stdout] 133 + expect_token(input, TokenKind::Basic(BasicToken::RBracket))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> compiler/flakec-ast/src/types.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | / match self { [INFO] [stdout] 121 | | Self::Pointer { .. } => true, [INFO] [stdout] 122 | | _ => false [INFO] [stdout] 123 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 120 - match self { [INFO] [stdout] 121 - Self::Pointer { .. } => true, [INFO] [stdout] 122 - _ => false [INFO] [stdout] 123 - } [INFO] [stdout] 120 + matches!(self, Self::Pointer { .. }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> compiler/flakec-ast/src/types.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | / match self { [INFO] [stdout] 135 | | Self::Int { .. } | Self::UInt { .. } => true, [INFO] [stdout] 136 | | _ => false [INFO] [stdout] 137 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 134 - match self { [INFO] [stdout] 135 - Self::Int { .. } | Self::UInt { .. } => true, [INFO] [stdout] 136 - _ => false [INFO] [stdout] 137 - } [INFO] [stdout] 134 + matches!(self, Self::Int { .. } | Self::UInt { .. }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | _ = expect_token(input, TokenKind::Keyword(keyword::Keyword::Let))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 52 - _ = expect_token(input, TokenKind::Keyword(keyword::Keyword::Let))?; [INFO] [stdout] 52 + expect_token(input, TokenKind::Keyword(keyword::Keyword::Let))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:105:20 [INFO] [stdout] | [INFO] [stdout] 105 | fn from_tokens(&'a self) -> Result>, ParseError<'a, Self::Error>>; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | _ = expect_token(input, TokenKind::Basic(BasicToken::Eq))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 77 - _ = expect_token(input, TokenKind::Basic(BasicToken::Eq))?; [INFO] [stdout] 77 + expect_token(input, TokenKind::Basic(BasicToken::Eq))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | _ = expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 81 - _ = expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] 81 + expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | _ = expect_token(_input, TokenKind::Keyword(keyword::Keyword::Return))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 94 - _ = expect_token(_input, TokenKind::Keyword(keyword::Keyword::Return))?; [INFO] [stdout] 94 + expect_token(_input, TokenKind::Keyword(keyword::Keyword::Return))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | / loop { [INFO] [stdout] 176 | | match restore_on_err(T::from_tokens, input) { [INFO] [stdout] 177 | | Ok(v) => collected.push(v), [INFO] [stdout] 178 | | Err(_) => break, [INFO] [stdout] 179 | | } [INFO] [stdout] 180 | | }; [INFO] [stdout] | |_________^ help: try: `while let Ok(v) = restore_on_err(T::from_tokens, input) { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | _ = expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 104 - _ = expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] 104 + expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | _ = expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 133 - _ = expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] 133 + expect_token(input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/statement.rs:153:17 [INFO] [stdout] | [INFO] [stdout] 153 | _ = expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 153 - _ = expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] 153 + expect_token(_input, TokenKind::Basic(BasicToken::Semicolon))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:309:9 [INFO] [stdout] | [INFO] [stdout] 309 | return Ok(Self(toks)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 309 - return Ok(Self(toks)); [INFO] [stdout] 309 + Ok(Self(toks)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | _ = expect_token(input, TokenKind::Basic(BasicToken::LBrace))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 293 - _ = expect_token(input, TokenKind::Basic(BasicToken::LBrace))?; [INFO] [stdout] 293 + expect_token(input, TokenKind::Basic(BasicToken::LBrace))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:307:9 [INFO] [stdout] | [INFO] [stdout] 307 | _ = expect_token(input, TokenKind::Basic(BasicToken::RBrace))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 307 - _ = expect_token(input, TokenKind::Basic(BasicToken::RBrace))?; [INFO] [stdout] 307 + expect_token(input, TokenKind::Basic(BasicToken::RBrace))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> compiler/flakec-ast/src/types.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | / match self { [INFO] [stdout] 121 | | Self::Pointer { .. } => true, [INFO] [stdout] 122 | | _ => false [INFO] [stdout] 123 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 120 - match self { [INFO] [stdout] 121 - Self::Pointer { .. } => true, [INFO] [stdout] 122 - _ => false [INFO] [stdout] 123 - } [INFO] [stdout] 120 + matches!(self, Self::Pointer { .. }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> compiler/flakec-ast/src/types.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | / match self { [INFO] [stdout] 135 | | Self::Int { .. } | Self::UInt { .. } => true, [INFO] [stdout] 136 | | _ => false [INFO] [stdout] 137 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 134 - match self { [INFO] [stdout] 135 - Self::Int { .. } | Self::UInt { .. } => true, [INFO] [stdout] 136 - _ => false [INFO] [stdout] 137 - } [INFO] [stdout] 134 + matches!(self, Self::Int { .. } | Self::UInt { .. }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking flakec-middle v0.0.0 (/opt/rustwide/workdir/compiler/flakec-middle) [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:105:20 [INFO] [stdout] | [INFO] [stdout] 105 | fn from_tokens(&'a self) -> Result>, ParseError<'a, Self::Error>>; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking flakec-parser v0.0.0 (/opt/rustwide/workdir/compiler/flakec-parser) [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | / loop { [INFO] [stdout] 176 | | match restore_on_err(T::from_tokens, input) { [INFO] [stdout] 177 | | Ok(v) => collected.push(v), [INFO] [stdout] 178 | | Err(_) => break, [INFO] [stdout] 179 | | } [INFO] [stdout] 180 | | }; [INFO] [stdout] | |_________^ help: try: `while let Ok(v) = restore_on_err(T::from_tokens, input) { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:309:9 [INFO] [stdout] | [INFO] [stdout] 309 | return Ok(Self(toks)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 309 - return Ok(Self(toks)); [INFO] [stdout] 309 + Ok(Self(toks)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | _ = expect_token(input, TokenKind::Basic(BasicToken::LBrace))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 293 - _ = expect_token(input, TokenKind::Basic(BasicToken::LBrace))?; [INFO] [stdout] 293 + expect_token(input, TokenKind::Basic(BasicToken::LBrace))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-ast/src/lib.rs:307:9 [INFO] [stdout] | [INFO] [stdout] 307 | _ = expect_token(input, TokenKind::Basic(BasicToken::RBrace))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 307 - _ = expect_token(input, TokenKind::Basic(BasicToken::RBrace))?; [INFO] [stdout] 307 + expect_token(input, TokenKind::Basic(BasicToken::RBrace))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `state` and `input` are never read [INFO] [stdout] --> compiler/flakec-parser/src/lib.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Parser<'a>{ [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 11 | state: ParserState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | input: &'a mut TokenStream<'a>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking flakec-backend v0.0.0 (/opt/rustwide/workdir/compiler/flakec-backend) [INFO] [stderr] Checking flakec-types v0.0.0 (/opt/rustwide/workdir/compiler/flakec-types) [INFO] [stdout] warning: fields `state` and `input` are never read [INFO] [stdout] --> compiler/flakec-parser/src/lib.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Parser<'a>{ [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 11 | state: ParserState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | input: &'a mut TokenStream<'a>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:4:33 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{collections::HashMap, error, fmt::Display, marker::PhantomData, ops::Deref}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `lexer::token::BasicToken` and `self` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | types::{self, Type, INT_UNKNOWN, UINT_UNKNOWN}, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | lexer::token::BasicToken, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fmt::Display` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:4:40 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{collections::HashMap, error, fmt::Display, marker::PhantomData, ops::Deref}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:146:24 [INFO] [stdout] | [INFO] [stdout] 146 | for (provided, expected) in args.iter().zip(expected_args.iter()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `provided_ty` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | let provided_ty = self._manager.infer_expr(provided.clone()).expect("internal error: failed to infer expression"); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_provided_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `TypePass<'a>` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | / pub fn new() -> Self { [INFO] [stdout] 132 | | Self { [INFO] [stdout] 133 | | _manager: TypeManager::new(), [INFO] [stdout] 134 | | _phatom: PhantomData, [INFO] [stdout] ... | [INFO] [stdout] 137 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 130 + impl<'a> Default for TypePass<'a> { [INFO] [stdout] 131 + fn default() -> Self { [INFO] [stdout] 132 + Self::new() [INFO] [stdout] 133 + } [INFO] [stdout] 134 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:139:58 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn check_fn_args(&mut self, name: &String, args: &Vec) -> Result<(), TypeError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 139 - pub fn check_fn_args(&mut self, name: &String, args: &Vec) -> Result<(), TypeError> { [INFO] [stdout] 139 + pub fn check_fn_args(&mut self, name: &String, args: &[Expression]) -> Result<(), TypeError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:218:64 [INFO] [stdout] | [INFO] [stdout] 218 | Expression::Unary { child, .. } => self.check_expr(&child), [INFO] [stdout] | ^^^^^^ help: change this to: `child` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:236:42 [INFO] [stdout] | [INFO] [stdout] 236 | } => self.check_cast(target, &child), [INFO] [stdout] | ^^^^^^ help: change this to: `child` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:253:21 [INFO] [stdout] | [INFO] [stdout] 253 | _ = self.check_expr(expr)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 253 - _ = self.check_expr(expr)?; [INFO] [stdout] 253 + self.check_expr(expr)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:268:21 [INFO] [stdout] | [INFO] [stdout] 268 | _ = self.check_expr(expr)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 268 - _ = self.check_expr(expr)?; [INFO] [stdout] 268 + self.check_expr(expr)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:317:23 [INFO] [stdout] | [INFO] [stdout] 317 | .map(|a| ((*a).ty.clone(), a.name.0.clone())) [INFO] [stdout] | ^^^^ help: try: `a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:339:17 [INFO] [stdout] | [INFO] [stdout] 339 | _ = self.check_stmt(stmt)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 339 - _ = self.check_stmt(stmt)?; [INFO] [stdout] 339 + self.check_stmt(stmt)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:358:13 [INFO] [stdout] | [INFO] [stdout] 358 | / match item { [INFO] [stdout] 359 | | flakec_middle::ast::item::Item::Function(func) => self.handle_function(func)?, [INFO] [stdout] 360 | | _ => {} [INFO] [stdout] 361 | | } [INFO] [stdout] | |_____________^ help: try: `if let flakec_middle::ast::item::Item::Function(func) = item { self.handle_function(func)? }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `convert::Infallible` [INFO] [stdout] --> compiler/flakec-backend/src/dummy.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{convert::Infallible, marker::PhantomData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> compiler/flakec-backend/src/dummy.rs:11:76 [INFO] [stdout] | [INFO] [stdout] 11 | fn compile(&'a mut self, _: flakec_middle::ast::AST) -> Result<(), Box<(dyn std::error::Error + 'static)>> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 11 - fn compile(&'a mut self, _: flakec_middle::ast::AST) -> Result<(), Box<(dyn std::error::Error + 'static)>> { [INFO] [stdout] 11 + fn compile(&'a mut self, _: flakec_middle::ast::AST) -> Result<(), Box> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `convert::Infallible` [INFO] [stdout] --> compiler/flakec-backend/src/dummy.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{convert::Infallible, marker::PhantomData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> compiler/flakec-backend/src/dummy.rs:11:76 [INFO] [stdout] | [INFO] [stdout] 11 | fn compile(&'a mut self, _: flakec_middle::ast::AST) -> Result<(), Box<(dyn std::error::Error + 'static)>> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 11 - fn compile(&'a mut self, _: flakec_middle::ast::AST) -> Result<(), Box<(dyn std::error::Error + 'static)>> { [INFO] [stdout] 11 + fn compile(&'a mut self, _: flakec_middle::ast::AST) -> Result<(), Box> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[cold]` attribute cannot be used on required trait methods [INFO] [stdout] --> compiler/flakec-backend/src/lib.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | #[cold] [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[cold]` can be applied to closures, foreign functions, functions, inherent methods, provided trait methods, and trait methods in impl blocks [INFO] [stdout] = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[cold]` attribute cannot be used on required trait methods [INFO] [stdout] --> compiler/flakec-backend/src/lib.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | #[cold] [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[cold]` can be applied to closures, foreign functions, functions, inherent methods, provided trait methods, and trait methods in impl blocks [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[cold]` attribute cannot be used on required trait methods [INFO] [stdout] --> compiler/flakec-backend/src/lib.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | #[cold] [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[cold]` can be applied to closures, foreign functions, functions, inherent methods, provided trait methods, and trait methods in impl blocks [INFO] [stdout] = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[cold]` attribute cannot be used on required trait methods [INFO] [stdout] --> compiler/flakec-backend/src/lib.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | #[cold] [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = help: `#[cold]` can be applied to closures, foreign functions, functions, inherent methods, provided trait methods, and trait methods in impl blocks [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `fmt::Display` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:4:33 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{collections::HashMap, error, fmt::Display, marker::PhantomData, ops::Deref}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `lexer::token::BasicToken` and `self` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | types::{self, Type, INT_UNKNOWN, UINT_UNKNOWN}, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | lexer::token::BasicToken, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking flakec-backend-llvm v0.0.0 (/opt/rustwide/workdir/compiler/flakec-backend-llvm) [INFO] [stdout] warning: unused imports: `CStr` and `convert::Infallible` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | convert::Infallible, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | ffi::{CStr, CString}, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `codegen::LLVMBuilder` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use codegen::LLVMBuilder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AST`, `FnArg`, and `Let` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:18:33 [INFO] [stdout] | [INFO] [stdout] 18 | item::{ExplicitRetType, FnArg, Function, Item}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | operator::Operator, [INFO] [stdout] 20 | statement::{Let, Return, Statement}, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | AST, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AddressSpace`, `AnyTypeEnum`, `AnyType`, `ArrayValue`, `BasicType as _`, `BasicValueEnum`, `BasicValue`, `FunctionValue`, `IntType`, `LLVMBool`, `LLVMBuildInBoundsGEP2`, `LLVMBuildIntCast`, `LLVMConstIntOfString`, `LLVMConstStringInContext`, `LLVMConstString`, `LLVMGetTypeByName`, `LLVMInt16Type`, `LLVMInt32Type`, `LLVMInt64Type`, `LLVMInt8Type`, `LLVMValueRef`, `PassManagerBuilder`, `PointerMathType`, and `PointerType` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:33:39 [INFO] [stdout] | [INFO] [stdout] 33 | LLVMBuildGlobalStringPtr, LLVMBuildInBoundsGEP2, LLVMBuildIntCast, LLVMBuildIntCast2, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | LLVMConstInt, LLVMConstIntOfString, LLVMConstString, LLVMConstStringInContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | LLVMFunctionType, LLVMGetArrayLength, LLVMGetElementType, LLVMGetTypeByName, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 38 | LLVMGetTypeByName2, LLVMGetTypeKind, LLVMInt16Type, LLVMInt16TypeInContext, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 39 | LLVMInt32Type, LLVMInt32TypeInContext, LLVMInt64Type, LLVMInt64TypeInContext, [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 40 | LLVMInt8Type, LLVMInt8TypeInContext, LLVMPointerType, LLVMTypeOf, LLVMVoidType, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | prelude::{LLVMBool, LLVMBuilderRef, LLVMContextRef, LLVMTypeRef, LLVMValueRef}, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | passes::{PassManagerBuilder, PassManagerSubType}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | types::{ [INFO] [stdout] 49 | AnyType, AnyTypeEnum, AsTypeRef, BasicType as _, BasicTypeEnum, FunctionType, IntType, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] 50 | PointerMathType, PointerType, [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 51 | }, [INFO] [stdout] 52 | values::{ArrayValue, AsValueRef, BasicValue, BasicValueEnum, FunctionValue, PointerValue}, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 53 | AddressSpace, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:86:25 [INFO] [stdout] | [INFO] [stdout] 86 | ) -> Result<(), Box<(dyn std::error::Error + 'static)>> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 86 - ) -> Result<(), Box<(dyn std::error::Error + 'static)>> { [INFO] [stdout] 86 + ) -> Result<(), Box> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:146:24 [INFO] [stdout] | [INFO] [stdout] 146 | for (provided, expected) in args.iter().zip(expected_args.iter()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `provided_ty` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | let provided_ty = self._manager.infer_expr(provided.clone()).expect("internal error: failed to infer expression"); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_provided_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `inkwell::llvm_sys::core::LLVMGetTypeByName`: Use LLVMGetTypeByName2 instead [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:37:71 [INFO] [stdout] | [INFO] [stdout] 37 | LLVMFunctionType, LLVMGetArrayLength, LLVMGetElementType, LLVMGetTypeByName, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CStr` and `convert::Infallible` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | convert::Infallible, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | ffi::{CStr, CString}, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `codegen::LLVMBuilder` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use codegen::LLVMBuilder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AST`, `FnArg`, and `Let` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:18:33 [INFO] [stdout] | [INFO] [stdout] 18 | item::{ExplicitRetType, FnArg, Function, Item}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | operator::Operator, [INFO] [stdout] 20 | statement::{Let, Return, Statement}, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | AST, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AddressSpace`, `AnyTypeEnum`, `AnyType`, `ArrayValue`, `BasicType as _`, `BasicValueEnum`, `BasicValue`, `FunctionValue`, `IntType`, `LLVMBool`, `LLVMBuildInBoundsGEP2`, `LLVMBuildIntCast`, `LLVMConstIntOfString`, `LLVMConstStringInContext`, `LLVMConstString`, `LLVMGetTypeByName`, `LLVMInt16Type`, `LLVMInt32Type`, `LLVMInt64Type`, `LLVMInt8Type`, `LLVMValueRef`, `PassManagerBuilder`, `PointerMathType`, and `PointerType` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:33:39 [INFO] [stdout] | [INFO] [stdout] 33 | LLVMBuildGlobalStringPtr, LLVMBuildInBoundsGEP2, LLVMBuildIntCast, LLVMBuildIntCast2, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | LLVMConstInt, LLVMConstIntOfString, LLVMConstString, LLVMConstStringInContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | LLVMFunctionType, LLVMGetArrayLength, LLVMGetElementType, LLVMGetTypeByName, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 38 | LLVMGetTypeByName2, LLVMGetTypeKind, LLVMInt16Type, LLVMInt16TypeInContext, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 39 | LLVMInt32Type, LLVMInt32TypeInContext, LLVMInt64Type, LLVMInt64TypeInContext, [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 40 | LLVMInt8Type, LLVMInt8TypeInContext, LLVMPointerType, LLVMTypeOf, LLVMVoidType, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | prelude::{LLVMBool, LLVMBuilderRef, LLVMContextRef, LLVMTypeRef, LLVMValueRef}, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | passes::{PassManagerBuilder, PassManagerSubType}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | types::{ [INFO] [stdout] 49 | AnyType, AnyTypeEnum, AsTypeRef, BasicType as _, BasicTypeEnum, FunctionType, IntType, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] 50 | PointerMathType, PointerType, [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 51 | }, [INFO] [stdout] 52 | values::{ArrayValue, AsValueRef, BasicValue, BasicValueEnum, FunctionValue, PointerValue}, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 53 | AddressSpace, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:86:25 [INFO] [stdout] | [INFO] [stdout] 86 | ) -> Result<(), Box<(dyn std::error::Error + 'static)>> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 86 - ) -> Result<(), Box<(dyn std::error::Error + 'static)>> { [INFO] [stdout] 86 + ) -> Result<(), Box> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `inkwell::llvm_sys::core::LLVMGetTypeByName`: Use LLVMGetTypeByName2 instead [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:37:71 [INFO] [stdout] | [INFO] [stdout] 37 | LLVMFunctionType, LLVMGetArrayLength, LLVMGetElementType, LLVMGetTypeByName, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PassManagerSubType` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:47:34 [INFO] [stdout] | [INFO] [stdout] 47 | passes::{PassManagerBuilder, PassManagerSubType}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `TypePass<'a>` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | / pub fn new() -> Self { [INFO] [stdout] 132 | | Self { [INFO] [stdout] 133 | | _manager: TypeManager::new(), [INFO] [stdout] 134 | | _phatom: PhantomData, [INFO] [stdout] ... | [INFO] [stdout] 137 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 130 + impl<'a> Default for TypePass<'a> { [INFO] [stdout] 131 + fn default() -> Self { [INFO] [stdout] 132 + Self::new() [INFO] [stdout] 133 + } [INFO] [stdout] 134 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:139:58 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn check_fn_args(&mut self, name: &String, args: &Vec) -> Result<(), TypeError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 139 - pub fn check_fn_args(&mut self, name: &String, args: &Vec) -> Result<(), TypeError> { [INFO] [stdout] 139 + pub fn check_fn_args(&mut self, name: &String, args: &[Expression]) -> Result<(), TypeError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PassManagerSubType` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:47:34 [INFO] [stdout] | [INFO] [stdout] 47 | passes::{PassManagerBuilder, PassManagerSubType}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:218:64 [INFO] [stdout] | [INFO] [stdout] 218 | Expression::Unary { child, .. } => self.check_expr(&child), [INFO] [stdout] | ^^^^^^ help: change this to: `child` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:236:42 [INFO] [stdout] | [INFO] [stdout] 236 | } => self.check_cast(target, &child), [INFO] [stdout] | ^^^^^^ help: change this to: `child` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:253:21 [INFO] [stdout] | [INFO] [stdout] 253 | _ = self.check_expr(expr)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 253 - _ = self.check_expr(expr)?; [INFO] [stdout] 253 + self.check_expr(expr)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:268:21 [INFO] [stdout] | [INFO] [stdout] 268 | _ = self.check_expr(expr)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 268 - _ = self.check_expr(expr)?; [INFO] [stdout] 268 + self.check_expr(expr)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:317:23 [INFO] [stdout] | [INFO] [stdout] 317 | .map(|a| ((*a).ty.clone(), a.name.0.clone())) [INFO] [stdout] | ^^^^ help: try: `a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `op` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:325:34 [INFO] [stdout] | [INFO] [stdout] 325 | Expression::Binary { op, left, right } => todo!(), [INFO] [stdout] | ^^ help: try ignoring the field: `op: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:325:38 [INFO] [stdout] | [INFO] [stdout] 325 | Expression::Binary { op, left, right } => todo!(), [INFO] [stdout] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:325:44 [INFO] [stdout] | [INFO] [stdout] 325 | Expression::Binary { op, left, right } => todo!(), [INFO] [stdout] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `span` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:326:42 [INFO] [stdout] | [INFO] [stdout] 326 | Expression::Variable { name, span } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `span: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_ty` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:399:30 [INFO] [stdout] | [INFO] [stdout] 399 | (Type::Pointer { target_ty }, LLVMTypeKind::LLVMIntegerTypeKind) => { [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `target_ty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:339:17 [INFO] [stdout] | [INFO] [stdout] 339 | _ = self.check_stmt(stmt)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 339 - _ = self.check_stmt(stmt)?; [INFO] [stdout] 339 + self.check_stmt(stmt)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> compiler/flakec-types/src/lib.rs:358:13 [INFO] [stdout] | [INFO] [stdout] 358 | / match item { [INFO] [stdout] 359 | | flakec_middle::ast::item::Item::Function(func) => self.handle_function(func)?, [INFO] [stdout] 360 | | _ => {} [INFO] [stdout] 361 | | } [INFO] [stdout] | |_____________^ help: try: `if let flakec_middle::ast::item::Item::Function(func) = item { self.handle_function(func)? }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_ty` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:413:30 [INFO] [stdout] | [INFO] [stdout] 413 | (Type::Pointer { target_ty }, LLVMTypeKind::LLVMArrayTypeKind) => { [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `target_ty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `op` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:325:34 [INFO] [stdout] | [INFO] [stdout] 325 | Expression::Binary { op, left, right } => todo!(), [INFO] [stdout] | ^^ help: try ignoring the field: `op: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:325:38 [INFO] [stdout] | [INFO] [stdout] 325 | Expression::Binary { op, left, right } => todo!(), [INFO] [stdout] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:325:44 [INFO] [stdout] | [INFO] [stdout] 325 | Expression::Binary { op, left, right } => todo!(), [INFO] [stdout] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `span` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:326:42 [INFO] [stdout] | [INFO] [stdout] 326 | Expression::Variable { name, span } => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `span: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_ty` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:399:30 [INFO] [stdout] | [INFO] [stdout] 399 | (Type::Pointer { target_ty }, LLVMTypeKind::LLVMIntegerTypeKind) => { [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `target_ty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_ty` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:413:30 [INFO] [stdout] | [INFO] [stdout] 413 | (Type::Pointer { target_ty }, LLVMTypeKind::LLVMArrayTypeKind) => { [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `target_ty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LLVMBackend<'a>` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | / pub fn new() -> Self { [INFO] [stdout] 73 | | Self { [INFO] [stdout] 74 | | _state: LLVMState { [INFO] [stdout] 75 | | context: Context::create(), [INFO] [stdout] ... | [INFO] [stdout] 79 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 71 + impl<'a> Default for LLVMBackend<'a> { [INFO] [stdout] 72 + fn default() -> Self { [INFO] [stdout] 73 + Self::new() [INFO] [stdout] 74 + } [INFO] [stdout] 75 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LLVMBackend<'a>` [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | / pub fn new() -> Self { [INFO] [stdout] 73 | | Self { [INFO] [stdout] 74 | | _state: LLVMState { [INFO] [stdout] 75 | | context: Context::create(), [INFO] [stdout] ... | [INFO] [stdout] 79 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 71 + impl<'a> Default for LLVMBackend<'a> { [INFO] [stdout] 72 + fn default() -> Self { [INFO] [stdout] 73 + Self::new() [INFO] [stdout] 74 + } [INFO] [stdout] 75 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:176:30 [INFO] [stdout] | [INFO] [stdout] 176 | .map_err(|e| LLVMError::Builder(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `LLVMError::Builder` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:180:30 [INFO] [stdout] | [INFO] [stdout] 180 | .map_err(|e| LLVMError::Builder(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `LLVMError::Builder` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:209:33 [INFO] [stdout] | [INFO] [stdout] 209 | let is_uninit = v.initale_value.is_none().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `v.initale_value.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:255:17 [INFO] [stdout] | [INFO] [stdout] 255 | assert!(!self [INFO] [stdout] | _________________^ [INFO] [stdout] 256 | | .locals [INFO] [stdout] 257 | | .insert(name.to_owned(), unsafe { PointerValue::new(ptr) }) [INFO] [stdout] 258 | | .is_some()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 255 ~ assert!(self [INFO] [stdout] 256 + .locals [INFO] [stdout] 257 ~ .insert(name.to_owned(), unsafe { PointerValue::new(ptr) }).is_none()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:176:30 [INFO] [stdout] | [INFO] [stdout] 176 | .map_err(|e| LLVMError::Builder(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `LLVMError::Builder` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:180:30 [INFO] [stdout] | [INFO] [stdout] 180 | .map_err(|e| LLVMError::Builder(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `LLVMError::Builder` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:513:5 [INFO] [stdout] | [INFO] [stdout] 513 | pub unsafe fn from_ast(ctx: LLVMContextRef, func: Function<'a>) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] = note: `#[warn(clippy::missing_safety_doc)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:538:5 [INFO] [stdout] | [INFO] [stdout] 538 | pub unsafe fn as_type(&mut self) -> *mut LLVMType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> compiler/flakec-backend-llvm/src/codegen.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | fn build(&mut self, state: &'ctx LLVMState) -> AnyValueEnum; [INFO] [stdout] | ^^^^^^^^^ the lifetime is elided here ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 10 | fn build(&mut self, state: &'ctx LLVMState) -> AnyValueEnum<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:209:33 [INFO] [stdout] | [INFO] [stdout] 209 | let is_uninit = v.initale_value.is_none().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `v.initale_value.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:255:17 [INFO] [stdout] | [INFO] [stdout] 255 | assert!(!self [INFO] [stdout] | _________________^ [INFO] [stdout] 256 | | .locals [INFO] [stdout] 257 | | .insert(name.to_owned(), unsafe { PointerValue::new(ptr) }) [INFO] [stdout] 258 | | .is_some()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 255 ~ assert!(self [INFO] [stdout] 256 + .locals [INFO] [stdout] 257 ~ .insert(name.to_owned(), unsafe { PointerValue::new(ptr) }).is_none()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking flake-lang v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:513:5 [INFO] [stdout] | [INFO] [stdout] 513 | pub unsafe fn from_ast(ctx: LLVMContextRef, func: Function<'a>) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] = note: `#[warn(clippy::missing_safety_doc)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> compiler/flakec-backend-llvm/src/lib.rs:538:5 [INFO] [stdout] | [INFO] [stdout] 538 | pub unsafe fn as_type(&mut self) -> *mut LLVMType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> compiler/flakec-backend-llvm/src/codegen.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | fn build(&mut self, state: &'ctx LLVMState) -> AnyValueEnum; [INFO] [stdout] | ^^^^^^^^^ the lifetime is elided here ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 10 | fn build(&mut self, state: &'ctx LLVMState) -> AnyValueEnum<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::Error` [INFO] [stdout] --> src/main.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{error::Error, fmt::Debug}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FromTokens` and `item::Function` [INFO] [stdout] --> src/main.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use ast::{item::Function, FromTokens, ParseError, AST}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::Error` [INFO] [stdout] --> src/main.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{error::Error, fmt::Debug}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FromTokens` and `item::Function` [INFO] [stdout] --> src/main.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use ast::{item::Function, FromTokens, ParseError, AST}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | dbg!(backend.compile(ast)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 41 | let _ = dbg!(backend.compile(ast)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | dbg!(backend.compile(ast)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 41 | let _ = dbg!(backend.compile(ast)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.58s [INFO] running `Command { std: "docker" "inspect" "0a3e1e9233f940e9e7c70db4c70f832b4158069a41417f4f944349f1ce1c15e0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0a3e1e9233f940e9e7c70db4c70f832b4158069a41417f4f944349f1ce1c15e0", kill_on_drop: false }` [INFO] [stdout] 0a3e1e9233f940e9e7c70db4c70f832b4158069a41417f4f944349f1ce1c15e0