[INFO] cloning repository https://github.com/gersbach/ironlang [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gersbach/ironlang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgersbach%2Fironlang", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgersbach%2Fironlang'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 055415ff2620ccb2acf704c7325d86b34ef08d7a [INFO] checking gersbach/ironlang against try#a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d for pr-145342-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgersbach%2Fironlang" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/gersbach/ironlang [INFO] finished tweaking git repo https://github.com/gersbach/ironlang [INFO] tweaked toml for git repo https://github.com/gersbach/ironlang written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/gersbach/ironlang on toolchain a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/gersbach/ironlang 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" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 15a85aed7213f2dd1b9d2a042ea9dcb475f4e2a20253eb85575cb675be141c57 [INFO] running `Command { std: "docker" "start" "-a" "15a85aed7213f2dd1b9d2a042ea9dcb475f4e2a20253eb85575cb675be141c57", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "15a85aed7213f2dd1b9d2a042ea9dcb475f4e2a20253eb85575cb675be141c57", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "15a85aed7213f2dd1b9d2a042ea9dcb475f4e2a20253eb85575cb675be141c57", kill_on_drop: false }` [INFO] [stdout] 15a85aed7213f2dd1b9d2a042ea9dcb475f4e2a20253eb85575cb675be141c57 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0db7faaa83276ce0f8861ca1288f3f5717408d676c6b250cca8050186c0dba0c [INFO] running `Command { std: "docker" "start" "-a" "0db7faaa83276ce0f8861ca1288f3f5717408d676c6b250cca8050186c0dba0c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.79 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling rustversion v1.0.14 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Checking numtoa v0.1.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Checking strum v0.26.2 [INFO] [stderr] Checking inline_colorization v0.1.6 [INFO] [stderr] Checking ran v2.0.1 [INFO] [stderr] Checking colored v2.1.0 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Checking getrandom v0.2.12 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking termion v1.5.6 [INFO] [stderr] Checking dirs-next v2.0.0 [INFO] [stderr] Checking term v0.7.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling syn v2.0.53 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling strum_macros v0.26.2 [INFO] [stderr] Checking ironlang v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0433]: failed to resolve: could not find `macos` in `os` [INFO] [stdout] --> src/binding.rs:3:98 [INFO] [stdout] | [INFO] [stdout] 3 | any::Any, borrow::Borrow, collections::{HashMap, VecDeque}, fmt, hash::Hash, ops::Bound, os::macos::raw::stat [INFO] [stdout] | ^^^^^ could not find `macos` in `os` [INFO] [stdout] | [INFO] [stdout] note: found an item that was configured out [INFO] [stdout] --> /rustc/a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d/library/std/src/os/mod.rs:156:7 [INFO] [stdout] | [INFO] [stdout] = note: the item is gated behind the `macos` feature [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `macos` in `os` [INFO] [stdout] --> src/main.rs:19:140 [INFO] [stdout] | [INFO] [stdout] 19 | ...ash, io::{stdin, stdout, Write}, ops::Bound, os::macos::raw::stat, sync::Condvar, vec [INFO] [stdout] | ^^^^^ could not find `macos` in `os` [INFO] [stdout] | [INFO] [stdout] note: found an item that was configured out [INFO] [stdout] --> /rustc/a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d/library/std/src/os/mod.rs:156:7 [INFO] [stdout] | [INFO] [stdout] = note: the item is gated behind the `macos` feature [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `any::Any`, `borrow::Borrow`, and `ops::Bound` [INFO] [stdout] --> src/binding.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | any::Any, borrow::Borrow, collections::{HashMap, VecDeque}, fmt, hash::Hash, ops::Bound, os::macos::raw::stat [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Diagnostic`, `ExpressionSyntax`, `StatementSyntax`, `TextSpan`, `TypeClause`, and `self` [INFO] [stdout] --> src/binding.rs:9:54 [INFO] [stdout] | [INFO] [stdout] 9 | ...::{self, Diagnostic, DiagnosticBag, TextSpan}, AssignmentExpressionSyntax, BinaryExpressionSyntax, BlockStatmentSyntax, CallExpressionSyntax, Conversion, ConversionType, ExpressionSyntax, ExpressionSyntaxStatement, ForStatementSyntax, IfStatementSyntax, NameExpressionSyntax, ParenthesizedExpression, StatementSyntax, SyntaxKind, SyntaxNode, SyntaxToken, TypeClause, U... [INFO] [stdout] | ^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/binding.rs:1298:9 [INFO] [stdout] | [INFO] [stdout] 1298 | / /// [INFO] [stdout] 1299 | | /// we want to support nested scopes [INFO] [stdout] 1300 | | /// [INFO] [stdout] 1301 | | /// var x = 10 [INFO] [stdout] ... | [INFO] [stdout] 1306 | | /// var x = False // this should error [INFO] [stdout] 1307 | | /// [INFO] [stdout] | |___________^ [INFO] [stdout] 1308 | / if self.variables.clone().contains_key(&variable.name) { [INFO] [stdout] 1309 | | return false; [INFO] [stdout] 1310 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/binding.rs:1330:9 [INFO] [stdout] | [INFO] [stdout] 1330 | / /// [INFO] [stdout] 1331 | | /// we want to support nested scopes [INFO] [stdout] 1332 | | /// [INFO] [stdout] 1333 | | /// var x = 10 [INFO] [stdout] ... | [INFO] [stdout] 1338 | | /// var x = False // this should error [INFO] [stdout] 1339 | | /// [INFO] [stdout] | |___________^ [INFO] [stdout] 1340 | / if self.functions.clone().contains_key(&function.name) { [INFO] [stdout] 1341 | | return false; [INFO] [stdout] 1342 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/binding.rs:1526:9 [INFO] [stdout] | [INFO] [stdout] 1526 | / /// [INFO] [stdout] 1527 | | /// if [INFO] [stdout] 1528 | | /// [INFO] [stdout] 1529 | | /// [INFO] [stdout] ... | [INFO] [stdout] 1552 | | /// [INFO] [stdout] 1553 | | /// [INFO] [stdout] | |___________^ [INFO] [stdout] 1554 | / if let Some(else_stmt) = statment.else_statement { [INFO] [stdout] 1555 | | let else_label = self.generate_label(); [INFO] [stdout] 1556 | | let end_label = self.generate_label(); [INFO] [stdout] ... | [INFO] [stdout] 1590 | | return self.rewrite_statment(result); [INFO] [stdout] 1591 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/binding.rs:1601:9 [INFO] [stdout] | [INFO] [stdout] 1601 | / /// [INFO] [stdout] 1602 | | /// [INFO] [stdout] 1603 | | /// while [INFO] [stdout] 1604 | | /// [INFO] [stdout] ... | [INFO] [stdout] 1614 | | /// [INFO] [stdout] 1615 | | /// [INFO] [stdout] | |___________________^ [INFO] [stdout] 1616 | let continue_label = self.generate_label(); [INFO] [stdout] | ------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/binding.rs:1623:73 [INFO] [stdout] | [INFO] [stdout] 1623 | BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((continue_label.clone()))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1623 - BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((continue_label.clone()))); [INFO] [stdout] 1623 + BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(continue_label.clone())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/binding.rs:1625:73 [INFO] [stdout] | [INFO] [stdout] 1625 | BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((check_label))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1625 - BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((check_label))); [INFO] [stdout] 1625 + BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(check_label)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/binding.rs:1630:73 [INFO] [stdout] | [INFO] [stdout] 1630 | BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((end_label))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1630 - BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((end_label))); [INFO] [stdout] 1630 + BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(end_label)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/binding.rs:1653:9 [INFO] [stdout] | [INFO] [stdout] 1653 | / /// [INFO] [stdout] 1654 | | /// ----> [INFO] [stdout] 1655 | | /// [INFO] [stdout] 1656 | | /// [INFO] [stdout] ... | [INFO] [stdout] 1663 | | /// } [INFO] [stdout] 1664 | | /// } [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 1668 | / let variable_declaration = BoundNodeKind::BoundVariableDeclaration( [INFO] [stdout] 1669 | | BoundVariableDeclarion::new(statment.variable.clone(), *statment.lower_bound), [INFO] [stdout] 1670 | | ); [INFO] [stdout] | |__________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SyntaxToken` [INFO] [stdout] --> src/compilation_unit.rs:1:37 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `format` and `path::Display` [INFO] [stdout] --> src/diagnostics.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{self, format}, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 3 | path::Display, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BoundScope` and `BoundVariableDeclarion` [INFO] [stdout] --> src/main.rs:14:146 [INFO] [stdout] | [INFO] [stdout] 14 | ...ope, BoundIfStatement, BoundNodeKind, BoundScope, BoundUnaryOperatorKind, BoundVariableDeclarion, BoundWhileStatment, BuiltInFunctions... [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `inline_colorization::*` [INFO] [stdout] --> src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use inline_colorization::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `binary_heap::Iter`, `f32::consts::E`, `hash::Hash`, `ops::Bound`, `sync::Condvar`, and `write` [INFO] [stdout] --> src/main.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | ...::{binary_heap::Iter, HashMap}, f32::consts::E, fmt::{self, write}, hash::Hash, io::{stdin, stdout, Write}, ops::Bound, os::macos::raw::stat, sync::Condvar, vec [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/main.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(while_true)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/main.rs:1030:9 [INFO] [stdout] | [INFO] [stdout] 1030 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:1032:16 [INFO] [stdout] | [INFO] [stdout] 1032 | if (token.kind == SyntaxKind::EndOfFileToekn) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1032 - if (token.kind == SyntaxKind::EndOfFileToekn) { [INFO] [stdout] 1032 + if token.kind == SyntaxKind::EndOfFileToekn { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/main.rs:1062:9 [INFO] [stdout] | [INFO] [stdout] 1062 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/main.rs:1229:13 [INFO] [stdout] | [INFO] [stdout] 1229 | / /// if parse_statement did not consume any tokens, [INFO] [stdout] 1230 | | /// let's skip the current token and continue we do not [INFO] [stdout] 1231 | | /// need to report and error because we'll aready tried [INFO] [stdout] 1232 | | /// to parse an expression statment [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] 1233 | / if self.current() == start_token { [INFO] [stdout] 1234 | | self.next_token(); [INFO] [stdout] 1235 | | } [INFO] [stdout] | |_____________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/main.rs:1315:9 [INFO] [stdout] | [INFO] [stdout] 1315 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `macos` in `os` [INFO] [stdout] --> src/binding.rs:3:98 [INFO] [stdout] | [INFO] [stdout] 3 | any::Any, borrow::Borrow, collections::{HashMap, VecDeque}, fmt, hash::Hash, ops::Bound, os::macos::raw::stat [INFO] [stdout] | ^^^^^ could not find `macos` in `os` [INFO] [stdout] | [INFO] [stdout] note: found an item that was configured out [INFO] [stdout] --> /rustc/a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d/library/std/src/os/mod.rs:156:7 [INFO] [stdout] | [INFO] [stdout] = note: the item is gated behind the `macos` feature [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `macos` in `os` [INFO] [stdout] --> src/main.rs:19:140 [INFO] [stdout] | [INFO] [stdout] 19 | ...ash, io::{stdin, stdout, Write}, ops::Bound, os::macos::raw::stat, sync::Condvar, vec [INFO] [stdout] | ^^^^^ could not find `macos` in `os` [INFO] [stdout] | [INFO] [stdout] note: found an item that was configured out [INFO] [stdout] --> /rustc/a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d/library/std/src/os/mod.rs:156:7 [INFO] [stdout] | [INFO] [stdout] = note: the item is gated behind the `macos` feature [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `any::Any`, `borrow::Borrow`, and `ops::Bound` [INFO] [stdout] --> src/binding.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | any::Any, borrow::Borrow, collections::{HashMap, VecDeque}, fmt, hash::Hash, ops::Bound, os::macos::raw::stat [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Diagnostic`, `ExpressionSyntax`, `StatementSyntax`, `TextSpan`, `TypeClause`, and `self` [INFO] [stdout] --> src/binding.rs:9:54 [INFO] [stdout] | [INFO] [stdout] 9 | ...::{self, Diagnostic, DiagnosticBag, TextSpan}, AssignmentExpressionSyntax, BinaryExpressionSyntax, BlockStatmentSyntax, CallExpressionSyntax, Conversion, ConversionType, ExpressionSyntax, ExpressionSyntaxStatement, ForStatementSyntax, IfStatementSyntax, NameExpressionSyntax, ParenthesizedExpression, StatementSyntax, SyntaxKind, SyntaxNode, SyntaxToken, TypeClause, U... [INFO] [stdout] | ^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/binding.rs:1298:9 [INFO] [stdout] | [INFO] [stdout] 1298 | / /// [INFO] [stdout] 1299 | | /// we want to support nested scopes [INFO] [stdout] 1300 | | /// [INFO] [stdout] 1301 | | /// var x = 10 [INFO] [stdout] ... | [INFO] [stdout] 1306 | | /// var x = False // this should error [INFO] [stdout] 1307 | | /// [INFO] [stdout] | |___________^ [INFO] [stdout] 1308 | / if self.variables.clone().contains_key(&variable.name) { [INFO] [stdout] 1309 | | return false; [INFO] [stdout] 1310 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/binding.rs:1330:9 [INFO] [stdout] | [INFO] [stdout] 1330 | / /// [INFO] [stdout] 1331 | | /// we want to support nested scopes [INFO] [stdout] 1332 | | /// [INFO] [stdout] 1333 | | /// var x = 10 [INFO] [stdout] ... | [INFO] [stdout] 1338 | | /// var x = False // this should error [INFO] [stdout] 1339 | | /// [INFO] [stdout] | |___________^ [INFO] [stdout] 1340 | / if self.functions.clone().contains_key(&function.name) { [INFO] [stdout] 1341 | | return false; [INFO] [stdout] 1342 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/binding.rs:1526:9 [INFO] [stdout] | [INFO] [stdout] 1526 | / /// [INFO] [stdout] 1527 | | /// if [INFO] [stdout] 1528 | | /// [INFO] [stdout] 1529 | | /// [INFO] [stdout] ... | [INFO] [stdout] 1552 | | /// [INFO] [stdout] 1553 | | /// [INFO] [stdout] | |___________^ [INFO] [stdout] 1554 | / if let Some(else_stmt) = statment.else_statement { [INFO] [stdout] 1555 | | let else_label = self.generate_label(); [INFO] [stdout] 1556 | | let end_label = self.generate_label(); [INFO] [stdout] ... | [INFO] [stdout] 1590 | | return self.rewrite_statment(result); [INFO] [stdout] 1591 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/binding.rs:1601:9 [INFO] [stdout] | [INFO] [stdout] 1601 | / /// [INFO] [stdout] 1602 | | /// [INFO] [stdout] 1603 | | /// while [INFO] [stdout] 1604 | | /// [INFO] [stdout] ... | [INFO] [stdout] 1614 | | /// [INFO] [stdout] 1615 | | /// [INFO] [stdout] | |___________________^ [INFO] [stdout] 1616 | let continue_label = self.generate_label(); [INFO] [stdout] | ------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/binding.rs:1623:73 [INFO] [stdout] | [INFO] [stdout] 1623 | BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((continue_label.clone()))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1623 - BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((continue_label.clone()))); [INFO] [stdout] 1623 + BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(continue_label.clone())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/binding.rs:1625:73 [INFO] [stdout] | [INFO] [stdout] 1625 | BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((check_label))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1625 - BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((check_label))); [INFO] [stdout] 1625 + BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(check_label)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/binding.rs:1630:73 [INFO] [stdout] | [INFO] [stdout] 1630 | BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((end_label))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1630 - BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new((end_label))); [INFO] [stdout] 1630 + BoundNodeKind::BoundLabelStatement(BoundLabelStatement::new(end_label)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/binding.rs:1653:9 [INFO] [stdout] | [INFO] [stdout] 1653 | / /// [INFO] [stdout] 1654 | | /// ----> [INFO] [stdout] 1655 | | /// [INFO] [stdout] 1656 | | /// [INFO] [stdout] ... | [INFO] [stdout] 1663 | | /// } [INFO] [stdout] 1664 | | /// } [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 1668 | / let variable_declaration = BoundNodeKind::BoundVariableDeclaration( [INFO] [stdout] 1669 | | BoundVariableDeclarion::new(statment.variable.clone(), *statment.lower_bound), [INFO] [stdout] 1670 | | ); [INFO] [stdout] | |__________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SyntaxToken` [INFO] [stdout] --> src/compilation_unit.rs:1:37 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `format` and `path::Display` [INFO] [stdout] --> src/diagnostics.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{self, format}, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 3 | path::Display, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BoundBinaryOperator`, `SyntaxToken`, `Value`, and `diagnostics::TextSpan` [INFO] [stdout] --> src/parser_tests.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 8 | binding::{BoundBinaryOperator, BoundBinaryOperatorKind}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | diagnostics::TextSpan, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | get_binary_precedence, Children, SyntaxKind, SyntaxNode, SyntaxToken, SyntaxTree, Value, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BoundScope` and `BoundVariableDeclarion` [INFO] [stdout] --> src/main.rs:14:146 [INFO] [stdout] | [INFO] [stdout] 14 | ...ope, BoundIfStatement, BoundNodeKind, BoundScope, BoundUnaryOperatorKind, BoundVariableDeclarion, BoundWhileStatment, BuiltInFunctions... [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `inline_colorization::*` [INFO] [stdout] --> src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use inline_colorization::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `binary_heap::Iter`, `f32::consts::E`, `hash::Hash`, `ops::Bound`, `sync::Condvar`, and `write` [INFO] [stdout] --> src/main.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | ...::{binary_heap::Iter, HashMap}, f32::consts::E, fmt::{self, write}, hash::Hash, io::{stdin, stdout, Write}, ops::Bound, os::macos::raw::stat, sync::Condvar, vec [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/main.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(while_true)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/main.rs:1030:9 [INFO] [stdout] | [INFO] [stdout] 1030 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:1032:16 [INFO] [stdout] | [INFO] [stdout] 1032 | if (token.kind == SyntaxKind::EndOfFileToekn) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1032 - if (token.kind == SyntaxKind::EndOfFileToekn) { [INFO] [stdout] 1032 + if token.kind == SyntaxKind::EndOfFileToekn { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/main.rs:1062:9 [INFO] [stdout] | [INFO] [stdout] 1062 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/main.rs:1229:13 [INFO] [stdout] | [INFO] [stdout] 1229 | / /// if parse_statement did not consume any tokens, [INFO] [stdout] 1230 | | /// let's skip the current token and continue we do not [INFO] [stdout] 1231 | | /// need to report and error because we'll aready tried [INFO] [stdout] 1232 | | /// to parse an expression statment [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] 1233 | / if self.current() == start_token { [INFO] [stdout] 1234 | | self.next_token(); [INFO] [stdout] 1235 | | } [INFO] [stdout] | |_____________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/main.rs:1315:9 [INFO] [stdout] | [INFO] [stdout] 1315 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/binding.rs:1577:13 [INFO] [stdout] | [INFO] [stdout] 1575 | return self.rewrite_statment(result); [INFO] [stdout] | ------------------------------------ any code following this expression is unreachable [INFO] [stdout] 1576 | [INFO] [stdout] 1577 | BoundNodeKind::Unkown [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `MemberSyntax` doesn't implement `Debug` [INFO] [stdout] --> src/main.rs:662:18 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Debug` is not implemented for `MemberSyntax` [INFO] [stdout] | [INFO] [stdout] = note: add `#[derive(Debug)]` to `MemberSyntax` or manually `impl Debug for MemberSyntax` [INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Debug)]` [INFO] [stdout] | [INFO] [stdout] 668 + #[derive(Debug)] [INFO] [stdout] 669 | pub struct MemberSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `GlobalStatementSyntax` doesn't implement `Debug` [INFO] [stdout] --> src/main.rs:663:27 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `GlobalStatementSyntax` [INFO] [stdout] | [INFO] [stdout] = note: add `#[derive(Debug)]` to `GlobalStatementSyntax` or manually `impl Debug for GlobalStatementSyntax` [INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Debug)]` [INFO] [stdout] | [INFO] [stdout] 672 + #[derive(Debug)] [INFO] [stdout] 673 | pub struct GlobalStatementSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `FunctionDeclarationSyntax` doesn't implement `Debug` [INFO] [stdout] --> src/main.rs:664:31 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `FunctionDeclarationSyntax` [INFO] [stdout] | [INFO] [stdout] = note: add `#[derive(Debug)]` to `FunctionDeclarationSyntax` or manually `impl Debug for FunctionDeclarationSyntax` [INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Debug)]` [INFO] [stdout] | [INFO] [stdout] 684 + #[derive(Debug)] [INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/binding.rs:1577:13 [INFO] [stdout] | [INFO] [stdout] 1575 | return self.rewrite_statment(result); [INFO] [stdout] | ------------------------------------ any code following this expression is unreachable [INFO] [stdout] 1576 | [INFO] [stdout] 1577 | BoundNodeKind::Unkown [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `MemberSyntax: Clone` is not satisfied [INFO] [stdout] --> src/main.rs:662:18 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Clone` is not implemented for `MemberSyntax` [INFO] [stdout] | [INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Clone)]` [INFO] [stdout] | [INFO] [stdout] 668 + #[derive(Clone)] [INFO] [stdout] 669 | pub struct MemberSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `GlobalStatementSyntax: Clone` is not satisfied [INFO] [stdout] --> src/main.rs:663:27 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `GlobalStatementSyntax` [INFO] [stdout] | [INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Clone)]` [INFO] [stdout] | [INFO] [stdout] 672 + #[derive(Clone)] [INFO] [stdout] 673 | pub struct GlobalStatementSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `FunctionDeclarationSyntax: Clone` is not satisfied [INFO] [stdout] --> src/main.rs:664:31 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `FunctionDeclarationSyntax` [INFO] [stdout] | [INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Clone)]` [INFO] [stdout] | [INFO] [stdout] 684 + #[derive(Clone)] [INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `MemberSyntax: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/main.rs:662:18 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | -- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `MemberSyntax` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `AssertParamIsEq` [INFO] [stdout] --> /rustc/a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d/library/core/src/cmp.rs:367:1 [INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Eq)]` [INFO] [stdout] | [INFO] [stdout] 668 + #[derive(Eq)] [INFO] [stdout] 669 | pub struct MemberSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `GlobalStatementSyntax: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/main.rs:663:27 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | -- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `GlobalStatementSyntax` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `AssertParamIsEq` [INFO] [stdout] --> /rustc/a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d/library/core/src/cmp.rs:367:1 [INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Eq)]` [INFO] [stdout] | [INFO] [stdout] 672 + #[derive(Eq)] [INFO] [stdout] 673 | pub struct GlobalStatementSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `FunctionDeclarationSyntax: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/main.rs:664:31 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | -- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `FunctionDeclarationSyntax` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `AssertParamIsEq` [INFO] [stdout] --> /rustc/a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d/library/core/src/cmp.rs:367:1 [INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Eq)]` [INFO] [stdout] | [INFO] [stdout] 684 + #[derive(Eq)] [INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&MemberSyntax` [INFO] [stdout] --> src/main.rs:662:18 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `MemberSyntax` [INFO] [stdout] --> src/main.rs:668:1 [INFO] [stdout] | [INFO] [stdout] 668 | pub struct MemberSyntax { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(PartialEq)]` [INFO] [stdout] | [INFO] [stdout] 668 + #[derive(PartialEq)] [INFO] [stdout] 669 | pub struct MemberSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&GlobalStatementSyntax` [INFO] [stdout] --> src/main.rs:663:27 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `GlobalStatementSyntax` [INFO] [stdout] --> src/main.rs:672:1 [INFO] [stdout] | [INFO] [stdout] 672 | pub struct GlobalStatementSyntax { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(PartialEq)]` [INFO] [stdout] | [INFO] [stdout] 672 + #[derive(PartialEq)] [INFO] [stdout] 673 | pub struct GlobalStatementSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&FunctionDeclarationSyntax` [INFO] [stdout] --> src/main.rs:664:31 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `FunctionDeclarationSyntax` [INFO] [stdout] --> src/main.rs:684:1 [INFO] [stdout] | [INFO] [stdout] 684 | pub struct FunctionDeclarationSyntax { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(PartialEq)]` [INFO] [stdout] | [INFO] [stdout] 684 + #[derive(PartialEq)] [INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/lexer_tests.rs:7:22 [INFO] [stdout] | [INFO] [stdout] 7 | let tokens = SyntaxTree::parse_tokens("a = 10".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^---------------------- argument #2 of type `SourceText` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/main.rs:1027:12 [INFO] [stdout] | [INFO] [stdout] 1027 | pub fn parse_tokens(text: String, source_text: SourceText) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ ----------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 7 | let tokens = SyntaxTree::parse_tokens("a = 10".to_string(), /* SourceText */); [INFO] [stdout] | ++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `_type` and `string` in initializer of `Value` [INFO] [stdout] --> src/lexer_tests.rs:54:29 [INFO] [stdout] | [INFO] [stdout] 54 | value: Some(Value { [INFO] [stdout] | ^^^^^ missing `_type` and `string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/parser_tests.rs:37:32 [INFO] [stdout] | [INFO] [stdout] 37 | let token_actual = SyntaxTree::parse_tokens(get_text(token.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^------------------------- argument #2 of type `SourceText` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/main.rs:1027:12 [INFO] [stdout] | [INFO] [stdout] 1027 | pub fn parse_tokens(text: String, source_text: SourceText) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ ----------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 37 | let token_actual = SyntaxTree::parse_tokens(get_text(token.clone()), /* SourceText */); [INFO] [stdout] | ++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strum::IntoEnumIterator` [INFO] [stdout] --> src/binding.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use strum::IntoEnumIterator; // 0.17.1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strum::IntoEnumIterator` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use strum::IntoEnumIterator; // 0.17.1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `MemberSyntax` doesn't implement `Debug` [INFO] [stdout] --> src/main.rs:662:18 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Debug` is not implemented for `MemberSyntax` [INFO] [stdout] | [INFO] [stdout] = note: add `#[derive(Debug)]` to `MemberSyntax` or manually `impl Debug for MemberSyntax` [INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Debug)]` [INFO] [stdout] | [INFO] [stdout] 668 + #[derive(Debug)] [INFO] [stdout] 669 | pub struct MemberSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `GlobalStatementSyntax` doesn't implement `Debug` [INFO] [stdout] --> src/main.rs:663:27 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `GlobalStatementSyntax` [INFO] [stdout] | [INFO] [stdout] = note: add `#[derive(Debug)]` to `GlobalStatementSyntax` or manually `impl Debug for GlobalStatementSyntax` [INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Debug)]` [INFO] [stdout] | [INFO] [stdout] 672 + #[derive(Debug)] [INFO] [stdout] 673 | pub struct GlobalStatementSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `FunctionDeclarationSyntax` doesn't implement `Debug` [INFO] [stdout] --> src/main.rs:664:31 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `FunctionDeclarationSyntax` [INFO] [stdout] | [INFO] [stdout] = note: add `#[derive(Debug)]` to `FunctionDeclarationSyntax` or manually `impl Debug for FunctionDeclarationSyntax` [INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Debug)]` [INFO] [stdout] | [INFO] [stdout] 684 + #[derive(Debug)] [INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `MemberSyntax: Clone` is not satisfied [INFO] [stdout] --> src/main.rs:662:18 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Clone` is not implemented for `MemberSyntax` [INFO] [stdout] | [INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Clone)]` [INFO] [stdout] | [INFO] [stdout] 668 + #[derive(Clone)] [INFO] [stdout] 669 | pub struct MemberSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `GlobalStatementSyntax: Clone` is not satisfied [INFO] [stdout] --> src/main.rs:663:27 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `GlobalStatementSyntax` [INFO] [stdout] | [INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Clone)]` [INFO] [stdout] | [INFO] [stdout] 672 + #[derive(Clone)] [INFO] [stdout] 673 | pub struct GlobalStatementSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `FunctionDeclarationSyntax: Clone` is not satisfied [INFO] [stdout] --> src/main.rs:664:31 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `FunctionDeclarationSyntax` [INFO] [stdout] | [INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Clone)]` [INFO] [stdout] | [INFO] [stdout] 684 + #[derive(Clone)] [INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `MemberSyntax: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/main.rs:662:18 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | -- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `MemberSyntax` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `AssertParamIsEq` [INFO] [stdout] --> /rustc/a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d/library/core/src/cmp.rs:367:1 [INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(Eq)]` [INFO] [stdout] | [INFO] [stdout] 668 + #[derive(Eq)] [INFO] [stdout] 669 | pub struct MemberSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `GlobalStatementSyntax: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/main.rs:663:27 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | -- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `GlobalStatementSyntax` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `AssertParamIsEq` [INFO] [stdout] --> /rustc/a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d/library/core/src/cmp.rs:367:1 [INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(Eq)]` [INFO] [stdout] | [INFO] [stdout] 672 + #[derive(Eq)] [INFO] [stdout] 673 | pub struct GlobalStatementSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `FunctionDeclarationSyntax: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/main.rs:664:31 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | -- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `FunctionDeclarationSyntax` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `AssertParamIsEq` [INFO] [stdout] --> /rustc/a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d/library/core/src/cmp.rs:367:1 [INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(Eq)]` [INFO] [stdout] | [INFO] [stdout] 684 + #[derive(Eq)] [INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&MemberSyntax` [INFO] [stdout] --> src/main.rs:662:18 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `MemberSyntax` [INFO] [stdout] --> src/main.rs:668:1 [INFO] [stdout] | [INFO] [stdout] 668 | pub struct MemberSyntax { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] help: consider annotating `MemberSyntax` with `#[derive(PartialEq)]` [INFO] [stdout] | [INFO] [stdout] 668 + #[derive(PartialEq)] [INFO] [stdout] 669 | pub struct MemberSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&GlobalStatementSyntax` [INFO] [stdout] --> src/main.rs:663:27 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `GlobalStatementSyntax` [INFO] [stdout] --> src/main.rs:672:1 [INFO] [stdout] | [INFO] [stdout] 672 | pub struct GlobalStatementSyntax { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] help: consider annotating `GlobalStatementSyntax` with `#[derive(PartialEq)]` [INFO] [stdout] | [INFO] [stdout] 672 + #[derive(PartialEq)] [INFO] [stdout] 673 | pub struct GlobalStatementSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&FunctionDeclarationSyntax` [INFO] [stdout] --> src/main.rs:664:31 [INFO] [stdout] | [INFO] [stdout] 639 | #[derive(Debug, Clone, Eq, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `FunctionDeclarationSyntax` [INFO] [stdout] --> src/main.rs:684:1 [INFO] [stdout] | [INFO] [stdout] 684 | pub struct FunctionDeclarationSyntax { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] help: consider annotating `FunctionDeclarationSyntax` with `#[derive(PartialEq)]` [INFO] [stdout] | [INFO] [stdout] 684 + #[derive(PartialEq)] [INFO] [stdout] 685 | pub struct FunctionDeclarationSyntax { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/binding.rs:443:64 [INFO] [stdout] | [INFO] [stdout] 443 | pub fn new(name: String, paremeters: Vec, return_type: Type) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/binding.rs:751:13 [INFO] [stdout] | [INFO] [stdout] 751 | let mut scope = Some(BoundScope::new(parent_scope.clone())); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/binding.rs:852:13 [INFO] [stdout] | [INFO] [stdout] 852 | let mut function_option = functions.functions.iter().find(|f| f.name == expression.identifier.text); [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/binding.rs:942:13 [INFO] [stdout] | [INFO] [stdout] 942 | let name = identifier.text; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_read_only` [INFO] [stdout] --> src/binding.rs:1042:13 [INFO] [stdout] | [INFO] [stdout] 1042 | let is_read_only = syntax.clone().identifier.kind == SyntaxKind::LetKeyword; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_read_only` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/binding.rs:1039:13 [INFO] [stdout] | [INFO] [stdout] 1039 | let mut name = syntax.clone().identifier.text; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `variable_name` [INFO] [stdout] --> src/binding.rs:1087:17 [INFO] [stdout] | [INFO] [stdout] 1087 | let variable_name = VariableSymbol { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strum::IntoEnumIterator` [INFO] [stdout] --> src/binding.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use strum::IntoEnumIterator; // 0.17.1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strum::IntoEnumIterator` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use strum::IntoEnumIterator; // 0.17.1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/binding.rs:1297:44 [INFO] [stdout] | [INFO] [stdout] 1297 | pub fn try_declare_variable(&mut self, name: String, variable: VariableSymbol) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/binding.rs:1329:44 [INFO] [stdout] | [INFO] [stdout] 1329 | pub fn try_declare_function(&mut self, name: String, function: FunctionSymbol) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `kind` [INFO] [stdout] --> src/diagnostics.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | kind: SyntaxKind, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_kind` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_kind` [INFO] [stdout] --> src/diagnostics.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | expected_kind: SyntaxKind, [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_kind` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `type_` [INFO] [stdout] --> src/diagnostics.rs:74:71 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn report_undefined_unary_operator(&mut self, span: TextSpan, type_: Type) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `type_` [INFO] [stdout] --> src/diagnostics.rs:84:61 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn report_invalid_number(&mut self, span: TextSpan, type_: Type) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/source_text.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | let mut lines = source_text.parse_lines(&source_text, text); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line_lenght` [INFO] [stdout] --> src/source_text.rs:48:17 [INFO] [stdout] | [INFO] [stdout] 48 | let line_lenght = position - line_start; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_lenght` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `diagnostic` [INFO] [stdout] --> src/main.rs:70:17 [INFO] [stdout] | [INFO] [stdout] 70 | for diagnostic in parser.diagnostics.diagnostics { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_diagnostic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/binding.rs:443:64 [INFO] [stdout] | [INFO] [stdout] 443 | pub fn new(name: String, paremeters: Vec, return_type: Type) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/binding.rs:751:13 [INFO] [stdout] | [INFO] [stdout] 751 | let mut scope = Some(BoundScope::new(parent_scope.clone())); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:335:17 [INFO] [stdout] | [INFO] [stdout] 335 | let mut start = self.position; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:357:17 [INFO] [stdout] | [INFO] [stdout] 357 | let mut start = self.position; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `done` is never read [INFO] [stdout] --> src/main.rs:562:21 [INFO] [stdout] | [INFO] [stdout] 562 | done = true; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/binding.rs:852:13 [INFO] [stdout] | [INFO] [stdout] 852 | let mut function_option = functions.functions.iter().find(|f| f.name == expression.identifier.text); [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/binding.rs:942:13 [INFO] [stdout] | [INFO] [stdout] 942 | let name = identifier.text; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function_keyword` [INFO] [stdout] --> src/main.rs:689:16 [INFO] [stdout] | [INFO] [stdout] 689 | pub fn new(function_keyword: SyntaxToken, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_keyword` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier` [INFO] [stdout] --> src/main.rs:690:13 [INFO] [stdout] | [INFO] [stdout] 690 | identifier: SyntaxToken, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parenthesis_open_token` [INFO] [stdout] --> src/main.rs:691:13 [INFO] [stdout] | [INFO] [stdout] 691 | parenthesis_open_token: SyntaxToken, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parenthesis_open_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `seoerated_syntax_list` [INFO] [stdout] --> src/main.rs:692:13 [INFO] [stdout] | [INFO] [stdout] 692 | seoerated_syntax_list: SeperatedSyntaxList, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seoerated_syntax_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parenthesis_closed_token` [INFO] [stdout] --> src/main.rs:693:13 [INFO] [stdout] | [INFO] [stdout] 693 | parenthesis_closed_token: SyntaxToken, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parenthesis_closed_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `type_clasue` [INFO] [stdout] --> src/main.rs:694:13 [INFO] [stdout] | [INFO] [stdout] 694 | type_clasue: TypeClause, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_clasue` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_read_only` [INFO] [stdout] --> src/binding.rs:1042:13 [INFO] [stdout] | [INFO] [stdout] 1042 | let is_read_only = syntax.clone().identifier.kind == SyntaxKind::LetKeyword; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_read_only` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/binding.rs:1039:13 [INFO] [stdout] | [INFO] [stdout] 1039 | let mut name = syntax.clone().identifier.text; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `variable_name` [INFO] [stdout] --> src/binding.rs:1087:17 [INFO] [stdout] | [INFO] [stdout] 1087 | let variable_name = VariableSymbol { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variable_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/binding.rs:1297:44 [INFO] [stdout] | [INFO] [stdout] 1297 | pub fn try_declare_variable(&mut self, name: String, variable: VariableSymbol) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/binding.rs:1329:44 [INFO] [stdout] | [INFO] [stdout] 1329 | pub fn try_declare_function(&mut self, name: String, function: FunctionSymbol) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function cannot return without recursing [INFO] [stdout] --> src/main.rs:919:5 [INFO] [stdout] | [INFO] [stdout] 919 | pub fn get_span(&self) -> TextSpan { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing [INFO] [stdout] 920 | let first = self.get_children().first().unwrap().get_span(); [INFO] [stdout] | ----------------------------------------------- recursive call site [INFO] [stdout] | [INFO] [stdout] = help: a `loop` may express intention better if this is on purpose [INFO] [stdout] = note: `#[warn(unconditional_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: `&SyntaxNode::MemberSyntax(_)`, `&SyntaxNode::GlobalStatementSyntax(_)` and `&SyntaxNode::FunctionDeclarationSyntax(_)` not covered [INFO] [stdout] --> src/main.rs:949:15 [INFO] [stdout] | [INFO] [stdout] 949 | match self { [INFO] [stdout] | ^^^^ patterns `&SyntaxNode::MemberSyntax(_)`, `&SyntaxNode::GlobalStatementSyntax(_)` and `&SyntaxNode::FunctionDeclarationSyntax(_)` not covered [INFO] [stdout] | [INFO] [stdout] note: `SyntaxNode` defined here [INFO] [stdout] --> src/main.rs:640:6 [INFO] [stdout] | [INFO] [stdout] 640 | enum SyntaxNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ------------ not covered [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | --------------------- not covered [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ------------------------- not covered [INFO] [stdout] = note: the matched value is of type `&SyntaxNode` [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms [INFO] [stdout] | [INFO] [stdout] 982 ~ SyntaxNode::ParenthesizedExpression(par) => vec![*par.sub_expression.clone()], [INFO] [stdout] 983 ~ &SyntaxNode::MemberSyntax(_) | &SyntaxNode::GlobalStatementSyntax(_) | &SyntaxNode::FunctionDeclarationSyntax(_) => todo!(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/main.rs:1010:13 [INFO] [stdout] | [INFO] [stdout] 1007 | SyntaxNode::LiteralNode(num) => write!(f, "number "), [INFO] [stdout] | ---------------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1010 | SyntaxNode::LiteralNode(bool) => write!(f, "bool "), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: `SyntaxNode::MemberSyntax(_)`, `SyntaxNode::GlobalStatementSyntax(_)` and `SyntaxNode::FunctionDeclarationSyntax(_)` not covered [INFO] [stdout] --> src/main.rs:989:15 [INFO] [stdout] | [INFO] [stdout] 989 | match self.clone() { [INFO] [stdout] | ^^^^^^^^^^^^ patterns `SyntaxNode::MemberSyntax(_)`, `SyntaxNode::GlobalStatementSyntax(_)` and `SyntaxNode::FunctionDeclarationSyntax(_)` not covered [INFO] [stdout] | [INFO] [stdout] note: `SyntaxNode` defined here [INFO] [stdout] --> src/main.rs:640:6 [INFO] [stdout] | [INFO] [stdout] 640 | enum SyntaxNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ------------ not covered [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | --------------------- not covered [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ------------------------- not covered [INFO] [stdout] = note: the matched value is of type `SyntaxNode` [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms [INFO] [stdout] | [INFO] [stdout] 1014~ SyntaxNode::ParenthesizedExpression(par) => write!(f, "parenthesis "), [INFO] [stdout] 1015~ SyntaxNode::MemberSyntax(_) | SyntaxNode::GlobalStatementSyntax(_) | SyntaxNode::FunctionDeclarationSyntax(_) => todo!(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/main.rs:1027:25 [INFO] [stdout] | [INFO] [stdout] 1027 | pub fn parse_tokens(text: String, source_text: SourceText) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1058:13 [INFO] [stdout] | [INFO] [stdout] 1058 | let mut diagnostics = lexer.diagnostics.clone(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected` [INFO] [stdout] --> src/main.rs:1175:13 [INFO] [stdout] | [INFO] [stdout] 1175 | let expected: SyntaxKind = if self.current().kind == SyntaxKind::LetKeyword { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opeator_token` [INFO] [stdout] --> src/main.rs:1254:17 [INFO] [stdout] | [INFO] [stdout] 1254 | let opeator_token = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opeator_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `source_text` [INFO] [stdout] --> src/main.rs:1266:46 [INFO] [stdout] | [INFO] [stdout] 1266 | pub fn parse_compilation_unit(&mut self, source_text: SourceText) -> CompilationUnit { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_source_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operator_token` [INFO] [stdout] --> src/main.rs:1305:17 [INFO] [stdout] | [INFO] [stdout] 1305 | let operator_token = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operator_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operator_token` [INFO] [stdout] --> src/main.rs:1322:17 [INFO] [stdout] | [INFO] [stdout] 1322 | let operator_token = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operator_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier` [INFO] [stdout] --> src/main.rs:1336:13 [INFO] [stdout] | [INFO] [stdout] 1336 | let identifier = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `open_parenthese_token` [INFO] [stdout] --> src/main.rs:1337:13 [INFO] [stdout] | [INFO] [stdout] 1337 | let open_parenthese_token = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_open_parenthese_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `closed_parenthese_token` [INFO] [stdout] --> src/main.rs:1339:13 [INFO] [stdout] | [INFO] [stdout] 1339 | let closed_parenthese_token = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_closed_parenthese_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `comma` [INFO] [stdout] --> src/main.rs:1350:21 [INFO] [stdout] | [INFO] [stdout] 1350 | let comma = self.next_token(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_comma` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `kind` [INFO] [stdout] --> src/diagnostics.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | kind: SyntaxKind, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_kind` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_kind` [INFO] [stdout] --> src/diagnostics.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | expected_kind: SyntaxKind, [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_kind` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `type_` [INFO] [stdout] --> src/diagnostics.rs:74:71 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn report_undefined_unary_operator(&mut self, span: TextSpan, type_: Type) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `type_` [INFO] [stdout] --> src/diagnostics.rs:84:61 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn report_invalid_number(&mut self, span: TextSpan, type_: Type) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_type_` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `kind` [INFO] [stdout] --> src/parser_tests.rs:28:25 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn assert_token(kind: SyntaxKind, text: String) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_kind` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/parser_tests.rs:28:43 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn assert_token(kind: SyntaxKind, text: String) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/main.rs:1386:17 [INFO] [stdout] | [INFO] [stdout] 1386 | let left = self.next_token(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_left` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/source_text.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | let mut lines = source_text.parse_lines(&source_text, text); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line_lenght` [INFO] [stdout] --> src/source_text.rs:48:17 [INFO] [stdout] | [INFO] [stdout] 48 | let line_lenght = position - line_start; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_lenght` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `previous` [INFO] [stdout] --> src/main.rs:1461:26 [INFO] [stdout] | [INFO] [stdout] 1461 | pub fn new_with_prev(previous: Compilation, syntax_tree: SyntaxTree) -> Self { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `label` [INFO] [stdout] --> src/main.rs:1560:52 [INFO] [stdout] | [INFO] [stdout] 1560 | BoundNodeKind::BoundLabelStatement(label) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `diagnostic` [INFO] [stdout] --> src/main.rs:70:17 [INFO] [stdout] | [INFO] [stdout] 70 | for diagnostic in parser.diagnostics.diagnostics { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_diagnostic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/main.rs:1910:16 [INFO] [stdout] | [INFO] [stdout] 1910 | pub fn new(name: String) -> Self { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:335:17 [INFO] [stdout] | [INFO] [stdout] 335 | let mut start = self.position; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:357:17 [INFO] [stdout] | [INFO] [stdout] 357 | let mut start = self.position; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `done` is never read [INFO] [stdout] --> src/main.rs:562:21 [INFO] [stdout] | [INFO] [stdout] 562 | done = true; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0004, E0277, E0369, E0433. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0004`. [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function_keyword` [INFO] [stdout] --> src/main.rs:689:16 [INFO] [stdout] | [INFO] [stdout] 689 | pub fn new(function_keyword: SyntaxToken, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_keyword` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier` [INFO] [stdout] --> src/main.rs:690:13 [INFO] [stdout] | [INFO] [stdout] 690 | identifier: SyntaxToken, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parenthesis_open_token` [INFO] [stdout] --> src/main.rs:691:13 [INFO] [stdout] | [INFO] [stdout] 691 | parenthesis_open_token: SyntaxToken, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parenthesis_open_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `seoerated_syntax_list` [INFO] [stdout] --> src/main.rs:692:13 [INFO] [stdout] | [INFO] [stdout] 692 | seoerated_syntax_list: SeperatedSyntaxList, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seoerated_syntax_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parenthesis_closed_token` [INFO] [stdout] --> src/main.rs:693:13 [INFO] [stdout] | [INFO] [stdout] 693 | parenthesis_closed_token: SyntaxToken, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parenthesis_closed_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `type_clasue` [INFO] [stdout] --> src/main.rs:694:13 [INFO] [stdout] | [INFO] [stdout] 694 | type_clasue: TypeClause, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_clasue` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function cannot return without recursing [INFO] [stdout] --> src/main.rs:919:5 [INFO] [stdout] | [INFO] [stdout] 919 | pub fn get_span(&self) -> TextSpan { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing [INFO] [stdout] 920 | let first = self.get_children().first().unwrap().get_span(); [INFO] [stdout] | ----------------------------------------------- recursive call site [INFO] [stdout] | [INFO] [stdout] = help: a `loop` may express intention better if this is on purpose [INFO] [stdout] = note: `#[warn(unconditional_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `ironlang` (bin "ironlang") due to 16 previous errors; 66 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0004]: non-exhaustive patterns: `&SyntaxNode::MemberSyntax(_)`, `&SyntaxNode::GlobalStatementSyntax(_)` and `&SyntaxNode::FunctionDeclarationSyntax(_)` not covered [INFO] [stdout] --> src/main.rs:949:15 [INFO] [stdout] | [INFO] [stdout] 949 | match self { [INFO] [stdout] | ^^^^ patterns `&SyntaxNode::MemberSyntax(_)`, `&SyntaxNode::GlobalStatementSyntax(_)` and `&SyntaxNode::FunctionDeclarationSyntax(_)` not covered [INFO] [stdout] | [INFO] [stdout] note: `SyntaxNode` defined here [INFO] [stdout] --> src/main.rs:640:6 [INFO] [stdout] | [INFO] [stdout] 640 | enum SyntaxNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ------------ not covered [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | --------------------- not covered [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ------------------------- not covered [INFO] [stdout] = note: the matched value is of type `&SyntaxNode` [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms [INFO] [stdout] | [INFO] [stdout] 982 ~ SyntaxNode::ParenthesizedExpression(par) => vec![*par.sub_expression.clone()], [INFO] [stdout] 983 ~ &SyntaxNode::MemberSyntax(_) | &SyntaxNode::GlobalStatementSyntax(_) | &SyntaxNode::FunctionDeclarationSyntax(_) => todo!(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/main.rs:1010:13 [INFO] [stdout] | [INFO] [stdout] 1007 | SyntaxNode::LiteralNode(num) => write!(f, "number "), [INFO] [stdout] | ---------------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1010 | SyntaxNode::LiteralNode(bool) => write!(f, "bool "), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: `SyntaxNode::MemberSyntax(_)`, `SyntaxNode::GlobalStatementSyntax(_)` and `SyntaxNode::FunctionDeclarationSyntax(_)` not covered [INFO] [stdout] --> src/main.rs:989:15 [INFO] [stdout] | [INFO] [stdout] 989 | match self.clone() { [INFO] [stdout] | ^^^^^^^^^^^^ patterns `SyntaxNode::MemberSyntax(_)`, `SyntaxNode::GlobalStatementSyntax(_)` and `SyntaxNode::FunctionDeclarationSyntax(_)` not covered [INFO] [stdout] | [INFO] [stdout] note: `SyntaxNode` defined here [INFO] [stdout] --> src/main.rs:640:6 [INFO] [stdout] | [INFO] [stdout] 640 | enum SyntaxNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 662 | MemberSyntax(MemberSyntax), [INFO] [stdout] | ------------ not covered [INFO] [stdout] 663 | GlobalStatementSyntax(GlobalStatementSyntax), [INFO] [stdout] | --------------------- not covered [INFO] [stdout] 664 | FunctionDeclarationSyntax(FunctionDeclarationSyntax), [INFO] [stdout] | ------------------------- not covered [INFO] [stdout] = note: the matched value is of type `SyntaxNode` [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms [INFO] [stdout] | [INFO] [stdout] 1014~ SyntaxNode::ParenthesizedExpression(par) => write!(f, "parenthesis "), [INFO] [stdout] 1015~ SyntaxNode::MemberSyntax(_) | SyntaxNode::GlobalStatementSyntax(_) | SyntaxNode::FunctionDeclarationSyntax(_) => todo!(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/main.rs:1027:25 [INFO] [stdout] | [INFO] [stdout] 1027 | pub fn parse_tokens(text: String, source_text: SourceText) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1058:13 [INFO] [stdout] | [INFO] [stdout] 1058 | let mut diagnostics = lexer.diagnostics.clone(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected` [INFO] [stdout] --> src/main.rs:1175:13 [INFO] [stdout] | [INFO] [stdout] 1175 | let expected: SyntaxKind = if self.current().kind == SyntaxKind::LetKeyword { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opeator_token` [INFO] [stdout] --> src/main.rs:1254:17 [INFO] [stdout] | [INFO] [stdout] 1254 | let opeator_token = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opeator_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `source_text` [INFO] [stdout] --> src/main.rs:1266:46 [INFO] [stdout] | [INFO] [stdout] 1266 | pub fn parse_compilation_unit(&mut self, source_text: SourceText) -> CompilationUnit { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_source_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operator_token` [INFO] [stdout] --> src/main.rs:1305:17 [INFO] [stdout] | [INFO] [stdout] 1305 | let operator_token = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operator_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operator_token` [INFO] [stdout] --> src/main.rs:1322:17 [INFO] [stdout] | [INFO] [stdout] 1322 | let operator_token = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operator_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier` [INFO] [stdout] --> src/main.rs:1336:13 [INFO] [stdout] | [INFO] [stdout] 1336 | let identifier = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `open_parenthese_token` [INFO] [stdout] --> src/main.rs:1337:13 [INFO] [stdout] | [INFO] [stdout] 1337 | let open_parenthese_token = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_open_parenthese_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `closed_parenthese_token` [INFO] [stdout] --> src/main.rs:1339:13 [INFO] [stdout] | [INFO] [stdout] 1339 | let closed_parenthese_token = self.next_token(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_closed_parenthese_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `comma` [INFO] [stdout] --> src/main.rs:1350:21 [INFO] [stdout] | [INFO] [stdout] 1350 | let comma = self.next_token(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_comma` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/main.rs:1386:17 [INFO] [stdout] | [INFO] [stdout] 1386 | let left = self.next_token(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_left` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `previous` [INFO] [stdout] --> src/main.rs:1461:26 [INFO] [stdout] | [INFO] [stdout] 1461 | pub fn new_with_prev(previous: Compilation, syntax_tree: SyntaxTree) -> Self { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `label` [INFO] [stdout] --> src/main.rs:1560:52 [INFO] [stdout] | [INFO] [stdout] 1560 | BoundNodeKind::BoundLabelStatement(label) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/main.rs:1910:16 [INFO] [stdout] | [INFO] [stdout] 1910 | pub fn new(name: String) -> Self { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0004, E0061, E0063, E0277, E0369, E0433. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0004`. [INFO] [stdout] [INFO] [stderr] error: could not compile `ironlang` (bin "ironlang" test) due to 19 previous errors; 69 warnings emitted [INFO] running `Command { std: "docker" "inspect" "0db7faaa83276ce0f8861ca1288f3f5717408d676c6b250cca8050186c0dba0c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0db7faaa83276ce0f8861ca1288f3f5717408d676c6b250cca8050186c0dba0c", kill_on_drop: false }` [INFO] [stdout] 0db7faaa83276ce0f8861ca1288f3f5717408d676c6b250cca8050186c0dba0c