[INFO] fetching crate whoiz 0.1.0... [INFO] checking whoiz-0.1.0 against try#ea663bba38739867a4b75ac820991b4f5d093c3b for pr-62262-1 [INFO] extracting crate whoiz 0.1.0 into /workspace/builds/worker-3/source [INFO] validating manifest of crates.io crate whoiz 0.1.0 on toolchain ea663bba38739867a4b75ac820991b4f5d093c3b [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking crates.io crate whoiz 0.1.0 [INFO] finished tweaking crates.io crate whoiz 0.1.0 [INFO] tweaked toml for crates.io crate whoiz 0.1.0 written to /workspace/builds/worker-3/source/Cargo.toml [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 61ba61b35fac498c858e89f9f777342e7319dccd9a4d1dc9244893337efc6c41 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `"docker" "start" "-a" "61ba61b35fac498c858e89f9f777342e7319dccd9a4d1dc9244893337efc6c41"` [INFO] [stderr] Checking resolve v0.2.0 [INFO] [stderr] Checking whoiz v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ip_map.rs:39:41 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn whois_server(ip: &IpAddr) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ip_map.rs:45:49 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn whois_server_ipv6(_ip: &Ipv6Addr) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ip_map.rs:49:48 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn whois_server_ipv4(ip: &Ipv4Addr) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:39:36 [INFO] [stderr] | [INFO] [stderr] 39 | fn fetch_with_referrals(fetch_fn: &Fn(&IpAddr,&Option>) -> Result>, ip: &IpAddr) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(&IpAddr,&Option>) -> Result>` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:39:59 [INFO] [stderr] | [INFO] [stderr] 39 | fn fetch_with_referrals(fetch_fn: &Fn(&IpAddr,&Option>) -> Result>, ip: &IpAddr) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:39:96 [INFO] [stderr] | [INFO] [stderr] 39 | fn fetch_with_referrals(fetch_fn: &Fn(&IpAddr,&Option>) -> Result>, ip: &IpAddr) -> Result { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:44:34 [INFO] [stderr] | [INFO] [stderr] 44 | let mut referral: Option> = None; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:47:60 [INFO] [stderr] | [INFO] [stderr] 47 | fn search_referral (text: &str, found: &mut Option>) { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:81:49 [INFO] [stderr] | [INFO] [stderr] 81 | fn _fetch_ip(ip: &IpAddr, srv_kind: &Option>) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:81:86 [INFO] [stderr] | [INFO] [stderr] 81 | fn _fetch_ip(ip: &IpAddr, srv_kind: &Option>) -> Result> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:84:18 [INFO] [stderr] | [INFO] [stderr] 84 | let srv: Box = match srv_kind { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: unused imports: `RirId`, `Rir` [INFO] [stderr] --> src/tests.rs:3:14 [INFO] [stderr] | [INFO] [stderr] 3 | use ip_map::{Rir,RirId}; [INFO] [stderr] | ^^^ ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `whois_server::WhoisServer` [INFO] [stderr] --> src/tests.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use whois_server::WhoisServer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `parser::WhoisData` [INFO] [stderr] --> src/tests.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use parser::WhoisData; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IpAddr`, `Ipv4Addr`, `Ipv6Addr` [INFO] [stderr] --> src/tests.rs:6:16 [INFO] [stderr] | [INFO] [stderr] 6 | use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/tests.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `query::fetch_ip` [INFO] [stderr] --> src/tests.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use query::fetch_ip; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser.rs:89:46 [INFO] [stderr] | [INFO] [stderr] 89 | pub fn get_referral(&self) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ip_map.rs:39:41 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn whois_server(ip: &IpAddr) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ip_map.rs:45:49 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn whois_server_ipv6(_ip: &Ipv6Addr) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ip_map.rs:49:48 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn whois_server_ipv4(ip: &Ipv4Addr) -> Box { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:39:36 [INFO] [stderr] | [INFO] [stderr] 39 | fn fetch_with_referrals(fetch_fn: &Fn(&IpAddr,&Option>) -> Result>, ip: &IpAddr) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(&IpAddr,&Option>) -> Result>` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:39:59 [INFO] [stderr] | [INFO] [stderr] 39 | fn fetch_with_referrals(fetch_fn: &Fn(&IpAddr,&Option>) -> Result>, ip: &IpAddr) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:39:96 [INFO] [stderr] | [INFO] [stderr] 39 | fn fetch_with_referrals(fetch_fn: &Fn(&IpAddr,&Option>) -> Result>, ip: &IpAddr) -> Result { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:44:34 [INFO] [stderr] | [INFO] [stderr] 44 | let mut referral: Option> = None; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:47:60 [INFO] [stderr] | [INFO] [stderr] 47 | fn search_referral (text: &str, found: &mut Option>) { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:81:49 [INFO] [stderr] | [INFO] [stderr] 81 | fn _fetch_ip(ip: &IpAddr, srv_kind: &Option>) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:81:86 [INFO] [stderr] | [INFO] [stderr] 81 | fn _fetch_ip(ip: &IpAddr, srv_kind: &Option>) -> Result> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/query.rs:84:18 [INFO] [stderr] | [INFO] [stderr] 84 | let srv: Box = match srv_kind { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Ipv4Addr`, `Ipv6Addr` [INFO] [stderr] --> src/tests.rs:6:24 [INFO] [stderr] | [INFO] [stderr] 6 | use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parser.rs:89:46 [INFO] [stderr] | [INFO] [stderr] 89 | pub fn get_referral(&self) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn WhoisServer` [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ip_map.rs:320:9 [INFO] [stderr] | [INFO] [stderr] 320 | _ => panic!["BUG"], [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `query` [INFO] [stderr] --> src/query.rs:17:14 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn fetch(query: &str) { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_query` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `domain` [INFO] [stderr] --> src/query.rs:28:21 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn fetch_domain(domain: &str) { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_domain` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `raw` is never read [INFO] [stderr] --> src/query.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | let mut raw: String = "".to_string(); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `cumulative` is never read [INFO] [stderr] --> src/query.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | let mut cumulative: String = "".to_string(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `parsed` [INFO] [stderr] --> src/query.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | let parsed: WhoisData; [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_parsed` [INFO] [stderr] [INFO] [stderr] warning: variable `proto` is assigned to, but never used [INFO] [stderr] --> src/parser.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | let proto: String; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_proto` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `proto` is never read [INFO] [stderr] --> src/parser.rs:104:25 [INFO] [stderr] | [INFO] [stderr] 104 | proto = pr.to_string(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | let mut org_name = self.data.get("OrgName"); [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/parser.rs:131:13 [INFO] [stderr] | [INFO] [stderr] 131 | let mut net_name = self.data.get("NetName"); [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/parser.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | let mut country = self.data.get("Country"); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `fetch` [INFO] [stderr] --> src/query.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn fetch(query: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `fetch_domain` [INFO] [stderr] --> src/query.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn fetch_domain(domain: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/parser.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | fn new(&self) -> WhoisData { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/query.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | stream.write(&format!("{}{}\n", query_flags, ip).into_bytes()); [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] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/query.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | stream.read_to_string(&mut buffer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error[E0658]: use of unstable library feature 'option_result_contains' [INFO] [stderr] --> src/tests.rs:29:85 [INFO] [stderr] | [INFO] [stderr] 29 | assert!( fetch_ip( &IpAddr::from_str("8.8.8.8").expect("bad IP addr format") ).contains("Google LLC (GOGL)") ); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/62358 [INFO] [stderr] = help: add `#![feature(option_result_contains)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `str` cannot be known at compilation time [INFO] [stderr] --> src/tests.rs:29:94 [INFO] [stderr] | [INFO] [stderr] 29 | assert!( fetch_ip( &IpAddr::from_str("8.8.8.8").expect("bad IP addr format") ).contains("Google LLC (GOGL)") ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::marker::Sized` is not implemented for `str` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] [INFO] [stderr] error[E0277]: can't compare `str` with `parser::WhoisData` [INFO] [stderr] --> src/tests.rs:29:94 [INFO] [stderr] | [INFO] [stderr] 29 | assert!( fetch_ip( &IpAddr::from_str("8.8.8.8").expect("bad IP addr format") ).contains("Google LLC (GOGL)") ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ no implementation for `str == parser::WhoisData` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::cmp::PartialEq` is not implemented for `str` [INFO] [stderr] [INFO] [stderr] error[E0658]: use of unstable library feature 'option_result_contains' [INFO] [stderr] --> src/tests.rs:34:87 [INFO] [stderr] | [INFO] [stderr] 34 | assert!( fetch_ip( &IpAddr::from_str("147.83.2.3").expect("bad IP addr format") ).contains("Universitat Politecnica de Catalunya")) [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/62358 [INFO] [stderr] = help: add `#![feature(option_result_contains)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `str` cannot be known at compilation time [INFO] [stderr] --> src/tests.rs:34:96 [INFO] [stderr] | [INFO] [stderr] 34 | assert!( fetch_ip( &IpAddr::from_str("147.83.2.3").expect("bad IP addr format") ).contains("Universitat Politecnica de Catalunya")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::marker::Sized` is not implemented for `str` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] [INFO] [stderr] error[E0277]: can't compare `str` with `parser::WhoisData` [INFO] [stderr] --> src/tests.rs:34:96 [INFO] [stderr] | [INFO] [stderr] 34 | assert!( fetch_ip( &IpAddr::from_str("147.83.2.3").expect("bad IP addr format") ).contains("Universitat Politecnica de Catalunya")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `str == parser::WhoisData` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::cmp::PartialEq` is not implemented for `str` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `parse` found for type `std::result::Result` in the current scope [INFO] [stderr] --> src/tests.rs:40:126 [INFO] [stderr] | [INFO] [stderr] 40 | assert_eq!( Some("netcup GmbH".to_string()), fetch_ip( &IpAddr::from_str("37.120.172.168").expect("bad IP addr format")).parse::().unwrap().get_org_name() ); [INFO] [stderr] | ^^^^^ method not found in `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `parse` found for type `std::result::Result` in the current scope [INFO] [stderr] --> src/tests.rs:42:99 [INFO] [stderr] | [INFO] [stderr] 42 | assert_eq!( None, fetch_ip( &IpAddr::from_str("200.58.120.110").expect("bad IP addr format")).parse::().unwrap().get_org_name() ); [INFO] [stderr] | ^^^^^ method not found in `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `parse` found for type `std::result::Result` in the current scope [INFO] [stderr] --> src/tests.rs:48:117 [INFO] [stderr] | [INFO] [stderr] 48 | assert_eq!( Some("AR".to_string()), fetch_ip( &IpAddr::from_str("200.58.120.110").expect("bad IP addr format")).parse::().unwrap().get_country()); [INFO] [stderr] | ^^^^^ method not found in `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `parse` found for type `std::result::Result` in the current scope [INFO] [stderr] --> src/tests.rs:50:116 [INFO] [stderr] | [INFO] [stderr] 50 | assert_eq!( Some("JP".to_string()), fetch_ip( &IpAddr::from_str("45.77.131.253").expect("bad IP addr format")).parse::().unwrap().get_country()); [INFO] [stderr] | ^^^^^ method not found in `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `parse` found for type `std::result::Result` in the current scope [INFO] [stderr] --> src/tests.rs:52:116 [INFO] [stderr] | [INFO] [stderr] 52 | assert_eq!( Some("NL".to_string()), fetch_ip( &IpAddr::from_str("94.237.40.128").expect("bad IP addr format")).parse::().unwrap().get_country()); [INFO] [stderr] | ^^^^^ method not found in `std::result::Result` [INFO] [stderr] [INFO] [stderr] error: aborting due to 11 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0599, E0658. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: could not compile `whoiz`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "61ba61b35fac498c858e89f9f777342e7319dccd9a4d1dc9244893337efc6c41"` [INFO] running `"docker" "rm" "-f" "61ba61b35fac498c858e89f9f777342e7319dccd9a4d1dc9244893337efc6c41"` [INFO] [stdout] 61ba61b35fac498c858e89f9f777342e7319dccd9a4d1dc9244893337efc6c41