bors
ed22606c83
auto merge of #20285 : FlaPer87/rust/oibit-send-and-friends, r=nikomatsakis
...
This commit introduces the syntax for negative implementations of traits
as shown below:
`impl !Trait for Type {}`
cc #13231
Part of RFC rust-lang/rfcs#127
r? @nikomatsakis
2015-01-05 04:20:46 +00:00
Flavio Percoco
c062fac835
Put negative trait implemtations behind a feature gate
2015-01-04 23:16:14 +01:00
Flavio Percoco
8b883ab268
Add syntax for negative implementations of traits
...
This commit introduces the syntax for negative implmenetations of traits
as shown below:
`impl !Trait for Type {}`
cc #13231
Part of RFC #3
2015-01-04 23:16:13 +01:00
bors
589c38a3af
Merge pull request #20515 from tshepang/modernise-ping-pong-benchmark
...
bench: remove warnings from rt-messaging-ping-pong.rs
Reviewed-by: alexcrichton
2015-01-04 21:36:41 +00:00
bors
e9818564bd
Merge pull request #20295 from eddyb/poly-const
...
Allow paths in constants to refer to polymorphic items.
Reviewed-by: nikomatsakis
2015-01-04 21:36:33 +00:00
bors
b2085d9674
auto merge of #20527 : nikomatsakis/rust/japaric-boxed-uc-ice-fix, r=aturon
...
This fixes an ICE that japaric was encountering in the wf checker.
r? @aturon
2015-01-04 19:06:46 +00:00
Niko Matsakis
71cdf76240
Fix ICE in WF checker when we encounter bound regions in object types.
2015-01-04 12:01:19 -05:00
Eduard Burtescu
9a90d436f6
rustc: allow paths in constants to refer to polymorphic items.
2015-01-04 18:47:58 +02:00
bors
260e46115b
auto merge of #20443 : nikomatsakis/rust/autoderef-overloaded-calls, r=pcwalton
...
Use autoderef for call notation. This is consistent in that we now autoderef all postfix operators (`.`, `[]`, and `()`). It also means you can call closures without writing `(*f)()`. Note that this is rebased atop the rollup, so only the final commit is relevant.
r? @pcwalton
2015-01-04 16:36:41 +00:00
bors
856b90c400
auto merge of #20393 : japaric/rust/impl-any, r=aturon
...
Needs a snapshot that contains PR #20385
r? @aturon
2015-01-04 11:01:04 +00:00
Tshepang Lekhonkhobe
f863e82b32
bench: remove warnings from rt-messaging-ping-pong.rs
2015-01-04 11:45:22 +02:00
Alex Crichton
7d8d06f86b
Remove deprecated functionality
...
This removes a large array of deprecated functionality, regardless of how
recently it was deprecated. The purpose of this commit is to clean out the
standard libraries and compiler for the upcoming alpha release.
Some notable compiler changes were to enable warnings for all now-deprecated
command line arguments (previously the deprecated versions were silently
accepted) as well as removing deriving(Zero) entirely (the trait was removed).
The distribution no longer contains the libtime or libregex_macros crates. Both
of these have been deprecated for some time and are available externally.
2015-01-03 23:43:57 -08:00
Jorge Aparicio
5172b8046a
remove Any[Mut]RefExt traits in favor of impl Any
2015-01-03 23:01:33 -05:00
Jorge Aparicio
351409a622
sed -i -s 's/#\[deriving(/#\[derive(/g' **/*.rs
2015-01-03 22:54:18 -05:00
Jorge Aparicio
8c5bb80d9b
sed -i -s 's/\bmod}/self}/g' **/*.rs
2015-01-03 22:42:37 -05:00
Jorge Aparicio
56dcbd17fd
sed -i -s 's/\bmod,/self,/g' **/*.rs
2015-01-03 22:42:21 -05:00
bors
c6c786671d
auto merge of #20490 : japaric/rust/assoc-types, r=aturon
...
closes #20486
closes #20474
closes #20441
[breaking-change]
The `Index[Mut]` traits now have one less input parameter, as the return type of the indexing operation is an associated type. This breaks all existing implementations.
---
binop traits (`Add`, `Sub`, etc) now have an associated type for their return type. Also, the RHS input parameter now defaults to `Self` (except for the `Shl` and `Shr` traits). For example, the `Add` trait now looks like this:
``` rust
trait Add<Rhs=Self> {
type Output;
fn add(self, Rhs) -> Self::Output;
}
```
The `Neg` and `Not` traits now also have an associated type for their return type.
This breaks all existing implementations of these traits.
---
Affected traits:
- `Iterator { type Item }`
- `IteratorExt` no input/output types, uses `<Self as Iterator>::Item` in its methods
- `DoubleEndedIterator` no input/output types, uses `<Self as Iterator>::Item` in its methods
- `DoubleEndedIteratorExt` no input/output types, uses `<Self as Iterator>::Item` in its methods
- `RandomAccessIterator` no input/output types
- `ExactSizeIterator` no input/output types, uses `<Self as Iterator>::Item` in its methods
This breaks all the implementations of these traits.
2015-01-04 00:50:59 +00:00
Jorge Aparicio
ce8f748b4c
add feature gate to some benchmarks
2015-01-03 17:29:27 -05:00
Jorge Aparicio
9aadbadb93
fix rpass/cfail tests
2015-01-03 16:30:49 -05:00
Jorge Aparicio
7d3c5f020e
use assoc types in unop traits
2015-01-03 16:29:22 -05:00
Jorge Aparicio
99017f82b6
use assoc types in binop traits
2015-01-03 16:29:19 -05:00
bors
496dc4eae7
auto merge of #19790 : akiss77/rust/aarch64-configure, r=alexcrichton
...
Preparing AArch64 support, starting work at the build system.
2015-01-03 20:20:48 +00:00
Akos Kiss
6e5fb8bd1b
Initial version of AArch64 support.
...
Adds AArch64 knowledge to:
* configure,
* make files,
* sources,
* tests, and
* documentation.
2015-01-03 15:16:10 +00:00
Jorge Aparicio
6c0ad5b564
bench: fix fallout
2015-01-03 09:34:05 -05:00
Jorge Aparicio
4f4ae538ae
fix rpass/cfail tests
2015-01-03 09:34:05 -05:00
Niko Matsakis
cbeff8b8b3
"Fallout": Slightly different errors are generated in this edge case.
2015-01-03 07:01:21 -05:00
Niko Matsakis
09a7bc55db
Running EUV requires the Copy lang item, so adjust privacy tests.
2015-01-03 07:01:21 -05:00
bors
9c3e6082e7
auto merge of #20154 : P1start/rust/qualified-assoc-type-generics, r=nikomatsakis
...
This modifies `Parser::eat_lt` to always split up `<<`s, instead of doing so only when a lifetime name followed or the `force` parameter (now removed) was `true`. This is because `Foo<<TYPE` is now a valid start to a type, whereas previously only `Foo<<LIFETIME` was valid.
This is a [breaking-change]. Change code that looks like this:
```rust
let x = foo as bar << 13;
```
to use parentheses, like this:
```rust
let x = (foo as bar) << 13;
```
Closes #17362 .
2015-01-03 03:25:21 +00:00
Niko Matsakis
dc97247d11
Make call notation use autoderef. Fixes #18742 .
2015-01-02 20:59:11 -05:00
Alex Crichton
340f3fd7a9
rollup merge of #20410 : japaric/assoc-types
...
Conflicts:
src/liballoc/lib.rs
src/libcollections/lib.rs
src/libcollections/slice.rs
src/libcore/ops.rs
src/libcore/prelude.rs
src/libcore/ptr.rs
src/librustc/middle/traits/project.rs
src/libstd/c_str.rs
src/libstd/io/mem.rs
src/libstd/io/mod.rs
src/libstd/lib.rs
src/libstd/path/posix.rs
src/libstd/path/windows.rs
src/libstd/prelude.rs
src/libstd/rt/exclusive.rs
src/libsyntax/lib.rs
src/test/compile-fail/issue-18566.rs
src/test/run-pass/deref-mut-on-ref.rs
src/test/run-pass/deref-on-ref.rs
src/test/run-pass/dst-deref-mut.rs
src/test/run-pass/dst-deref.rs
src/test/run-pass/fixup-deref-mut.rs
src/test/run-pass/issue-13264.rs
src/test/run-pass/overloaded-autoderef-indexing.rs
2015-01-02 13:51:50 -08:00
Alex Crichton
8cf9929a9a
Rebase test fixes v2
2015-01-02 12:09:47 -08:00
Jorge Aparicio
1abee08cbd
fix rpass test with s/Output/Target/g
2015-01-02 14:23:46 -05:00
Niko Matsakis
ea1ad792f9
Evaluate projection predicates during trait selection. Fixes #20296 .
2015-01-02 14:21:37 -05:00
Alex Crichton
4459b1dced
rollup merge of #20341 : nikomatsakis/impl-trait-for-trait-2
...
Conflicts:
src/librustc/middle/traits/mod.rs
src/libstd/io/mod.rs
src/test/run-pass/builtin-superkinds-self-type.rs
2015-01-02 11:13:05 -08:00
Alex Crichton
e921e3f045
Rollup test fixes and rebase conflicts
2015-01-02 10:50:13 -08:00
Alex Crichton
1f2ead1629
Merge remote-tracking branch 'origin/master' into rollup
...
Conflicts:
src/test/compile-fail/borrowck-loan-rcvr-overloaded-op.rs
2015-01-02 10:50:07 -08:00
Alex Crichton
6f567e0c29
rollup merge of #20425 : sanxiyn/opt-local-ty
...
This avoids having ast::Ty nodes which have no counterpart in the source.
2015-01-02 09:23:47 -08:00
Alex Crichton
735c308aed
rollup merge of #20416 : nikomatsakis/coherence
...
Conflicts:
src/test/run-pass/issue-15734.rs
src/test/run-pass/issue-3743.rs
2015-01-02 09:23:42 -08:00
Alex Crichton
4dab96758a
rollup merge of #20407 : michaelwoerister/unreachable-locals
...
Fixes #20312
2015-01-02 09:22:50 -08:00
Alex Crichton
b51ff9f06a
rollup merge of #20404 : japaric/at-tests
...
Closes #17732
Closes #18819
Closes #19479
Closes #19631
Closes #19632
Closes #19850
Closes #19883
Closes #20005
Closes #20009
Closes #20389
---
cc @nikomatsakis @sfackler
2015-01-02 09:22:47 -08:00
Alex Crichton
073fd5beab
rollup merge of #20385 : nick29581/x-object
...
Closes #19056
2015-01-02 09:22:35 -08:00
Alex Crichton
b9a26bf4b1
rollup merge of #20334 : nagisa/ffi-llvm
...
Fixes #20313
r? @huonw
2015-01-02 09:22:18 -08:00
Niko Matsakis
cddb41dd1f
Do not ICE when projecting out of a value with type ty::ty_err
2015-01-02 12:20:29 -05:00
Jorge Aparicio
64b7c22c46
core: use assoc types in Deref[Mut]
2015-01-02 12:19:59 -05:00
Alex Crichton
009ec5d2b0
rollup merge of #20315 : alexcrichton/std-sync
...
Conflicts:
src/libstd/rt/exclusive.rs
src/libstd/sync/barrier.rs
src/libstd/sys/unix/pipe.rs
src/test/bench/shootout-binarytrees.rs
src/test/bench/shootout-fannkuch-redux.rs
2015-01-02 09:19:00 -08:00
Alex Crichton
faf53559c6
rollup merge of #20382 : alexcrichton/isuse-20376
2015-01-02 09:16:47 -08:00
Alex Crichton
074996d6f9
rollup merge of #20377 : alexcrichton/issue-20352
2015-01-02 09:16:26 -08:00
Alex Crichton
8b7d032014
rollup merge of #20273 : alexcrichton/second-pass-comm
...
Conflicts:
src/doc/guide.md
src/libcollections/bit.rs
src/libcollections/btree/node.rs
src/libcollections/slice.rs
src/libcore/ops.rs
src/libcore/prelude.rs
src/librand/rand_impls.rs
src/librustc/middle/check_match.rs
src/librustc/middle/infer/region_inference/mod.rs
src/librustc_driver/lib.rs
src/librustdoc/test.rs
src/libstd/bitflags.rs
src/libstd/io/comm_adapters.rs
src/libstd/io/mem.rs
src/libstd/io/mod.rs
src/libstd/io/net/pipe.rs
src/libstd/io/net/tcp.rs
src/libstd/io/net/udp.rs
src/libstd/io/pipe.rs
src/libstd/io/process.rs
src/libstd/io/stdio.rs
src/libstd/io/timer.rs
src/libstd/io/util.rs
src/libstd/macros.rs
src/libstd/os.rs
src/libstd/path/posix.rs
src/libstd/path/windows.rs
src/libstd/prelude/v1.rs
src/libstd/rand/mod.rs
src/libstd/rand/os.rs
src/libstd/sync/barrier.rs
src/libstd/sync/condvar.rs
src/libstd/sync/future.rs
src/libstd/sync/mpsc/mod.rs
src/libstd/sync/mpsc/mpsc_queue.rs
src/libstd/sync/mpsc/select.rs
src/libstd/sync/mpsc/spsc_queue.rs
src/libstd/sync/mutex.rs
src/libstd/sync/once.rs
src/libstd/sync/rwlock.rs
src/libstd/sync/semaphore.rs
src/libstd/sync/task_pool.rs
src/libstd/sys/common/helper_thread.rs
src/libstd/sys/unix/process.rs
src/libstd/sys/unix/timer.rs
src/libstd/sys/windows/c.rs
src/libstd/sys/windows/timer.rs
src/libstd/sys/windows/tty.rs
src/libstd/thread.rs
src/libstd/thread_local/mod.rs
src/libstd/thread_local/scoped.rs
src/libtest/lib.rs
src/test/auxiliary/cci_capture_clause.rs
src/test/bench/shootout-reverse-complement.rs
src/test/bench/shootout-spectralnorm.rs
src/test/compile-fail/array-old-syntax-2.rs
src/test/compile-fail/bind-by-move-no-guards.rs
src/test/compile-fail/builtin-superkinds-self-type.rs
src/test/compile-fail/comm-not-freeze-receiver.rs
src/test/compile-fail/comm-not-freeze.rs
src/test/compile-fail/issue-12041.rs
src/test/compile-fail/unsendable-class.rs
src/test/run-pass/builtin-superkinds-capabilities-transitive.rs
src/test/run-pass/builtin-superkinds-capabilities-xc.rs
src/test/run-pass/builtin-superkinds-capabilities.rs
src/test/run-pass/builtin-superkinds-self-type.rs
src/test/run-pass/capturing-logging.rs
src/test/run-pass/closure-bounds-can-capture-chan.rs
src/test/run-pass/comm.rs
src/test/run-pass/core-run-destroy.rs
src/test/run-pass/drop-trait-enum.rs
src/test/run-pass/hashmap-memory.rs
src/test/run-pass/issue-13494.rs
src/test/run-pass/issue-3609.rs
src/test/run-pass/issue-4446.rs
src/test/run-pass/issue-4448.rs
src/test/run-pass/issue-8827.rs
src/test/run-pass/issue-9396.rs
src/test/run-pass/ivec-tag.rs
src/test/run-pass/rust-log-filter.rs
src/test/run-pass/send-resource.rs
src/test/run-pass/send-type-inference.rs
src/test/run-pass/sendable-class.rs
src/test/run-pass/spawn-types.rs
src/test/run-pass/task-comm-0.rs
src/test/run-pass/task-comm-10.rs
src/test/run-pass/task-comm-11.rs
src/test/run-pass/task-comm-13.rs
src/test/run-pass/task-comm-14.rs
src/test/run-pass/task-comm-15.rs
src/test/run-pass/task-comm-16.rs
src/test/run-pass/task-comm-3.rs
src/test/run-pass/task-comm-4.rs
src/test/run-pass/task-comm-5.rs
src/test/run-pass/task-comm-6.rs
src/test/run-pass/task-comm-7.rs
src/test/run-pass/task-comm-9.rs
src/test/run-pass/task-comm-chan-nil.rs
src/test/run-pass/task-spawn-move-and-copy.rs
src/test/run-pass/task-stderr.rs
src/test/run-pass/tcp-accept-stress.rs
src/test/run-pass/tcp-connect-timeouts.rs
src/test/run-pass/tempfile.rs
src/test/run-pass/trait-bounds-in-arc.rs
src/test/run-pass/trivial-message.rs
src/test/run-pass/unique-send-2.rs
src/test/run-pass/unique-send.rs
src/test/run-pass/unwind-resource.rs
2015-01-02 09:15:54 -08:00
Niko Matsakis
a535f2aab1
Test that we can call unboxed closures with the sugar now. Fixes #16929 .
2015-01-02 12:09:38 -05:00
Niko Matsakis
19dcecb225
Refactor object-safety into its own (cached) module so that we can
...
check it more easily; also extend object safety to cover sized types
as well as static methods. This makes it sufficient so that we can
always ensure that `Foo : Foo` holds for any trait `Foo`.
2015-01-02 12:08:36 -05:00