You are essentially trying to create a struct which contains a reference to its own content (a Server’s Connections have a reference to the Poll stored next to them). The Rust ownership and borrowing model does not support this at the moment, and is unlikely to support it in the medium term as it will require a lot of work on the core semantics of the language.
To understand why, consider how self-referentiality affects core Rust operations like moving or borrowing. In current Rust, moving a struct is always safe if no one holds a reference to them. With self-referential structs, however, moving is dangerous even then because it invalidates the inner reference. Similarly, the order in which struct members are dropped is largely an implementation detail at the moment, whereas dropping the fields of a self-referential struct in the “wrong” order could result in memory unsafety if a reference is dropped later than the thing it refers to.
To work around this, you have several options. One of them is to use shared ownership (e.g.
Rc<Poll>), which eliminates the backreference by moving the Poll to the heap, but introduces a slight performance hit and worsens usability when mutability is involved. Another is to review your design so that Connections do not hold a long-lived reference to the Poll (which is rarely a good idea in Rust), and favor transient references instead (for example by passing a Poll reference down to the Connection’s methods when they need one).
EDIT: Looking at the playground further, even if Rust supported self-referential structs, your code would still be rejected because it attempts to create multiple &mut references to a single Poll object (one per Connection).