Timon Rapp
15dedb22f6
Fix typo in documentation.
2015-01-03 22:10:53 +01:00
bors
fe7e285d0c
auto merge of #20432 : nikomatsakis/rust/fn-inference-2, r=eddyb
...
Previously, the borrow mode of each upvar was inferred as part of regionck. This PR moves it into its own separate step. It also employs the `ExprUseVisitor`, further simplifying the code. The eventual goal is to support better inference of `Fn` vs `FnMut` vs `FnOnce` that is not based on the expected type, as well as supporting individual by-move upvars.
r? @eddyb
2015-01-03 14:20:47 +00: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
Niko Matsakis
ecd9c10e1a
Move upvar checking into its own pre-pass that occurs before regionck
...
and which uses EUV. For now, upvar inference is not any smarter than
it ever was, but regionck is simpler because it doesn't have to do as
many things at once.
2015-01-03 07:01:21 -05:00
Niko Matsakis
7474be0660
Make ty::ParameterEnvironment
, not ty::ctxt
, implement Typer
and
...
`UnboxedClosureTyper`. This requires adding a `tcx` field to
`ParameterEnvironment` but generally simplifies everything since we
only need to pass along an `UnboxedClosureTyper` or `Typer`.
2015-01-03 07:01:21 -05:00
Niko Matsakis
83ef3042de
Modify type_known_to_meet_builtin_bound
so that it doesn't suppress overflow,
...
which should always result in an error.
NB. Some of the hunks in this commit rely on a later commit which adds
`tcx` into `param_env` and modifies `ParameterEnvironment` to
implement `Typer`.
2015-01-03 07:01:21 -05:00
Niko Matsakis
429d9cce1b
Be more tolerant of errors in EUV so we can run it during typeck.
2015-01-03 07:00:51 -05:00
Niko Matsakis
9c54d862b8
Stop calling bug()
in various weird cases and instead generate Err()
.
2015-01-03 07:00:51 -05:00
Niko Matsakis
f7abf47058
Re-introduce McResult<>
as a way of aborting mem-categorization (and
...
expr-use-visitor) early. Turns out I was wrong to remove this; it
causes a lot of pain trying to run EUV etc during typeck without
ICEing on erroneous programs.
2015-01-03 07:00:51 -05:00
bors
fc2ba13939
auto merge of #20456 : brson/rust/packaging2, r=alexcrichton
2015-01-03 05:35:17 +00:00
Brian Anderson
d30353c1d2
Remove .pkg and .exe installers
2015-01-02 20:44:07 -08: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
bors
a6b109723a
auto merge of #19835 : pythonesque/rust/add-unordered-intrinsic, r=thestinger
...
This corresponds to the JMM memory model's non-volatile reads and writes to shared variables. It provides fairly weak guarantees, but prevents UB (specifically, you will never see a value that was not written _at some point_ to the provided location). It is not part of the C++ memory model and is only legal to provide to LLVM for loads and stores (not fences, atomicrmw, etc.).
Valid uses of this ordering are things like racy counters where you don't care about the operation actually being atomic, just want to avoid UB. It cannot be used for synchronization without additional memory barriers since unordered loads and stores may be reordered freely by the optimizer (this is the main way it differs from relaxed).
Because it is new to Rust and it provides so few guarantees, for now only the intrinsic is provided--this patch doesn't add it to any of the higher-level atomic wrappers.
2015-01-03 01:10:40 +00:00
bors
c89417130f
auto merge of #20436 : alexcrichton/rust/rollup, r=alexcrichton
2015-01-02 21:56:13 +00: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
Brian Anderson
e95cbb3aca
mk: Change package name from 'rust' to 'rustc'
2015-01-02 13:36:51 -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
fc7d8faba8
Handle recursive obligations without exiting the inference probe
...
Conflicts:
src/librustc/middle/traits/select.rs
2015-01-02 14:22:00 -05:00
Niko Matsakis
45468f37c8
Temporarily do not evaluate subobligations.
2015-01-02 14:21:49 -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
3dfb29e8cd
rollup merge of #20392 : daramos/travis
...
Travis recently launched their new infrastructure on Amazon EC2 with improved resources. The only limitation is that they don't support sudo. http://blog.travis-ci.com/2014-12-17-faster-builds-with-container-based-infrastructure/
I couldn't find anywhere where the build system uses sudo so I don't think that limitation affects rust builds.
This change drops the current `make tidy` times [slightly](https://travis-ci.org/daramos/rust/builds )(travis-test branch).
2015-01-02 09:22:44 -08:00
Alex Crichton
c5b9ffdee6
rollup merge of #20391 : daramos/utf8_lossy
...
Prior to 9bae6ec828
from_utf8_lossy had a minor optimization in place that avoided having to loop from the beginning of the input slice.
Recently 4908017d59
implemented Utf8Error::InvalidByte which makes this possible again.
2015-01-02 09:22:42 -08:00
Alex Crichton
e80b9811a6
rollup merge of #20388 : brson/install-tweaks
...
r? @alexcrichton
2015-01-02 09:22:40 -08:00
Alex Crichton
9ca8076cb7
rollup merge of #20386 : frewsxcv/rm-reexports
...
Part of #19253
[breaking-change]
2015-01-02 09:22:37 -08:00
Alex Crichton
073fd5beab
rollup merge of #20385 : nick29581/x-object
...
Closes #19056
2015-01-02 09:22:35 -08:00
Alex Crichton
3cf1992c99
rollup merge of #20380 : dcrewi/fix-make-install
...
There seems to be a problem introduced by
8b3c67690c
that causes "make install"
to fail when the build is not configured to skip doc building.
2015-01-02 09:22:22 -08:00
Alex Crichton
b9a26bf4b1
rollup merge of #20334 : nagisa/ffi-llvm
...
Fixes #20313
r? @huonw
2015-01-02 09:22:18 -08:00
Alex Crichton
656d5bbb92
rollup merge of #20227 : FlashYoshi/patch-1
2015-01-02 09:22:15 -08:00
Alex Crichton
5bd7a78f66
rollup merge of #19625 : mrhota/guide_traits
...
Nothing major. Clarification, copy-editing, typographical and grammatical consistency
2015-01-02 09:22:10 -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
4b0e084aa1
rollup merge of #20354 : alexcrichton/second-pass-thread_local
...
Conflicts:
src/libstd/sys/common/thread_info.rs
2015-01-02 09:19:45 -08: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
0101bbe7ac
rollup merge of #20420 : alexcrichton/second-pass-boxed
2015-01-02 09:17:08 -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
704ed4c7d0
Address nits.
2015-01-02 12:09:38 -05: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
dabd7507b6
Ensure that, for every trait Foo
, the predicate Foo : Foo
holds.
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