[INFO] crate protoparse 0.0.4 is already in cache [INFO] extracting crate protoparse 0.0.4 into work/ex/clippy-test-run/sources/stable/reg/protoparse/0.0.4 [INFO] extracting crate protoparse 0.0.4 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/protoparse/0.0.4 [INFO] validating manifest of protoparse-0.0.4 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 protoparse-0.0.4 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 protoparse-0.0.4 [INFO] finished frobbing protoparse-0.0.4 [INFO] frobbed toml for protoparse-0.0.4 written to work/ex/clippy-test-run/sources/stable/reg/protoparse/0.0.4/Cargo.toml [INFO] started frobbing protoparse-0.0.4 [INFO] finished frobbing protoparse-0.0.4 [INFO] frobbed toml for protoparse-0.0.4 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/protoparse/0.0.4/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 protoparse-0.0.4 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/protoparse/0.0.4:/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] e661936b92fde7eb39e97845f4a2db6b9bbcb7b522487aa95df222821fd49006 [INFO] running `"docker" "start" "-a" "e661936b92fde7eb39e97845f4a2db6b9bbcb7b522487aa95df222821fd49006"` [INFO] [stderr] Checking protoparse v0.0.4 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:96:23 [INFO] [stderr] | [INFO] [stderr] 96 | return Ok(Package{full_ident: full_ident}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `full_ident` [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/parser.rs:145:25 [INFO] [stderr] | [INFO] [stderr] 145 | return Ok(FullIdent{idents: idents}); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `idents` [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/parser.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 155 | constant: constant [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `constant` [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/parser.rs:223:23 [INFO] [stderr] | [INFO] [stderr] 223 | return Ok(Service{name: name, rpcs}); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parser.rs:96:23 [INFO] [stderr] | [INFO] [stderr] 96 | return Ok(Package{full_ident: full_ident}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `full_ident` [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/parser.rs:145:25 [INFO] [stderr] | [INFO] [stderr] 145 | return Ok(FullIdent{idents: idents}); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `idents` [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/parser.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 155 | constant: constant [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `constant` [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/parser.rs:223:23 [INFO] [stderr] | [INFO] [stderr] 223 | return Ok(Service{name: name, rpcs}); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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: unneeded return statement [INFO] [stderr] --> src/parser.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | return Ok(def); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(def)` [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/parser.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | return parse(&buffer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `parse(&buffer)` [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/parser.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | return Ok(Syntax::V3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Syntax::V3)` [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/parser.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | return Ok(Import{import_type, name}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Import{import_type, name})` [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/parser.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | return Ok(Package{full_ident: full_ident}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Package{full_ident: full_ident})` [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/parser.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | return Ok(FullIdent{idents: idents}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(FullIdent{idents: idents})` [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/parser.rs:153:5 [INFO] [stderr] | [INFO] [stderr] 153 | / return Ok(ProtoOption{ [INFO] [stderr] 154 | | full_ident: ident, [INFO] [stderr] 155 | | constant: constant [INFO] [stderr] 156 | | }); [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] 153 | Ok(ProtoOption{ [INFO] [stderr] 154 | full_ident: ident, [INFO] [stderr] 155 | constant: constant [INFO] [stderr] 156 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:165:13 [INFO] [stderr] | [INFO] [stderr] 165 | return Ok(ConstantValue::StringValue(s)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantValue::StringValue(s))` [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/parser.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | return Ok(ConstantValue::NumberValue(d as f32)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantValue::NumberValue(d as f32))` [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/parser.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | return Ok(ConstantValue::BoolValue(b)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantValue::BoolValue(b))` [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/parser.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | return err("unexepected token in constant identifier") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `err("unexepected token in constant identifier")` [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/parser.rs:189:41 [INFO] [stderr] | [INFO] [stderr] 189 | Token::DecimalLit(d) => return Ok(ConstantValue::NumberValue(d as f32)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantValue::NumberValue(d as f32))` [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/parser.rs:196:41 [INFO] [stderr] | [INFO] [stderr] 196 | Token::DecimalLit(d) => return Ok(ConstantValue::NumberValue(-(d as f32))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantValue::NumberValue(-(d as f32)))` [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/parser.rs:223:5 [INFO] [stderr] | [INFO] [stderr] 223 | return Ok(Service{name: name, rpcs}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Service{name: name, rpcs})` [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/parser.rs:245:5 [INFO] [stderr] | [INFO] [stderr] 245 | return Ok(Rpc{name, request_type: req_message_type, response_type: resp_message_type }); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Rpc{name, request_type: req_message_type, response_type: resp_message_type })` [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/parser.rs:258:5 [INFO] [stderr] | [INFO] [stderr] 258 | return Ok(Message{name, fields}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Message{name, fields})` [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/parser.rs:273:5 [INFO] [stderr] | [INFO] [stderr] 273 | return Ok(Field{name, field_type, repeated, field_number}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Field{name, field_type, repeated, field_number})` [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/parser.rs:330:5 [INFO] [stderr] | [INFO] [stderr] 330 | return Ok(next); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(next)` [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/scanner.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | / return c == '{' || [INFO] [stderr] 108 | | c == '}' || [INFO] [stderr] 109 | | c == '[' || [INFO] [stderr] 110 | | c == ']' || [INFO] [stderr] ... | [INFO] [stderr] 119 | | c == '+' || [INFO] [stderr] 120 | | c == '-'; [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] 107 | c == '{' || [INFO] [stderr] 108 | c == '}' || [INFO] [stderr] 109 | c == '[' || [INFO] [stderr] 110 | c == ']' || [INFO] [stderr] 111 | c == '(' || [INFO] [stderr] 112 | c == ')' || [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/scanner.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | return Scanner{buf: buffer.chars().peekable()}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Scanner{buf: buffer.chars().peekable()}` [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/scanner.rs:224:9 [INFO] [stderr] | [INFO] [stderr] 224 | return Ok(Token::Ident(token)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Token::Ident(token))` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/scanner.rs:170:28 [INFO] [stderr] | [INFO] [stderr] 170 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 171 | | if token.len() == 0 { [INFO] [stderr] 172 | | match c { [INFO] [stderr] 173 | | '/' => {self.unread_line_comment(); continue}, [INFO] [stderr] ... | [INFO] [stderr] 202 | | } [INFO] [stderr] 203 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 170 | } else if token.len() == 0 { [INFO] [stderr] 171 | match c { [INFO] [stderr] 172 | '/' => {self.unread_line_comment(); continue}, [INFO] [stderr] 173 | '{' => {self.buf.next(); return Ok(Token::LCurly)}, [INFO] [stderr] 174 | '}' => {self.buf.next(); return Ok(Token::RCurly)}, [INFO] [stderr] 175 | '=' => {self.buf.next(); return Ok(Token::Eq)}, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/scanner.rs:195:32 [INFO] [stderr] | [INFO] [stderr] 195 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 196 | | if c.is_whitespace() || non_ident_char(c) { [INFO] [stderr] 197 | | break; [INFO] [stderr] 198 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 201 | | } [INFO] [stderr] 202 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 195 | } else if c.is_whitespace() || non_ident_char(c) { [INFO] [stderr] 196 | break; [INFO] [stderr] 197 | } else { [INFO] [stderr] 198 | token.push(c); [INFO] [stderr] 199 | self.buf.next(); [INFO] [stderr] 200 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ast.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | return FullIdent{idents: v}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FullIdent{idents: v}` [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/ast.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | / return ProtoDef{ [INFO] [stderr] 113 | | syntax: syn, [INFO] [stderr] 114 | | imports: Vec::new(), [INFO] [stderr] 115 | | packages: Vec::new(), [INFO] [stderr] ... | [INFO] [stderr] 118 | | messages: Vec::new(), [INFO] [stderr] 119 | | }; [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] 112 | ProtoDef{ [INFO] [stderr] 113 | syntax: syn, [INFO] [stderr] 114 | imports: Vec::new(), [INFO] [stderr] 115 | packages: Vec::new(), [INFO] [stderr] 116 | options: Vec::new(), [INFO] [stderr] 117 | services: Vec::new(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/error.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | return Err(ProtoParseError{message: message.to_string()}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ProtoParseError{message: message.to_string()})` [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/parser.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | return Ok(def); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(def)` [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/parser.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | return parse(&buffer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `parse(&buffer)` [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/parser.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | return Ok(Syntax::V3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Syntax::V3)` [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/parser.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | return Ok(Import{import_type, name}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Import{import_type, name})` [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/parser.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | return Ok(Package{full_ident: full_ident}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Package{full_ident: full_ident})` [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/parser.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | return Ok(FullIdent{idents: idents}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(FullIdent{idents: idents})` [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/parser.rs:153:5 [INFO] [stderr] | [INFO] [stderr] 153 | / return Ok(ProtoOption{ [INFO] [stderr] 154 | | full_ident: ident, [INFO] [stderr] 155 | | constant: constant [INFO] [stderr] 156 | | }); [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] 153 | Ok(ProtoOption{ [INFO] [stderr] 154 | full_ident: ident, [INFO] [stderr] 155 | constant: constant [INFO] [stderr] 156 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:165:13 [INFO] [stderr] | [INFO] [stderr] 165 | return Ok(ConstantValue::StringValue(s)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantValue::StringValue(s))` [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/parser.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | return Ok(ConstantValue::NumberValue(d as f32)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantValue::NumberValue(d as f32))` [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/parser.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | return Ok(ConstantValue::BoolValue(b)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantValue::BoolValue(b))` [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/parser.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | return err("unexepected token in constant identifier") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `err("unexepected token in constant identifier")` [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/parser.rs:189:41 [INFO] [stderr] | [INFO] [stderr] 189 | Token::DecimalLit(d) => return Ok(ConstantValue::NumberValue(d as f32)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantValue::NumberValue(d as f32))` [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/parser.rs:196:41 [INFO] [stderr] | [INFO] [stderr] 196 | Token::DecimalLit(d) => return Ok(ConstantValue::NumberValue(-(d as f32))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(ConstantValue::NumberValue(-(d as f32)))` [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/parser.rs:223:5 [INFO] [stderr] | [INFO] [stderr] 223 | return Ok(Service{name: name, rpcs}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Service{name: name, rpcs})` [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/parser.rs:245:5 [INFO] [stderr] | [INFO] [stderr] 245 | return Ok(Rpc{name, request_type: req_message_type, response_type: resp_message_type }); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Rpc{name, request_type: req_message_type, response_type: resp_message_type })` [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/parser.rs:258:5 [INFO] [stderr] | [INFO] [stderr] 258 | return Ok(Message{name, fields}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Message{name, fields})` [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/parser.rs:273:5 [INFO] [stderr] | [INFO] [stderr] 273 | return Ok(Field{name, field_type, repeated, field_number}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Field{name, field_type, repeated, field_number})` [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/parser.rs:330:5 [INFO] [stderr] | [INFO] [stderr] 330 | return Ok(next); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(next)` [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/scanner.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | / return c == '{' || [INFO] [stderr] 108 | | c == '}' || [INFO] [stderr] 109 | | c == '[' || [INFO] [stderr] 110 | | c == ']' || [INFO] [stderr] ... | [INFO] [stderr] 119 | | c == '+' || [INFO] [stderr] 120 | | c == '-'; [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] 107 | c == '{' || [INFO] [stderr] 108 | c == '}' || [INFO] [stderr] 109 | c == '[' || [INFO] [stderr] 110 | c == ']' || [INFO] [stderr] 111 | c == '(' || [INFO] [stderr] 112 | c == ')' || [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/scanner.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | return Scanner{buf: buffer.chars().peekable()}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Scanner{buf: buffer.chars().peekable()}` [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/scanner.rs:224:9 [INFO] [stderr] | [INFO] [stderr] 224 | return Ok(Token::Ident(token)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Token::Ident(token))` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/scanner.rs:170:28 [INFO] [stderr] | [INFO] [stderr] 170 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 171 | | if token.len() == 0 { [INFO] [stderr] 172 | | match c { [INFO] [stderr] 173 | | '/' => {self.unread_line_comment(); continue}, [INFO] [stderr] ... | [INFO] [stderr] 202 | | } [INFO] [stderr] 203 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 170 | } else if token.len() == 0 { [INFO] [stderr] 171 | match c { [INFO] [stderr] 172 | '/' => {self.unread_line_comment(); continue}, [INFO] [stderr] 173 | '{' => {self.buf.next(); return Ok(Token::LCurly)}, [INFO] [stderr] 174 | '}' => {self.buf.next(); return Ok(Token::RCurly)}, [INFO] [stderr] 175 | '=' => {self.buf.next(); return Ok(Token::Eq)}, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/scanner.rs:195:32 [INFO] [stderr] | [INFO] [stderr] 195 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 196 | | if c.is_whitespace() || non_ident_char(c) { [INFO] [stderr] 197 | | break; [INFO] [stderr] 198 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 201 | | } [INFO] [stderr] 202 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 195 | } else if c.is_whitespace() || non_ident_char(c) { [INFO] [stderr] 196 | break; [INFO] [stderr] 197 | } else { [INFO] [stderr] 198 | token.push(c); [INFO] [stderr] 199 | self.buf.next(); [INFO] [stderr] 200 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ast.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | return FullIdent{idents: v}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FullIdent{idents: v}` [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/ast.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | / return ProtoDef{ [INFO] [stderr] 113 | | syntax: syn, [INFO] [stderr] 114 | | imports: Vec::new(), [INFO] [stderr] 115 | | packages: Vec::new(), [INFO] [stderr] ... | [INFO] [stderr] 118 | | messages: Vec::new(), [INFO] [stderr] 119 | | }; [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] 112 | ProtoDef{ [INFO] [stderr] 113 | syntax: syn, [INFO] [stderr] 114 | imports: Vec::new(), [INFO] [stderr] 115 | packages: Vec::new(), [INFO] [stderr] 116 | options: Vec::new(), [INFO] [stderr] 117 | services: Vec::new(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/error.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | return Err(ProtoParseError{message: message.to_string()}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ProtoParseError{message: message.to_string()})` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/parser.rs:9:22 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn parse(buffer: &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/parser.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | / let mut ident_term = term_token.clone(); [INFO] [stderr] 120 | | if rparen { [INFO] [stderr] 121 | | ident_term = Token::RParen; [INFO] [stderr] 122 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let ident_term = if rparen { Token::RParen } else { term_token.clone() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:66:20 [INFO] [stderr] | [INFO] [stderr] 66 | map.insert("syntax".into(), Token::Syntax); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"syntax"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:67:20 [INFO] [stderr] | [INFO] [stderr] 67 | map.insert("import".into(), Token::Import); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"import"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:68:20 [INFO] [stderr] | [INFO] [stderr] 68 | map.insert("package".into(), Token::Package); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"package"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:69:20 [INFO] [stderr] | [INFO] [stderr] 69 | map.insert("service".into(), Token::Service); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"service"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:70:20 [INFO] [stderr] | [INFO] [stderr] 70 | map.insert("rpc".into(), Token::Rpc); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `"rpc"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:71:20 [INFO] [stderr] | [INFO] [stderr] 71 | map.insert("returns".into(), Token::Returns); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"returns"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:72:20 [INFO] [stderr] | [INFO] [stderr] 72 | map.insert("message".into(), Token::Message); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"message"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:73:20 [INFO] [stderr] | [INFO] [stderr] 73 | map.insert("public".into(), Token::Public); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"public"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | map.insert("weak".into(), Token::Weak); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `"weak"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:75:20 [INFO] [stderr] | [INFO] [stderr] 75 | map.insert("option".into(), Token::Option); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"option"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:76:20 [INFO] [stderr] | [INFO] [stderr] 76 | map.insert("enum".into(), Token::Enum); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `"enum"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:77:20 [INFO] [stderr] | [INFO] [stderr] 77 | map.insert("true".into(), Token::BoolLit(true)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `"true"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:78:20 [INFO] [stderr] | [INFO] [stderr] 78 | map.insert("false".into(), Token::BoolLit(false)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `.into()`: `"false"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:79:20 [INFO] [stderr] | [INFO] [stderr] 79 | map.insert("map".into(), Token::Map); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `"map"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:80:20 [INFO] [stderr] | [INFO] [stderr] 80 | map.insert("repeated".into(), Token::Repeated); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"repeated"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:82:20 [INFO] [stderr] | [INFO] [stderr] 82 | map.insert("double".into(), Token::TDouble); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"double"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:83:20 [INFO] [stderr] | [INFO] [stderr] 83 | map.insert("float".into(), Token::TFloat); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `.into()`: `"float"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:84:20 [INFO] [stderr] | [INFO] [stderr] 84 | map.insert("int32".into(), Token::TInt32); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `.into()`: `"int32"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:85:20 [INFO] [stderr] | [INFO] [stderr] 85 | map.insert("int64".into(), Token::TInt64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `.into()`: `"int64"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:86:20 [INFO] [stderr] | [INFO] [stderr] 86 | map.insert("uint32".into(), Token::TUint32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"uint32"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:87:20 [INFO] [stderr] | [INFO] [stderr] 87 | map.insert("uint64".into(), Token::TUint64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"uint64"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:88:20 [INFO] [stderr] | [INFO] [stderr] 88 | map.insert("sint32".into(), Token::TSint32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"sint32"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:89:20 [INFO] [stderr] | [INFO] [stderr] 89 | map.insert("sint64".into(), Token::TSint64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"sint64"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:90:20 [INFO] [stderr] | [INFO] [stderr] 90 | map.insert("fixed32".into(), Token::TFixed32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"fixed32"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:91:20 [INFO] [stderr] | [INFO] [stderr] 91 | map.insert("fixed64".into(), Token::TFixed64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"fixed64"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:92:20 [INFO] [stderr] | [INFO] [stderr] 92 | map.insert("sfixed32".into(), Token::TSfixed32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"sfixed32"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:93:20 [INFO] [stderr] | [INFO] [stderr] 93 | map.insert("sfixed64".into(), Token::TSfixed64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"sfixed64"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:94:20 [INFO] [stderr] | [INFO] [stderr] 94 | map.insert("bool".into(), Token::TBool); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `"bool"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:95:20 [INFO] [stderr] | [INFO] [stderr] 95 | map.insert("string".into(), Token::TString); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"string"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:96:20 [INFO] [stderr] | [INFO] [stderr] 96 | map.insert("bytes".into(), Token::TBytes); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `.into()`: `"bytes"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/scanner.rs:125:24 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn new(buffer: &'a String) -> Scanner<'a> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/scanner.rs:137:24 [INFO] [stderr] | [INFO] [stderr] 137 | let peek = self.buf.peek().map(|c| *c); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.buf.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/scanner.rs:171:28 [INFO] [stderr] | [INFO] [stderr] 171 | if token.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `token.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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/scanner.rs:229:24 [INFO] [stderr] | [INFO] [stderr] 229 | let peek = self.buf.peek().map(|c| *c); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.buf.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/scanner.rs:245:24 [INFO] [stderr] | [INFO] [stderr] 245 | let peek = self.buf.peek().map(|c| *c); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.buf.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/parser.rs:9:22 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn parse(buffer: &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/parser.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | / let mut ident_term = term_token.clone(); [INFO] [stderr] 120 | | if rparen { [INFO] [stderr] 121 | | ident_term = Token::RParen; [INFO] [stderr] 122 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let ident_term = if rparen { Token::RParen } else { term_token.clone() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:66:20 [INFO] [stderr] | [INFO] [stderr] 66 | map.insert("syntax".into(), Token::Syntax); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"syntax"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:67:20 [INFO] [stderr] | [INFO] [stderr] 67 | map.insert("import".into(), Token::Import); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"import"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:68:20 [INFO] [stderr] | [INFO] [stderr] 68 | map.insert("package".into(), Token::Package); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"package"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:69:20 [INFO] [stderr] | [INFO] [stderr] 69 | map.insert("service".into(), Token::Service); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"service"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:70:20 [INFO] [stderr] | [INFO] [stderr] 70 | map.insert("rpc".into(), Token::Rpc); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `"rpc"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:71:20 [INFO] [stderr] | [INFO] [stderr] 71 | map.insert("returns".into(), Token::Returns); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"returns"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:72:20 [INFO] [stderr] | [INFO] [stderr] 72 | map.insert("message".into(), Token::Message); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"message"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:73:20 [INFO] [stderr] | [INFO] [stderr] 73 | map.insert("public".into(), Token::Public); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"public"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | map.insert("weak".into(), Token::Weak); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `"weak"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:75:20 [INFO] [stderr] | [INFO] [stderr] 75 | map.insert("option".into(), Token::Option); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"option"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:76:20 [INFO] [stderr] | [INFO] [stderr] 76 | map.insert("enum".into(), Token::Enum); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `"enum"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:77:20 [INFO] [stderr] | [INFO] [stderr] 77 | map.insert("true".into(), Token::BoolLit(true)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `"true"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:78:20 [INFO] [stderr] | [INFO] [stderr] 78 | map.insert("false".into(), Token::BoolLit(false)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `.into()`: `"false"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:79:20 [INFO] [stderr] | [INFO] [stderr] 79 | map.insert("map".into(), Token::Map); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `"map"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:80:20 [INFO] [stderr] | [INFO] [stderr] 80 | map.insert("repeated".into(), Token::Repeated); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"repeated"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:82:20 [INFO] [stderr] | [INFO] [stderr] 82 | map.insert("double".into(), Token::TDouble); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"double"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:83:20 [INFO] [stderr] | [INFO] [stderr] 83 | map.insert("float".into(), Token::TFloat); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `.into()`: `"float"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:84:20 [INFO] [stderr] | [INFO] [stderr] 84 | map.insert("int32".into(), Token::TInt32); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `.into()`: `"int32"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:85:20 [INFO] [stderr] | [INFO] [stderr] 85 | map.insert("int64".into(), Token::TInt64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `.into()`: `"int64"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:86:20 [INFO] [stderr] | [INFO] [stderr] 86 | map.insert("uint32".into(), Token::TUint32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"uint32"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:87:20 [INFO] [stderr] | [INFO] [stderr] 87 | map.insert("uint64".into(), Token::TUint64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"uint64"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:88:20 [INFO] [stderr] | [INFO] [stderr] 88 | map.insert("sint32".into(), Token::TSint32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"sint32"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:89:20 [INFO] [stderr] | [INFO] [stderr] 89 | map.insert("sint64".into(), Token::TSint64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"sint64"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:90:20 [INFO] [stderr] | [INFO] [stderr] 90 | map.insert("fixed32".into(), Token::TFixed32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"fixed32"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:91:20 [INFO] [stderr] | [INFO] [stderr] 91 | map.insert("fixed64".into(), Token::TFixed64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"fixed64"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:92:20 [INFO] [stderr] | [INFO] [stderr] 92 | map.insert("sfixed32".into(), Token::TSfixed32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"sfixed32"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:93:20 [INFO] [stderr] | [INFO] [stderr] 93 | map.insert("sfixed64".into(), Token::TSfixed64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"sfixed64"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:94:20 [INFO] [stderr] | [INFO] [stderr] 94 | map.insert("bool".into(), Token::TBool); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `"bool"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:95:20 [INFO] [stderr] | [INFO] [stderr] 95 | map.insert("string".into(), Token::TString); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"string"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/scanner.rs:96:20 [INFO] [stderr] | [INFO] [stderr] 96 | map.insert("bytes".into(), Token::TBytes); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `.into()`: `"bytes"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/scanner.rs:125:24 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn new(buffer: &'a String) -> Scanner<'a> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/scanner.rs:137:24 [INFO] [stderr] | [INFO] [stderr] 137 | let peek = self.buf.peek().map(|c| *c); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.buf.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/scanner.rs:171:28 [INFO] [stderr] | [INFO] [stderr] 171 | if token.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `token.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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/scanner.rs:229:24 [INFO] [stderr] | [INFO] [stderr] 229 | let peek = self.buf.peek().map(|c| *c); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.buf.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/scanner.rs:245:24 [INFO] [stderr] | [INFO] [stderr] 245 | let peek = self.buf.peek().map(|c| *c); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.buf.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> tests/scanner.rs:74:1 [INFO] [stderr] | [INFO] [stderr] 74 | / fn should_scan_enum() { [INFO] [stderr] 75 | | let input = "enum EnumAllowingAlias { option allow_alias = true; UNKNOWN = 0; STARTED = 1; RUNNING = 2 [(custom_option) = \"hello world\"]}".to_string(); [INFO] [stderr] 76 | | let mut scanner = Scanner::new(&input); [INFO] [stderr] 77 | | [INFO] [stderr] ... | [INFO] [stderr] 105 | | assert_eq!(scanner.next_token(), Ok(Token::EOF)); [INFO] [stderr] 106 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 34 [INFO] [stderr] --> tests/scanner.rs:109:1 [INFO] [stderr] | [INFO] [stderr] 109 | / fn should_scan_message() { [INFO] [stderr] 110 | | let input = "message Outer { option (my_option).a = true; [INFO] [stderr] 111 | | message Inner { // Level 2 [INFO] [stderr] 112 | | int64 ival = 1; [INFO] [stderr] ... | [INFO] [stderr] 152 | | assert_eq!(scanner.next_token(), Ok(Token::EOF)); [INFO] [stderr] 153 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> tests/parser.rs:364:5 [INFO] [stderr] | [INFO] [stderr] 364 | return "syntax = \"proto3\";".to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"syntax = \"proto3\";".to_string()` [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] Finished dev [unoptimized + debuginfo] target(s) in 5.28s [INFO] running `"docker" "inspect" "e661936b92fde7eb39e97845f4a2db6b9bbcb7b522487aa95df222821fd49006"` [INFO] running `"docker" "rm" "-f" "e661936b92fde7eb39e97845f4a2db6b9bbcb7b522487aa95df222821fd49006"` [INFO] [stdout] e661936b92fde7eb39e97845f4a2db6b9bbcb7b522487aa95df222821fd49006