about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-03-16 05:37:12 +0800
committerkennytm <kennytm@gmail.com>2018-03-16 05:37:12 +0800
commit6fbd03393b321056b073968103b969b402ff1820 (patch)
treeee18b2c31ae780fe2558922e77ec0fe127bb4f47 /src/libstd
parent90230ce3723f6e88f2f39e852a54837b80e59736 (diff)
parent5e991e1b7ee3ddbd160203dec84bef10b45c1589 (diff)
downloadrust-6fbd03393b321056b073968103b969b402ff1820.tar.gz
rust-6fbd03393b321056b073968103b969b402ff1820.zip
Rollup merge of #48853 - Songbird0:addrparseerror_documentation_improvement, r=GuillaumeGomez
Improve `AddrParseError` documentation.

I've added potential cause to `AddrParseError` raising.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/net/parser.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libstd/net/parser.rs b/src/libstd/net/parser.rs
index 261d44eebaa..ae5037cc44e 100644
--- a/src/libstd/net/parser.rs
+++ b/src/libstd/net/parser.rs
@@ -372,6 +372,25 @@ impl FromStr for SocketAddr {
 /// [`IpAddr`], [`Ipv4Addr`], [`Ipv6Addr`], [`SocketAddr`], [`SocketAddrV4`], and
 /// [`SocketAddrV6`].
 ///
+/// # Potential causes
+///
+/// `AddrParseError` may be thrown because the provided string does not parse as the given type,
+/// often because it includes information only handled by a different address type.
+///
+/// ```should_panic
+/// use std::net::IpAddr;
+/// let _foo: IpAddr = "127.0.0.1:8080".parse().expect("Cannot handle the socket port");
+/// ```
+///
+/// [`IpAddr`] doesn't handle the port. Use [`SocketAddr`] instead.
+///
+/// ```
+/// use std::net::SocketAddr;
+///
+/// // No problem, the `panic!` message has disappeared.
+/// let _foo: SocketAddr = "127.0.0.1:8080".parse().expect("unreachable panic");
+/// ```
+///
 /// [`FromStr`]: ../../std/str/trait.FromStr.html
 /// [`IpAddr`]: ../../std/net/enum.IpAddr.html
 /// [`Ipv4Addr`]: ../../std/net/struct.Ipv4Addr.html