diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-03-27 10:10:38 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-03-27 10:10:38 -0700 |
| commit | e361b25c5e0ae2b49b1850499f0c19683c843fe6 (patch) | |
| tree | b632228e52cf071bc6734f564647e7fc0dd30c24 | |
| parent | 28a6b16130388b126635773694d450ddbc9120d4 (diff) | |
| parent | 9754b06cd80cfcc523573535090519bec935fec3 (diff) | |
| download | rust-e361b25c5e0ae2b49b1850499f0c19683c843fe6.tar.gz rust-e361b25c5e0ae2b49b1850499f0c19683c843fe6.zip | |
rollup merge of #23749: alexcrichton/remove-old-impl-check
Conflicts: src/libsyntax/feature_gate.rs
| -rw-r--r-- | src/librustc_typeck/collect.rs | 16 | ||||
| -rw-r--r-- | src/libstd/lib.rs | 1 | ||||
| -rw-r--r-- | src/libstd/old_io/mod.rs | 18 | ||||
| -rw-r--r-- | src/libstd/old_io/net/pipe.rs | 5 | ||||
| -rw-r--r-- | src/libstd/old_io/net/tcp.rs | 5 | ||||
| -rw-r--r-- | src/libstd/old_io/result.rs | 7 | ||||
| -rw-r--r-- | src/libsyntax/feature_gate.rs | 11 |
7 files changed, 23 insertions, 40 deletions
diff --git a/src/librustc_typeck/collect.rs b/src/librustc_typeck/collect.rs index 5816fe58bc9..abb68d8fe0d 100644 --- a/src/librustc_typeck/collect.rs +++ b/src/librustc_typeck/collect.rs @@ -2208,18 +2208,10 @@ fn enforce_impl_ty_params_are_constrained<'tcx>(tcx: &ty::ctxt<'tcx>, idx: index as u32, name: ty_param.ident.name }; if !input_parameters.contains(¶m_ty) { - if ty::has_attr(tcx, impl_def_id, "old_impl_check") { - tcx.sess.span_warn( - ty_param.span, - &format!("the type parameter `{}` is not constrained by the \ - impl trait, self type, or predicates", - param_ty.user_string(tcx))); - } else { - span_err!(tcx.sess, ty_param.span, E0207, - "the type parameter `{}` is not constrained by the \ - impl trait, self type, or predicates", - param_ty.user_string(tcx)); - } + span_err!(tcx.sess, ty_param.span, E0207, + "the type parameter `{}` is not constrained by the \ + impl trait, self type, or predicates", + param_ty.user_string(tcx)); } } } diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index 10050d0bb4f..420f6c49c26 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -113,7 +113,6 @@ #![feature(lang_items)] #![feature(libc)] #![feature(linkage, thread_local, asm)] -#![feature(old_impl_check)] #![feature(optin_builtin_traits)] #![feature(rand)] #![feature(staged_api)] diff --git a/src/libstd/old_io/mod.rs b/src/libstd/old_io/mod.rs index 1bbd602b18a..aaa55c5d1d9 100644 --- a/src/libstd/old_io/mod.rs +++ b/src/libstd/old_io/mod.rs @@ -1588,9 +1588,7 @@ pub trait Seek { /// connections. /// /// Doing so produces some sort of Acceptor. -pub trait Listener<T, A: Acceptor<T>> - : PhantomFn<T,T> // FIXME should be an assoc type anyhow -{ +pub trait Listener<A: Acceptor> { /// Spin up the listener and start queuing incoming connections /// /// # Error @@ -1601,13 +1599,16 @@ pub trait Listener<T, A: Acceptor<T>> } /// An acceptor is a value that presents incoming connections -pub trait Acceptor<T> { +pub trait Acceptor { + /// Type of connection that is accepted by this acceptor. + type Connection; + /// Wait for and accept an incoming connection /// /// # Error /// /// Returns `Err` if an I/O error is encountered. - fn accept(&mut self) -> IoResult<T>; + fn accept(&mut self) -> IoResult<Self::Connection>; /// Create an iterator over incoming connection attempts. /// @@ -1628,11 +1629,10 @@ pub struct IncomingConnections<'a, A: ?Sized +'a> { inc: &'a mut A, } -#[old_impl_check] -impl<'a, T, A: ?Sized + Acceptor<T>> Iterator for IncomingConnections<'a, A> { - type Item = IoResult<T>; +impl<'a, A: ?Sized + Acceptor> Iterator for IncomingConnections<'a, A> { + type Item = IoResult<A::Connection>; - fn next(&mut self) -> Option<IoResult<T>> { + fn next(&mut self) -> Option<IoResult<A::Connection>> { Some(self.inc.accept()) } } diff --git a/src/libstd/old_io/net/pipe.rs b/src/libstd/old_io/net/pipe.rs index 2f3cf3d84d0..3a071e832af 100644 --- a/src/libstd/old_io/net/pipe.rs +++ b/src/libstd/old_io/net/pipe.rs @@ -202,7 +202,7 @@ impl UnixListener { } } -impl Listener<UnixStream, UnixAcceptor> for UnixListener { +impl Listener<UnixAcceptor> for UnixListener { fn listen(self) -> IoResult<UnixAcceptor> { self.inner.listen() .map(|inner| UnixAcceptor { inner: inner }) @@ -250,7 +250,8 @@ impl UnixAcceptor { } } -impl Acceptor<UnixStream> for UnixAcceptor { +impl Acceptor for UnixAcceptor { + type Connection = UnixStream; fn accept(&mut self) -> IoResult<UnixStream> { self.inner.accept().map(|s| { UnixStream { inner: s } diff --git a/src/libstd/old_io/net/tcp.rs b/src/libstd/old_io/net/tcp.rs index d55d9ca11d1..7fc460c16ef 100644 --- a/src/libstd/old_io/net/tcp.rs +++ b/src/libstd/old_io/net/tcp.rs @@ -338,7 +338,7 @@ impl TcpListener { } } -impl Listener<TcpStream, TcpAcceptor> for TcpListener { +impl Listener<TcpAcceptor> for TcpListener { fn listen(self) -> IoResult<TcpAcceptor> { self.inner.listen(128).map(|a| TcpAcceptor { inner: a }) } @@ -453,7 +453,8 @@ impl TcpAcceptor { } } -impl Acceptor<TcpStream> for TcpAcceptor { +impl Acceptor for TcpAcceptor { + type Connection = TcpStream; fn accept(&mut self) -> IoResult<TcpStream> { self.inner.accept().map(TcpStream::new) } diff --git a/src/libstd/old_io/result.rs b/src/libstd/old_io/result.rs index cda19f8ae84..e1037f26b7f 100644 --- a/src/libstd/old_io/result.rs +++ b/src/libstd/old_io/result.rs @@ -58,7 +58,7 @@ impl<S: Seek> Seek for IoResult<S> { } } -impl<T, A: Acceptor<T>, L: Listener<T, A>> Listener<T, A> for IoResult<L> { +impl<A: Acceptor, L: Listener<A>> Listener<A> for IoResult<L> { fn listen(self) -> IoResult<A> { match self { Ok(listener) => listener.listen(), @@ -67,8 +67,9 @@ impl<T, A: Acceptor<T>, L: Listener<T, A>> Listener<T, A> for IoResult<L> { } } -impl<T, A: Acceptor<T>> Acceptor<T> for IoResult<A> { - fn accept(&mut self) -> IoResult<T> { +impl<A: Acceptor> Acceptor for IoResult<A> { + type Connection = A::Connection; + fn accept(&mut self) -> IoResult<A::Connection> { match *self { Ok(ref mut acceptor) => acceptor.accept(), Err(ref e) => Err(e.clone()), diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index ad0fa500c28..70f43776ff0 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -102,9 +102,6 @@ const KNOWN_FEATURES: &'static [(&'static str, &'static str, Status)] = &[ // A way to temporarily opt out of the new orphan rules. This will *never* be accepted. ("old_orphan_check", "1.0.0", Deprecated), - // A way to temporarily opt out of the new impl rules. This will *never* be accepted. - ("old_impl_check", "1.0.0", Deprecated), - // OIBIT specific features ("optin_builtin_traits", "1.0.0", Active), @@ -276,7 +273,6 @@ pub const KNOWN_ATTRIBUTES: &'static [(&'static str, AttributeType)] = &[ // FIXME: #19470 this shouldn't be needed forever ("old_orphan_check", Whitelisted), - ("old_impl_check", Whitelisted), ("rustc_paren_sugar", Gated("unboxed_closures", "unboxed_closures are still evolving")), @@ -588,13 +584,6 @@ impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> { i.span, "the new orphan check rules will eventually be strictly enforced"); } - - if attr::contains_name(&i.attrs[..], - "old_impl_check") { - self.gate_feature("old_impl_check", - i.span, - "`#[old_impl_check]` will be removed in the future"); - } } _ => {} |
