The incoming iterator never returns None, so the drop at the end will never be reached. The explicit matching against the socket result also seems potentially nonconventional docs-wise?
https://doc.rust-lang.org/std/net/struct.TcpListener.html#examples