algesten / ureq

A simple, safe HTTP client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`ureq` 2.9.3 compilation fails due to `hoot` requiring rustc 1.65

tnull opened this issue · comments

I'm aware that ureq doesn't officially have any MSRV guarantee (#543), but so far we were able to use it with our MSRV of 1.63 easily.

Now ureq introduced the hoot dependency which seems to require let.. else bindings that have only been stabilized with rustc 1.65 (cf. https://doc.rust-lang.org/rust-by-example/flow_control/let_else.html). This breaks builds for us:

error[E0658]: `let...else` statements are unstable
  --> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/hoot-0.1.2/src/chunk.rs:63:9
   |
63 | /         let Some(i) = find_crlf(src) else {
64 | |             return Ok(false);
65 | |         };
   | |__________^
   |
   = note: see issue #87335 <https://github.com/rust-lang/rust/issues/87335> for more information

error[E0658]: `let...else` statements are unstable
  --> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/hoot-0.1.2/src/chunk.rs:85:9
   |
85 | /         let Self::Chunk(left) = self else {
86 | |             unreachable!();
87 | |         };
   | |__________^
   |
   = note: see issue #87335 <https://github.com/rust-lang/rust/issues/87335> for more information

error[E0658]: `let...else` statements are unstable
   --> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/hoot-0.1.2/src/chunk.rs:107:9
    |
107 | /         let Some(i) = find_crlf(src) else {
108 | |             return Ok(false);
109 | |         };
    | |__________^
    |
    = note: see issue #87335 <https://github.com/rust-lang/rust/issues/87335> for more information

error[E0658]: `let...else` statements are unstable
  --> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/hoot-0.1.2/src/out.rs:80:9
   |
80 | /         let Some(i) = self.inc else {
81 | |             return (&[], &mut []);
82 | |         };
   | |__________^
   |
   = note: see issue #87335 <https://github.com/rust-lang/rust/issues/87335> for more information

error[E0658]: `let...else` statements are unstable
   --> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/hoot-0.1.2/src/client/res.rs:185:9
    |
185 | /         let Some(mode) = self.state.recv_body_mode else {
186 | |             return false;
187 | |         };
    | |__________^
    |
    = note: see issue #87335 <https://github.com/rust-lang/rust/issues/87335> for more information

error[E0658]: `let...else` statements are unstable
   --> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/hoot-0.1.2/src/server/req.rs:184:9
    |
184 | /         let Some(mode) = self.state.recv_body_mode else {
185 | |             return false;
186 | |         };
    | |__________^
    |
    = note: see issue #87335 <https://github.com/rust-lang/rust/issues/87335> for more information

For more information about this error, try `rustc --explain E0658`.
error: could not compile `hoot` due to 6 previous errors

Since there are other related issues (#712), I'd appreciate if the introduction of the hoot dependency could be reconsidered, and would also suggest to reconsider whether ureq should introduce an official MSRV policy.

Thank you! I'm looking into this now. Closing as a dupe of #712

Fixed in 2.9.4

Fixed in 2.9.4

Thanks for the quick reaction and for introducing an MSRV! I'm still a bit dubious about adding hoot as a dependency though, see #703 (comment)