Commit Graph

36895 Commits

Author SHA1 Message Date
Jorge Aparicio
274146d650 rustc_typeck: fix fallout 2015-01-03 09:34:05 -05:00
Jorge Aparicio
62ee3f1622 rustc: fix fallout 2015-01-03 09:34:05 -05:00
Jorge Aparicio
6b19a02080 syntax: fix fallout 2015-01-03 09:34:05 -05:00
Jorge Aparicio
6bff9de8ea serialize: fix fallout 2015-01-03 09:34:04 -05:00
Jorge Aparicio
f3333d5e10 regex: fix fallout 2015-01-03 09:34:04 -05:00
Jorge Aparicio
17cf5e8104 fmt_macros: fix fallout 2015-01-03 09:34:04 -05:00
Jorge Aparicio
9d36a2d593 graphviz: fix fallout 2015-01-03 09:34:04 -05:00
Jorge Aparicio
1971a24441 std: fix fallout 2015-01-03 09:34:04 -05:00
Jorge Aparicio
6b116bedaf collections: fix fallout 2015-01-03 09:34:04 -05:00
Jorge Aparicio
8c59ec0488 unicode: fix fallout 2015-01-03 09:34:04 -05:00
Jorge Aparicio
3fdd4b366a rand: fix fallout 2015-01-03 09:34:04 -05:00
Jorge Aparicio
41df05dd0e core: use assoc types in Iterator et al 2015-01-03 09:34:04 -05: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
Andrea Canciani
28cca28e62 Improve make_hash function
The `make_hash` function is used to prevent hashes of non-empty
buckets to collide with `EMPTY_HASH = 0u64`. Ideally this function
also preserve the uniform distribution of hashes and is cheap to
compute.

The new implementation reduces the input hash size by one bit, simply
by setting the most significant bit. This obviously prevent output
hashes to collide with `EMPTY_HASH` and guarantees that the uniform
distribution is preserved. Moreover, the new function is simpler (no
comparisons, just an OR) and (under the same assumptions as the old
function, i.e. only the least significant bit will contribute to the
bucket index) no additional collisions are caused.
2015-01-03 10:51:37 +01:00
Andrea Canciani
f2ee9fca85 Fix make install dependencies
After 8b3c67690c the `make install`
command fails if docs are not disabled through CFG_DISABLE_DOCS,
because now the `install` target uses
../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh

In 714a2c678c the `prepare_install`
target wwas changed to conditionally depend also on the doc archive,
but did not modify `prepare_uninstall`.

Instead of explicitly depending on
dist/$(PKG_NAME)-$(CFG_BUILD).tar.gz, the `prepare_[un]install`
targets now depend on `dist-tar-bins`, which packages the appropriate
dist archives depending on the configuration.
2015-01-03 09:49:51 +01: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
Corey Farwell
f031285c3a Remove graphviz::LabelText::* public reexport
Part of #19253

[breaking-change]
2015-01-02 19:35:56 -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
Niko Matsakis
dc97247d11 Make call notation use autoderef. Fixes #18742. 2015-01-02 20:59:11 -05: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
Brian Anderson
51a2feec7b rustup: Don't do verbose tarball extraction 2015-01-02 17:08:03 -08:00
Brian Anderson
36c63a3abe Put links to discuss.rust-lang.org and #rust-internals in CONTRIBUTING.md 2015-01-02 15:42:38 -08:00
Brian Anderson
83270ed546 rustup: Install from the combined installer 2015-01-02 15:15:15 -08: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
Brian Anderson
b32e0098ef Merge remote-tracking branch 'erickt/rustup' 2015-01-02 13:15:09 -08:00
Chase Southwood
c8fcbe7561 Fix vim syntax highlighting for derive 2015-01-02 15:06:13 -06: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