]> git.lizzy.rs Git - rust.git/commit
Auto merge of #21689 - FlaPer87:oibit-send-and-friends, r=nikomatsakis
authorbors <bors@rust-lang.org>
Tue, 24 Feb 2015 02:22:44 +0000 (02:22 +0000)
committerbors <bors@rust-lang.org>
Tue, 24 Feb 2015 02:22:44 +0000 (02:22 +0000)
commit2890508d97af287a136ac50ffa13a1c0a3e32e4e
treed4cba9bfc722d5fb7d44c74dfebde016c45130aa
parentc4fe7d6aea022330efb8d1b470cac030a859f8f5
parent3dcc631dee7b2f4be3443b4bbc1dd916436d60ca
Auto merge of #21689 - FlaPer87:oibit-send-and-friends, r=nikomatsakis

This is one more step towards completing #13231

This series of commits add support for default trait implementations. The changes in this PR don't break existing code and they are expected to preserve the existing behavior in the compiler as far as built-in bounds checks go.

The PR adds negative implementations of `Send`/`Sync` for some types and it removes the special cases for `Send`/`Sync` during the trait obligations checks. That is, it now fully relies on the traits check rather than lang items.

Once this patch lands and a new snapshot is created, it'll be possible to add default impls for `Send` and `Sync` and remove entirely the use of `BuiltinBound::{BoundSend,BoundSync}` for positive implementations as well.

This PR also removes the restriction on negative implementations. That is, it is now possible to add negative implementations for traits other than `Send`/`Sync`
27 files changed:
src/libcore/lib.rs
src/libcore/marker.rs
src/librustc/metadata/csearch.rs
src/librustc/metadata/decoder.rs
src/librustc/metadata/encoder.rs
src/librustc/middle/astencode.rs
src/librustc/middle/mem_categorization.rs
src/librustc/middle/reachable.rs
src/librustc/middle/traits/select.rs
src/librustc/middle/ty.rs
src/librustc_privacy/lib.rs
src/librustc_resolve/build_reduced_graph.rs
src/librustc_resolve/lib.rs
src/librustc_trans/save/mod.rs
src/librustc_trans/trans/callee.rs
src/librustc_trans/trans/meth.rs
src/librustc_typeck/astconv.rs
src/librustc_typeck/check/method/suggest.rs
src/librustc_typeck/check/mod.rs
src/librustc_typeck/check/wf.rs
src/librustc_typeck/collect.rs
src/librustc_typeck/variance.rs
src/librustdoc/clean/mod.rs
src/librustdoc/visit_ast.rs
src/libsyntax/ext/deriving/generic/mod.rs
src/libsyntax/parse/parser.rs
src/libsyntax/print/pprust.rs