[INFO] crate thrust 0.1.0 is already in cache [INFO] extracting crate thrust 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/thrust/0.1.0 [INFO] extracting crate thrust 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/thrust/0.1.0 [INFO] validating manifest of thrust-0.1.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of thrust-0.1.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing thrust-0.1.0 [INFO] finished frobbing thrust-0.1.0 [INFO] frobbed toml for thrust-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/thrust/0.1.0/Cargo.toml [INFO] started frobbing thrust-0.1.0 [INFO] finished frobbing thrust-0.1.0 [INFO] frobbed toml for thrust-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/thrust/0.1.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting thrust-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/thrust/0.1.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 0d9267a3089c599d467e65ec461f0b239dd7c258cfb1cd58c1403950c46c8dd4 [INFO] running `"docker" "start" "-a" "0d9267a3089c599d467e65ec461f0b239dd7c258cfb1cd58c1403950c46c8dd4"` [INFO] [stderr] Checking thrust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast.rs:129:13 [INFO] [stderr] | [INFO] [stderr] 129 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast.rs:188:13 [INFO] [stderr] | [INFO] [stderr] 188 | lang: lang, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `lang` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | ns: ns [INFO] [stderr] | ^^^^^^ help: replace it with: `ns` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:214:9 [INFO] [stderr] | [INFO] [stderr] 214 | write!(w, "pub struct {} {{\n", self.name.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:222:9 [INFO] [stderr] | [INFO] [stderr] 222 | write!(w, "}}\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | write!(w, ",\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast.rs:129:13 [INFO] [stderr] | [INFO] [stderr] 129 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast.rs:188:13 [INFO] [stderr] | [INFO] [stderr] 188 | lang: lang, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `lang` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | ns: ns [INFO] [stderr] | ^^^^^^ help: replace it with: `ns` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:214:9 [INFO] [stderr] | [INFO] [stderr] 214 | write!(w, "pub struct {} {{\n", self.name.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:222:9 [INFO] [stderr] | [INFO] [stderr] 222 | write!(w, "}}\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/ast.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | write!(w, ",\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/lib.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `be_u8` [INFO] [stderr] --> src/parser.rs:1:99 [INFO] [stderr] | [INFO] [stderr] 1 | use nom::{space, alphanumeric, ErrorKind, IterIndices, IResult, multispace, not_line_ending, Err, be_u8, digit, InputLength, is_alphanumeric}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::convert::From` [INFO] [stderr] --> src/parser.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::convert::From; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Index`, `RangeFrom`, `Range` [INFO] [stderr] --> src/parser.rs:5:16 [INFO] [stderr] | [INFO] [stderr] 5 | use std::ops::{Index,Range,RangeFrom}; [INFO] [stderr] | ^^^^^ ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/parser.rs:219:9 [INFO] [stderr] | [INFO] [stderr] 219 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/parser.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `nom::IResult::*` [INFO] [stderr] --> src/parser.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | use nom::IResult::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Ast`, `FieldMetadataNode`, `FunctionNode`, `IdentNode`, `NamespaceNode`, `ServiceNode`, `StructFieldNode`, `StructNode`, `Ty` [INFO] [stderr] --> src/parser.rs:223:15 [INFO] [stderr] | [INFO] [stderr] 223 | use ast::{IdentNode, StructNode, FunctionNode, ServiceNode, NamespaceNode, StructFieldNode, FieldMetadataNode, Ty, Ast}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Read` [INFO] [stderr] --> src/ast.rs:1:15 [INFO] [stderr] | [INFO] [stderr] 1 | use std::io::{Read, Write}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/generator.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Result`, `Write` [INFO] [stderr] --> src/generator.rs:3:15 [INFO] [stderr] | [INFO] [stderr] 3 | use std::io::{Result, Read, Write}; [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ast::Ast` [INFO] [stderr] --> src/generator.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use ast::Ast; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/generator.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | return "Thrust completed successfully!"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"Thrust completed successfully!"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:57:17 [INFO] [stderr] | [INFO] [stderr] 57 | / return Ok(ThriftCompiler { [INFO] [stderr] 58 | | namespace: ns, [INFO] [stderr] 59 | | buffer: try!(String::from_utf8(buf)) [INFO] [stderr] 60 | | }); [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 57 | Ok(ThriftCompiler { [INFO] [stderr] 58 | namespace: ns, [INFO] [stderr] 59 | buffer: try!(String::from_utf8(buf)) [INFO] [stderr] 60 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | return Err(ThriftCompilerError::Nom); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ThriftCompilerError::Nom)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | return Err(ThriftCompilerError::Unknown); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ThriftCompilerError::Unknown)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/lib.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `be_u8` [INFO] [stderr] --> src/parser.rs:1:99 [INFO] [stderr] | [INFO] [stderr] 1 | use nom::{space, alphanumeric, ErrorKind, IterIndices, IResult, multispace, not_line_ending, Err, be_u8, digit, InputLength, is_alphanumeric}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::convert::From` [INFO] [stderr] --> src/parser.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::convert::From; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Index`, `RangeFrom`, `Range` [INFO] [stderr] --> src/parser.rs:5:16 [INFO] [stderr] | [INFO] [stderr] 5 | use std::ops::{Index,Range,RangeFrom}; [INFO] [stderr] | ^^^^^ ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/parser.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `nom::IResult::*` [INFO] [stderr] --> src/parser.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | use nom::IResult::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Ast` [INFO] [stderr] --> src/parser.rs:223:120 [INFO] [stderr] | [INFO] [stderr] 223 | use ast::{IdentNode, StructNode, FunctionNode, ServiceNode, NamespaceNode, StructFieldNode, FieldMetadataNode, Ty, Ast}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Read` [INFO] [stderr] --> src/ast.rs:1:15 [INFO] [stderr] | [INFO] [stderr] 1 | use std::io::{Read, Write}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `parser::*` [INFO] [stderr] --> src/ast.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | use parser::*; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/generator.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Result`, `Write` [INFO] [stderr] --> src/generator.rs:3:15 [INFO] [stderr] | [INFO] [stderr] 3 | use std::io::{Result, Read, Write}; [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ast::Ast` [INFO] [stderr] --> src/generator.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use ast::Ast; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/generator.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | return "Thrust completed successfully!"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"Thrust completed successfully!"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:57:17 [INFO] [stderr] | [INFO] [stderr] 57 | / return Ok(ThriftCompiler { [INFO] [stderr] 58 | | namespace: ns, [INFO] [stderr] 59 | | buffer: try!(String::from_utf8(buf)) [INFO] [stderr] 60 | | }); [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 57 | Ok(ThriftCompiler { [INFO] [stderr] 58 | namespace: ns, [INFO] [stderr] 59 | buffer: try!(String::from_utf8(buf)) [INFO] [stderr] 60 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | return Err(ThriftCompilerError::Nom); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ThriftCompilerError::Nom)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | return Err(ThriftCompilerError::Unknown); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ThriftCompilerError::Unknown)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `w` [INFO] [stderr] --> src/ast.rs:4:19 [INFO] [stderr] | [INFO] [stderr] 4 | fn gen(&self, w: &mut Write) {} [INFO] [stderr] | ^ help: consider using `_w` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `w` [INFO] [stderr] --> src/ast.rs:195:19 [INFO] [stderr] | [INFO] [stderr] 195 | fn gen(&self, w: &mut Write) {} [INFO] [stderr] | ^ help: consider using `_w` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/generator.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | Err(err) => return "Error opening the input .thrift file." [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/generator.rs:26:27 [INFO] [stderr] | [INFO] [stderr] 26 | IResult::Done(i, o) => println!("Done parsing."), [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `o` [INFO] [stderr] --> src/generator.rs:26:30 [INFO] [stderr] | [INFO] [stderr] 26 | IResult::Done(i, o) => println!("Done parsing."), [INFO] [stderr] | ^ help: consider using `_o` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `output` [INFO] [stderr] --> src/generator.rs:15:28 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn run(path: &str, output: &str) -> &'static str { [INFO] [stderr] | ^^^^^^ help: consider using `_output` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/lib.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | fn from(err: string::FromUtf8Error) -> ThriftCompilerError { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | IResult::Done(i, nodes) => { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/lib.rs:62:28 [INFO] [stderr] | [INFO] [stderr] 62 | IResult::Error(err) => { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eof` [INFO] [stderr] --> src/parser.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | fn eof(input:&[u8]) -> IResult<&[u8], &[u8]> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `namespace` [INFO] [stderr] --> src/parser.rs:60:1 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn namespace<'a>(input:&'a [u8]) -> IResult<&'a [u8], &'a [u8]> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Parser` [INFO] [stderr] --> src/parser.rs:214:1 [INFO] [stderr] | [INFO] [stderr] 214 | pub struct Parser<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/ast.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | pub fn new(name: IdentNode) -> ServiceNode { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `input` [INFO] [stderr] --> src/generator.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | input: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `output` [INFO] [stderr] --> src/generator.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | output: Option [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser.rs:33:8 [INFO] [stderr] | [INFO] [stderr] 33 | if input.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/parser.rs:60:1 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn namespace<'a>(input:&'a [u8]) -> IResult<&'a [u8], &'a [u8]> { [INFO] [stderr] 61 | | let input_length = input.input_len(); [INFO] [stderr] 62 | | if input_length == 0 { [INFO] [stderr] 63 | | return Error(Err::Position(ErrorKind::AlphaNumeric, input)); [INFO] [stderr] ... | [INFO] [stderr] 76 | | Done(&input[input_length..], input) [INFO] [stderr] 77 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/parser.rs:116:24 [INFO] [stderr] | [INFO] [stderr] 116 | || { Ty::parse(ty, generics.unwrap_or(Vec::new())) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `generics.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:36:20 [INFO] [stderr] | [INFO] [stderr] 36 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:43:20 [INFO] [stderr] | [INFO] [stderr] 43 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:50:20 [INFO] [stderr] | [INFO] [stderr] 50 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:57:20 [INFO] [stderr] | [INFO] [stderr] 57 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:64:20 [INFO] [stderr] | [INFO] [stderr] 64 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:71:20 [INFO] [stderr] | [INFO] [stderr] 71 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:78:20 [INFO] [stderr] | [INFO] [stderr] 78 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:85:20 [INFO] [stderr] | [INFO] [stderr] 85 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/ast.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 202 | / if &*self.lang.0 == "rust" { [INFO] [stderr] 203 | | true [INFO] [stderr] 204 | | } else { [INFO] [stderr] 205 | | false [INFO] [stderr] 206 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `&*self.lang.0 == "rust"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:214:9 [INFO] [stderr] | [INFO] [stderr] 214 | write!(w, "pub struct {} {{\n", self.name.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:218:13 [INFO] [stderr] | [INFO] [stderr] 218 | write!(w, " "); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:222:9 [INFO] [stderr] | [INFO] [stderr] 222 | write!(w, "}}\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:228:9 [INFO] [stderr] | [INFO] [stderr] 228 | / match self { [INFO] [stderr] 229 | | &Ty::String => { write!(w, "String"); }, [INFO] [stderr] 230 | | &Ty::Void => { write!(w, "()"); }, [INFO] [stderr] 231 | | &Ty::Byte => { write!(w, "i8"); }, [INFO] [stderr] ... | [INFO] [stderr] 249 | | _ => {} [INFO] [stderr] 250 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 228 | match *self { [INFO] [stderr] 229 | Ty::String => { write!(w, "String"); }, [INFO] [stderr] 230 | Ty::Void => { write!(w, "()"); }, [INFO] [stderr] 231 | Ty::Byte => { write!(w, "i8"); }, [INFO] [stderr] 232 | Ty::Binary => { write!(w, "Vec"); }, [INFO] [stderr] 233 | Ty::Signed16 => { write!(w, "i16"); }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:229:30 [INFO] [stderr] | [INFO] [stderr] 229 | &Ty::String => { write!(w, "String"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:230:28 [INFO] [stderr] | [INFO] [stderr] 230 | &Ty::Void => { write!(w, "()"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:231:28 [INFO] [stderr] | [INFO] [stderr] 231 | &Ty::Byte => { write!(w, "i8"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:232:30 [INFO] [stderr] | [INFO] [stderr] 232 | &Ty::Binary => { write!(w, "Vec"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `w` [INFO] [stderr] --> src/ast.rs:4:19 [INFO] [stderr] | [INFO] [stderr] 4 | fn gen(&self, w: &mut Write) {} [INFO] [stderr] | ^ help: consider using `_w` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `w` [INFO] [stderr] --> src/ast.rs:195:19 [INFO] [stderr] | [INFO] [stderr] 195 | fn gen(&self, w: &mut Write) {} [INFO] [stderr] | ^ help: consider using `_w` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/generator.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | Err(err) => return "Error opening the input .thrift file." [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/generator.rs:26:27 [INFO] [stderr] | [INFO] [stderr] 26 | IResult::Done(i, o) => println!("Done parsing."), [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `o` [INFO] [stderr] --> src/generator.rs:26:30 [INFO] [stderr] | [INFO] [stderr] 26 | IResult::Done(i, o) => println!("Done parsing."), [INFO] [stderr] | ^ help: consider using `_o` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `output` [INFO] [stderr] --> src/generator.rs:15:28 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn run(path: &str, output: &str) -> &'static str { [INFO] [stderr] | ^^^^^^ help: consider using `_output` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/lib.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | fn from(err: string::FromUtf8Error) -> ThriftCompilerError { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | IResult::Done(i, nodes) => { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/lib.rs:62:28 [INFO] [stderr] | [INFO] [stderr] 62 | IResult::Error(err) => { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:233:32 [INFO] [stderr] | [INFO] [stderr] 233 | &Ty::Signed16 => { write!(w, "i16"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:234:32 [INFO] [stderr] | [INFO] [stderr] 234 | &Ty::Signed32 => { write!(w, "i32"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:235:32 [INFO] [stderr] | [INFO] [stderr] 235 | &Ty::Signed64 => { write!(w, "i64"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:236:28 [INFO] [stderr] | [INFO] [stderr] 236 | &Ty::Bool => { write!(w, "bool"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:238:17 [INFO] [stderr] | [INFO] [stderr] 238 | write!(w, "Vec<"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:240:17 [INFO] [stderr] | [INFO] [stderr] 240 | write!(w, ">"); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | write!(w, "HashMap<"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:245:17 [INFO] [stderr] | [INFO] [stderr] 245 | write!(w, ", "); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:247:17 [INFO] [stderr] | [INFO] [stderr] 247 | write!(w, ">"); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:257:9 [INFO] [stderr] | [INFO] [stderr] 257 | write!(w, "{}: ", self.ident.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:260:13 [INFO] [stderr] | [INFO] [stderr] 260 | write!(w, "Option<"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | write!(w, ">"); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | write!(w, ",\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/generator.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | file.read_to_string(&mut input); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | let mut s = Ty::String; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:290:13 [INFO] [stderr] | [INFO] [stderr] 290 | let mut s = Ty::Void; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:298:13 [INFO] [stderr] | [INFO] [stderr] 298 | let mut s = Ty::Bool; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:306:13 [INFO] [stderr] | [INFO] [stderr] 306 | let mut s = Ty::Signed16; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:314:13 [INFO] [stderr] | [INFO] [stderr] 314 | let mut s = Ty::Signed32; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:322:13 [INFO] [stderr] | [INFO] [stderr] 322 | let mut s = Ty::Signed64; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:330:13 [INFO] [stderr] | [INFO] [stderr] 330 | let mut s = Ty::Byte; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:338:13 [INFO] [stderr] | [INFO] [stderr] 338 | let mut s = Ty::Binary; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:346:13 [INFO] [stderr] | [INFO] [stderr] 346 | let mut s = Ty::List(Box::new(Ty::String)); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:354:13 [INFO] [stderr] | [INFO] [stderr] 354 | let mut s = Ty::Map(Box::new(Ty::String), Box::new(Ty::String)); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:362:13 [INFO] [stderr] | [INFO] [stderr] 362 | let mut s = StructFieldNode { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:375:13 [INFO] [stderr] | [INFO] [stderr] 375 | let mut s = StructFieldNode { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:388:13 [INFO] [stderr] | [INFO] [stderr] 388 | let mut field = StructFieldNode { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:394:13 [INFO] [stderr] | [INFO] [stderr] 394 | let mut s = StructNode { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:407:13 [INFO] [stderr] | [INFO] [stderr] 407 | let mut field1 = StructFieldNode { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:414:13 [INFO] [stderr] | [INFO] [stderr] 414 | let mut field2 = StructFieldNode { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ast.rs:421:13 [INFO] [stderr] | [INFO] [stderr] 421 | let mut s = StructNode { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eof` [INFO] [stderr] --> src/parser.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | fn eof(input:&[u8]) -> IResult<&[u8], &[u8]> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `namespace` [INFO] [stderr] --> src/parser.rs:60:1 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn namespace<'a>(input:&'a [u8]) -> IResult<&'a [u8], &'a [u8]> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Parser` [INFO] [stderr] --> src/parser.rs:214:1 [INFO] [stderr] | [INFO] [stderr] 214 | pub struct Parser<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `input` [INFO] [stderr] --> src/generator.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | input: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `output` [INFO] [stderr] --> src/generator.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | output: Option [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser.rs:33:8 [INFO] [stderr] | [INFO] [stderr] 33 | if input.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/parser.rs:60:1 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn namespace<'a>(input:&'a [u8]) -> IResult<&'a [u8], &'a [u8]> { [INFO] [stderr] 61 | | let input_length = input.input_len(); [INFO] [stderr] 62 | | if input_length == 0 { [INFO] [stderr] 63 | | return Error(Err::Position(ErrorKind::AlphaNumeric, input)); [INFO] [stderr] ... | [INFO] [stderr] 76 | | Done(&input[input_length..], input) [INFO] [stderr] 77 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/parser.rs:116:24 [INFO] [stderr] | [INFO] [stderr] 116 | || { Ty::parse(ty, generics.unwrap_or(Vec::new())) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `generics.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:234:63 [INFO] [stderr] | [INFO] [stderr] 234 | assert_eq!(parse_simple_type(b"void"), Done(&b""[..], format!("void"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"void".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:235:63 [INFO] [stderr] | [INFO] [stderr] 235 | assert_eq!(parse_simple_type(b"bool"), Done(&b""[..], format!("bool"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"bool".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:236:62 [INFO] [stderr] | [INFO] [stderr] 236 | assert_eq!(parse_simple_type(b"i16"), Done(&b""[..], format!("i16"))); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using .to_string(): `"i16".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:237:62 [INFO] [stderr] | [INFO] [stderr] 237 | assert_eq!(parse_simple_type(b"i32"), Done(&b""[..], format!("i32"))); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using .to_string(): `"i32".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:238:62 [INFO] [stderr] | [INFO] [stderr] 238 | assert_eq!(parse_simple_type(b"i64"), Done(&b""[..], format!("i64"))); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using .to_string(): `"i64".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:239:65 [INFO] [stderr] | [INFO] [stderr] 239 | assert_eq!(parse_simple_type(b"double"), Done(&b""[..], format!("double"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"double".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:240:65 [INFO] [stderr] | [INFO] [stderr] 240 | assert_eq!(parse_simple_type(b"binary"), Done(&b""[..], format!("binary"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"binary".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:241:65 [INFO] [stderr] | [INFO] [stderr] 241 | assert_eq!(parse_simple_type(b"string"), Done(&b""[..], format!("string"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"string".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:247:29 [INFO] [stderr] | [INFO] [stderr] 247 | lang: IdentNode(format!("rust")), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"rust".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:248:17 [INFO] [stderr] | [INFO] [stderr] 248 | ns: format!("Foobar") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:278:47 [INFO] [stderr] | [INFO] [stderr] 278 | let node = ServiceNode::new(IdentNode(format!("Foobar"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:285:47 [INFO] [stderr] | [INFO] [stderr] 285 | let node = ServiceNode::new(IdentNode(format!("Foobar"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:295:53 [INFO] [stderr] | [INFO] [stderr] 295 | let method = FunctionNode { name: IdentNode(format!("ping")), ret: Ty::Void }; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"ping".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:296:50 [INFO] [stderr] | [INFO] [stderr] 296 | let node = ServiceNode { name: IdentNode(format!("Foobar")), methods: vec![method] }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:328:30 [INFO] [stderr] | [INFO] [stderr] 328 | ident: IdentNode(format!("foobar")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:338:29 [INFO] [stderr] | [INFO] [stderr] 338 | name: IdentNode(format!("Foobar")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:350:29 [INFO] [stderr] | [INFO] [stderr] 350 | name: IdentNode(format!("Foobar")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:356:38 [INFO] [stderr] | [INFO] [stderr] 356 | ident: IdentNode(format!("name")) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"name".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:370:29 [INFO] [stderr] | [INFO] [stderr] 370 | name: IdentNode(format!("Foobar")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:376:38 [INFO] [stderr] | [INFO] [stderr] 376 | ident: IdentNode(format!("name")) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"name".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:383:38 [INFO] [stderr] | [INFO] [stderr] 383 | ident: IdentNode(format!("timestamp")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"timestamp".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:396:51 [INFO] [stderr] | [INFO] [stderr] 396 | let ping = FunctionNode { name: IdentNode(format!("ping")), ret: Ty::Void }; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"ping".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:397:51 [INFO] [stderr] | [INFO] [stderr] 397 | let pong = FunctionNode { name: IdentNode(format!("pong")), ret: Ty::Void }; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"pong".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser.rs:398:50 [INFO] [stderr] | [INFO] [stderr] 398 | let node = ServiceNode { name: IdentNode(format!("Foobar")), methods: vec![ping, pong] }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:36:20 [INFO] [stderr] | [INFO] [stderr] 36 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:43:20 [INFO] [stderr] | [INFO] [stderr] 43 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:50:20 [INFO] [stderr] | [INFO] [stderr] 50 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:57:20 [INFO] [stderr] | [INFO] [stderr] 57 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:64:20 [INFO] [stderr] | [INFO] [stderr] 64 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:71:20 [INFO] [stderr] | [INFO] [stderr] 71 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:78:20 [INFO] [stderr] | [INFO] [stderr] 78 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ast.rs:85:20 [INFO] [stderr] | [INFO] [stderr] 85 | if gens.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/ast.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 202 | / if &*self.lang.0 == "rust" { [INFO] [stderr] 203 | | true [INFO] [stderr] 204 | | } else { [INFO] [stderr] 205 | | false [INFO] [stderr] 206 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `&*self.lang.0 == "rust"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:214:9 [INFO] [stderr] | [INFO] [stderr] 214 | write!(w, "pub struct {} {{\n", self.name.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:218:13 [INFO] [stderr] | [INFO] [stderr] 218 | write!(w, " "); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:222:9 [INFO] [stderr] | [INFO] [stderr] 222 | write!(w, "}}\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:228:9 [INFO] [stderr] | [INFO] [stderr] 228 | / match self { [INFO] [stderr] 229 | | &Ty::String => { write!(w, "String"); }, [INFO] [stderr] 230 | | &Ty::Void => { write!(w, "()"); }, [INFO] [stderr] 231 | | &Ty::Byte => { write!(w, "i8"); }, [INFO] [stderr] ... | [INFO] [stderr] 249 | | _ => {} [INFO] [stderr] 250 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 228 | match *self { [INFO] [stderr] 229 | Ty::String => { write!(w, "String"); }, [INFO] [stderr] 230 | Ty::Void => { write!(w, "()"); }, [INFO] [stderr] 231 | Ty::Byte => { write!(w, "i8"); }, [INFO] [stderr] 232 | Ty::Binary => { write!(w, "Vec"); }, [INFO] [stderr] 233 | Ty::Signed16 => { write!(w, "i16"); }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:229:30 [INFO] [stderr] | [INFO] [stderr] 229 | &Ty::String => { write!(w, "String"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:230:28 [INFO] [stderr] | [INFO] [stderr] 230 | &Ty::Void => { write!(w, "()"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:231:28 [INFO] [stderr] | [INFO] [stderr] 231 | &Ty::Byte => { write!(w, "i8"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:232:30 [INFO] [stderr] | [INFO] [stderr] 232 | &Ty::Binary => { write!(w, "Vec"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:233:32 [INFO] [stderr] | [INFO] [stderr] 233 | &Ty::Signed16 => { write!(w, "i16"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:234:32 [INFO] [stderr] | [INFO] [stderr] 234 | &Ty::Signed32 => { write!(w, "i32"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:235:32 [INFO] [stderr] | [INFO] [stderr] 235 | &Ty::Signed64 => { write!(w, "i64"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:236:28 [INFO] [stderr] | [INFO] [stderr] 236 | &Ty::Bool => { write!(w, "bool"); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:238:17 [INFO] [stderr] | [INFO] [stderr] 238 | write!(w, "Vec<"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:240:17 [INFO] [stderr] | [INFO] [stderr] 240 | write!(w, ">"); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | write!(w, "HashMap<"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:245:17 [INFO] [stderr] | [INFO] [stderr] 245 | write!(w, ", "); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:247:17 [INFO] [stderr] | [INFO] [stderr] 247 | write!(w, ">"); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:257:9 [INFO] [stderr] | [INFO] [stderr] 257 | write!(w, "{}: ", self.ident.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:260:13 [INFO] [stderr] | [INFO] [stderr] 260 | write!(w, "Option<"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | write!(w, ">"); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/ast.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | write!(w, ",\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ast.rs:366:30 [INFO] [stderr] | [INFO] [stderr] 366 | ident: IdentNode(format!("foobar")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ast.rs:379:30 [INFO] [stderr] | [INFO] [stderr] 379 | ident: IdentNode(format!("foobar")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ast.rs:392:30 [INFO] [stderr] | [INFO] [stderr] 392 | ident: IdentNode(format!("foobar")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"foobar".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ast.rs:395:29 [INFO] [stderr] | [INFO] [stderr] 395 | name: IdentNode(format!("Ping")), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Ping".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ast.rs:411:30 [INFO] [stderr] | [INFO] [stderr] 411 | ident: IdentNode(format!("length")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"length".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ast.rs:418:30 [INFO] [stderr] | [INFO] [stderr] 418 | ident: IdentNode(format!("buffer")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"buffer".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ast.rs:422:29 [INFO] [stderr] | [INFO] [stderr] 422 | name: IdentNode(format!("Data")), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Data".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/generator.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | file.read_to_string(&mut input); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/namespace.rs:5:16 [INFO] [stderr] | [INFO] [stderr] 5 | pub const ns: &'static [u8] = b"namespace rust foobar\n"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/namespace.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | pub const ns_1: &'static [u8] = b" [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/namespace.rs:9:18 [INFO] [stderr] | [INFO] [stderr] 9 | pub const ns_2: &'static [u8] = b" [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/namespace.rs:12:19 [INFO] [stderr] | [INFO] [stderr] 12 | pub const empty: &'static [u8] = b""; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> tests/namespace.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 17 | let r = ThriftCompiler::run(empty).unwrap(); [INFO] [stderr] | ^ help: consider using `_r` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/struct.rs:5:19 [INFO] [stderr] | [INFO] [stderr] 5 | pub const empty: &'static [u8] = b" [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/struct.rs:10:23 [INFO] [stderr] | [INFO] [stderr] 10 | pub const empty_gen: &'static str = "pub struct Ping { [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/struct.rs:14:19 [INFO] [stderr] | [INFO] [stderr] 14 | pub const field: &'static [u8] = b" [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> tests/struct.rs:21:23 [INFO] [stderr] | [INFO] [stderr] 21 | pub const field_gen: &'static str = "pub struct Ping { [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: constant `ns` should have an upper case name such as `NS` [INFO] [stderr] --> tests/namespace.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub const ns: &'static [u8] = b"namespace rust foobar\n"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant `ns_1` should have an upper case name such as `NS_1` [INFO] [stderr] --> tests/namespace.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | / pub const ns_1: &'static [u8] = b" [INFO] [stderr] 7 | | namespace rust foobar\n [INFO] [stderr] 8 | | "; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: constant `ns_2` should have an upper case name such as `NS_2` [INFO] [stderr] --> tests/namespace.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | / pub const ns_2: &'static [u8] = b" [INFO] [stderr] 10 | | namespace rust foobar\n [INFO] [stderr] 11 | | "; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: constant `empty` should have an upper case name such as `EMPTY` [INFO] [stderr] --> tests/namespace.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub const empty: &'static [u8] = b""; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `empty` should have an upper case name such as `EMPTY` [INFO] [stderr] --> tests/struct.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | / pub const empty: &'static [u8] = b" [INFO] [stderr] 6 | | namespace rust ping [INFO] [stderr] 7 | | struct Ping {} [INFO] [stderr] 8 | | "; [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant `empty_gen` should have an upper case name such as `EMPTY_GEN` [INFO] [stderr] --> tests/struct.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | / pub const empty_gen: &'static str = "pub struct Ping { [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | "; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: constant `field` should have an upper case name such as `FIELD` [INFO] [stderr] --> tests/struct.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | / pub const field: &'static [u8] = b" [INFO] [stderr] 15 | | namespace rust ping [INFO] [stderr] 16 | | struct Ping { [INFO] [stderr] 17 | | 1: required string foobar; [INFO] [stderr] 18 | | } [INFO] [stderr] 19 | | "; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: constant `field_gen` should have an upper case name such as `FIELD_GEN` [INFO] [stderr] --> tests/struct.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | / pub const field_gen: &'static str = "pub struct Ping { [INFO] [stderr] 22 | | foobar: String, [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | "; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/bin/thrust.rs:8:15 [INFO] [stderr] | [INFO] [stderr] 8 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/bin/thrust.rs:8:15 [INFO] [stderr] | [INFO] [stderr] 8 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 6.09s [INFO] running `"docker" "inspect" "0d9267a3089c599d467e65ec461f0b239dd7c258cfb1cd58c1403950c46c8dd4"` [INFO] running `"docker" "rm" "-f" "0d9267a3089c599d467e65ec461f0b239dd7c258cfb1cd58c1403950c46c8dd4"` [INFO] [stdout] 0d9267a3089c599d467e65ec461f0b239dd7c258cfb1cd58c1403950c46c8dd4