Skip to content

[E0271] needless repetitions #45805

Closed
Closed
@mqudsi

Description

@mqudsi

I have this code fragment:

fn start() -> Result<()> {
    let addr = "0.0.0.0:3000".parse().unwrap();
    let server = Http::new().bind(&addr, || Server::new())?;

    server.run()?;
    Ok(())
}

When compiled it returns the following:

~> cargo build
   Compiling messagebridge v0.1.0 (file:///Users/mqudsi/Projects/messagebridge)
warning: unused import: `std::env`
 --> src/imessage/db.rs:4:5
  |
4 | use std::env;
  |     ^^^^^^^^
  |
  = note: #[warn(unused_imports)] on by default

warning: unused import: `std::error`
 --> src/imessage/db.rs:5:5
  |
5 | use std::error;
  |     ^^^^^^^^^^

warning: unused import: `errors::*;`
 --> src/incoming.rs:2:5
  |
2 | use errors::*;
  |     ^^^^^^^^^^

error[E0271]: type mismatch resolving `<[closure@src/main.rs:75:42: 75:58] as std::ops::FnOnce<()>>::Output == std::result::Result<_, std::io::Error>`
  --> src/main.rs:75:30
   |
75 |     let server = Http::new().bind(&addr, || Server::new())?;
   |                              ^^^^ expected struct `Server`, found enum `std::result::Result`
   |
   = note: expected type `Server`
              found type `std::result::Result<_, std::io::Error>`
   = note: required because of the requirements on the impl of `hyper::server::NewService` for `[closure@src/main.rs:75:42: 75:58]`

error[E0271]: type mismatch resolving `<[closure@src/main.rs:75:42: 75:58] as std::ops::FnOnce<()>>::Output == std::result::Result<_, std::io::Error>`
  --> src/main.rs:75:30
   |
75 |     let server = Http::new().bind(&addr, || Server::new())?;
   |                              ^^^^ expected struct `Server`, found enum `std::result::Result`
   |
   = note: expected type `Server`
              found type `std::result::Result<_, std::io::Error>`
   = note: required because of the requirements on the impl of `hyper::server::NewService` for `[closure@src/main.rs:75:42: 75:58]`

error[E0271]: type mismatch resolving `<[closure@src/main.rs:75:42: 75:58] as std::ops::FnOnce<()>>::Output == std::result::Result<_, std::io::Error>`
  --> src/main.rs:75:30
   |
75 |     let server = Http::new().bind(&addr, || Server::new())?;
   |                              ^^^^ expected struct `Server`, found enum `std::result::Result`
   |
   = note: expected type `Server`
              found type `std::result::Result<_, std::io::Error>`
   = note: required because of the requirements on the impl of `hyper::server::NewService` for `[closure@src/main.rs:75:42: 75:58]`

error[E0271]: type mismatch resolving `<[closure@src/main.rs:75:42: 75:58] as std::ops::FnOnce<()>>::Output == std::result::Result<_, std::io::Error>`
  --> src/main.rs:75:30
   |
75 |     let server = Http::new().bind(&addr, || Server::new())?;
   |                              ^^^^ expected struct `Server`, found enum `std::result::Result`
   |
   = note: expected type `Server`
              found type `std::result::Result<_, std::io::Error>`
   = note: required because of the requirements on the impl of `hyper::server::NewService` for `[closure@src/main.rs:75:42: 75:58]`

error[E0599]: no method named `run` found for type `hyper::Server<[closure@src/main.rs:75:42: 75:58], _>` in the current scope
  --> src/main.rs:77:12
   |
77 |     server.run()?;
   |            ^^^
   |
   = note: the method `run` exists but the following trait bounds were not satisfied:
           `[closure@src/main.rs:75:42: 75:58] : hyper::server::NewService`

error: aborting due to 5 previous errors

error: Could not compile `messagebridge`.

To learn more, run the command again with --verbose.

This is under rustc 1.21.0 (3b72af97e 2017-10-09)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-diagnosticsArea: Messages for errors, warnings, and lintsC-enhancementCategory: An issue proposing an enhancement or a PR with one.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions