Commit Graph

66145 Commits

Author SHA1 Message Date
bors
7167843748 Auto merge of #43505 - eddyb:poly-const-eval-layout-of, r=nikomatsakis
rustc_const_eval: always require Substs and a ParamEnv.

Fixes #43357 by tracking the `Substs` and `ParamEnv` for const-evaluation in generic contexts.
2017-07-28 08:01:02 +00:00
bors
4d5150ce19 Auto merge of #43238 - estebank:try-on-unimplemented-2, r=alexcrichton
Use `rustc_on_unimplemented`'s trait name argument in `try`

Follow up to #43000 and #43001. Fix #42694.
2017-07-28 05:39:41 +00:00
Nick Cameron
bbc00c9e9c format!: use a dummy span rather than callee span for the span base for temporary variables 2017-07-28 16:42:39 +12:00
Nick Cameron
e1206c4b67 save-anlaysis: fix filter_generated 2017-07-28 16:42:17 +12:00
Josh Stone
efc67646fa Support homogeneous aggregates for hard-float ARM
Hard-float ARM targets use the AACPS-VFP ABI, which passes and returns
homogeneous float/vector aggregates in the VFP registers.

Fixes #43329.
2017-07-27 20:40:24 -07:00
gaurikholkar
4fb1808ab6 Adding E0623, to detect missing lifetimes when both regions are anonymous 2017-07-28 08:51:58 +05:30
bors
a9a07078ba Auto merge of #43432 - pczarn:macro-parser-description, r=jseyfried
Make the macro parser theory description more accurate

The macro parser is described as an NFA, not an Earley parser.
2017-07-28 03:16:14 +00:00
Esteban Küber
4f7834e32c Use rustc_on_unimplemented's trait name argument in try 2017-07-27 19:18:22 -07:00
bors
63b3a03dc8 Auto merge of #43217 - pnkfelix:alloc-requires-align-it-in-u32, r=alexcrichton
Add precondition to `Layout` that the `align` fit in a u32.

Add precondition to `Layout` that the `align` not exceed 2^31.

This precondition takes the form of a behavorial change in `Layout::from_size_align` (so it returns `None` if the input `align` is too large) and a new requirement for safe usage of `Layout::from_size_align_unchecked`.

Fix #30170.
2017-07-28 00:49:39 +00:00
Paul Faria
4b9acad7c6 Squash Span into SourceInfo and rename enum and its inner types 2017-07-27 19:43:05 -04:00
bors
8a78a12a55 Auto merge of #43438 - petrochenkov:path, r=jseyfried
syntax: Simplify parsing of paths

Discern between `Path` and `Path<>` in AST (but not in HIR).
Give span to angle bracketed generic arguments (`::<'a, T>` in `path::segment::<'a, T>`).

This is a refactoring in preparation for https://internals.rust-lang.org/t/macro-path-uses-novel-syntax/5561/3, but it doesn't add anything to the grammar yet.

r? @jseyfried
2017-07-27 22:22:01 +00:00
Luca Barbato
cbce0aa341 Add support for Vector Minimum on PowerPC 2017-07-27 21:30:31 +00:00
Ariel Ben-Yehuda
e268ddf52d erase types in the move-path abstract domain
Leaving types unerased would lead to 2 types with a different "name"
getting different move-paths, which would cause major brokenness (see
e.g. #42903).

This does not fix any *known* issue, but is required if we want to use
abs_domain with non-erased regions (because the same can easily
have different names). cc @RalfJung.
2017-07-27 23:14:41 +03:00
Vadim Petrochenkov
1e8a7f68e9 Avoid duplicated errors for generic arguments in macro paths 2017-07-27 23:01:17 +03:00
Vadim Petrochenkov
128f565dae Give span to angle bracketed generic arguments 2017-07-27 22:59:35 +03:00
Vadim Petrochenkov
ce3beb609f Discern between Path and Path<> in AST 2017-07-27 22:59:35 +03:00
Vadim Petrochenkov
da77a1a0ac Simplify parsing of paths 2017-07-27 22:59:34 +03:00
bors
52a3309695 Auto merge of #43443 - bitshifter:issue-43317, r=nikomatsakis
Improve checking of conflicting packed and align representation hints on structs and unions.

Fixes #43317 and improves #33626.
2017-07-27 19:48:13 +00:00
Guillaume Gomez
2f2623b79d Update tests 2017-07-27 20:40:20 +02:00
Guillaume Gomez
1cebf98e4c Make a lint instead 2017-07-27 20:38:33 +02:00
Guillaume Gomez
b68a03bded Change doc comment to code comment 2017-07-27 20:38:32 +02:00
Guillaume Gomez
7e70a63e61 Throw errors when doc comments are added where they're unused 2017-07-27 20:38:32 +02:00
QuietMisdreavus
c9bdd518eb add [src] links to associated functions inside an impl block 2017-07-27 13:26:24 -05:00
Eduard-Mihai Burtescu
60cf5428b3 rustc_const_eval: keep track of the appropriate ParamEnv. 2017-07-27 20:59:40 +03:00
bors
5cc1baa290 Auto merge of #43482 - Mark-Simulacrum:single-rustdoc, r=alexcrichton
Compile rustdoc on-demand

Fixes #43284, fixes #38318, and fixes #39505.

Doesn't directly help with https://github.com/rust-lang/rust/issues/42686, since we need to rebuild just as much. In fact, this hurts it, since `./x.py doc --stage 0` will now fail. I'm not sure if it did before, but with these changes it runs into the problem where we attempt to use artifacts from bootstrap rustc with a non-bootstrap rustdoc, running into version conflicts. I believe this is solvable, but leaving for a future PR.

This means that rustdoc will no longer be compiled when compiling rustc, by default. However, it is still built from `./x.py build` (for hosts, but not targets, since we don't produce compiler toolchains for them) and will be built for doc tests and crate tests.

After this, the recommended workflow if you want a rustdoc is: `./x.py build --stage 1 src/tools/rustdoc` which will give you a working rustdoc in `build/triple/stage1/bin/rustdoc`. Note that you can add `src/libstd` onto the command to compile libstd as well so that the rustdoc can easily compile crates in the wild. `./x.py doc --stage 1 src/libstd` will document `libstd` with a freshly built rustdoc (if necessary), and will not rebuild rustc on modifications to rustdoc.

r? @alexcrichton
2017-07-27 17:07:58 +00:00
Luca Barbato
a718c813ed Add support for Vector Maximum on PowerPC 2017-07-27 15:59:12 +00:00
Mark Simulacrum
9ee877bbe6 Correct a few run.host invocations where run.target is intended. 2017-07-27 09:58:03 -06:00
bors
0565653eec Auto merge of #43498 - joshtriplett:fix-notices, r=aturon
Copyright/license headers

(As discussed with @aturon and @est31. CC @rust-lang/core.)

Currently, rust-lang/rust includes notices that say things like
```
The Rust Project is copyright 2010, The Rust Project
Developers.
```
or
```
Copyright (c) 2010 The Rust Project Developers
```
or
```
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
```

These notices aren't accurate. "Copyright YYYY Some Name" has a specific legal meaning, and "The Rust Project Developers" isn't a legal entity. In practice, the actual legal structure is that all Rust contributors retain their copyrights when contributing to Rust, and just license them under MIT/Apache-2.0. Our legal notices should reflect that.

This came up because of RFC 2044, which proposed fixing this for the RFC repository. That effort started out by copying the rust-lang/rust notices, propagating this issue.

Based on discussion with @aturon, the two of us propose the following:

- Delete the per-file notices entirely, for any files licensed under the standard terms. (Keep notices for anything that's *not* MIT/Apache-2.0.)
  - An alternative to that would be to just delete the first paragraph of the standard notice, and keep the second paragraph that points to the MIT and Apache 2.0 licenses.
- Delete the first paragraph of LICENSE-MIT (the inaccurate pseudo-copyright line), leaving only the text of the MIT license.
- Edit the COPYRIGHT file to more accurately describe the situation (changing the pseudo-copyright line immediately under "longer version", and editing the text that starts with "additional copyright may be ...", to just always state that copyrights are retained by the Rust contributors, and licensed under MIT/Apache-2.0 (with the exceptions to that explicitly noted in that file).

If @rust-lang/core is fine with this proposal, I'd be happy to provide a pull request with the proposed fixes.
2017-07-27 14:10:19 +00:00
Luca Barbato
ade5ead38e Add support for the Power8 and Power9 features on PowerPC 2017-07-27 13:30:51 +00:00
Mark Simulacrum
3c43163da7 Explain why we subtract one from the stage 2017-07-27 05:51:23 -06:00
Mark Simulacrum
cb27faf70f Make sure CFG_RELEASE_CHANNEL is always set.
Previously we'd build libsyntax without it when documenting and that'd
cause us to recompile it when building normally for no reason.
2017-07-27 05:51:23 -06:00
Mark Simulacrum
3b90551610 Allow changing rustdoc which builds the book. 2017-07-27 05:51:23 -06:00
Mark Simulacrum
4e5333cb2b Don't needlessly build rustdoc for compiletest.
For most tests, rustdoc isn't needed, so avoid building it.
2017-07-27 05:51:22 -06:00
Mark Simulacrum
e2e9b40e9a Build rustdoc on-demand.
Rustdoc is no longer compiled in every stage, alongside rustc, instead
it is only compiled when requested, and generally only for the last
stage.
2017-07-27 05:51:22 -06:00
Mark Simulacrum
fe0eca0d3f Change tools to take a compiler instead of a stage. 2017-07-27 05:51:22 -06:00
Mark Simulacrum
f4240a4b20 Remove src/driver 2017-07-27 05:51:22 -06:00
bors
f60d373422 Auto merge of #43489 - petrochenkov:mutref, r=GuillaumeGomez
Better diagnostics and recovery for `mut ref` in patterns

Fixes https://github.com/rust-lang/rust/issues/43286
Supersedes https://github.com/rust-lang/rust/pull/43451

r? @GuillaumeGomez
2017-07-27 11:40:12 +00:00
Eduard-Mihai Burtescu
4c900c5248 rustc_const_eval: always require correct Substs. 2017-07-27 12:22:26 +03:00
bors
da4d49002d Auto merge of #43479 - ivanbakel:loop_borrow_msg, r=estebank
Extended error message for mut borrow conflicts in loops

RFC issue: https://github.com/rust-lang/rfcs/issues/2080

The error message for multiple mutable borrows on the same value over loop iterations now makes it clear that the conflict comes from the borrow outlasting the loop. The wording of the error is based on the special case of the moved-value error for a value moved in a loop. Following the example of that error, the code remains the same for the special case.

This is mainly because I felt the current message is confusing in the loop case : https://github.com/rust-lang/rust/issues/43437. It's not clear that the two conflicting borrows are in different iterations of the loop, and instead it just looks like the compiler has an issue with a single line.
2017-07-27 07:54:15 +00:00
bors
e574ba4994 Auto merge of #43477 - est31:master, r=alexcrichton
Switch to begin_panic again

In https://github.com/rust-lang/rust/pull/42938 we made the compiler
emit a call to begin_panic_new in order to pass column info to it. Now
with stage0 updated (https://github.com/rust-lang/rust/pull/43320),
we can safely change begin_panic and start emitting calls for it again.
2017-07-27 04:25:37 +00:00
bors
4a42ff4823 Auto merge of #43445 - zackmdavis:rustdoc_major_section_self-links, r=GuillaumeGomez
rustdoc: make major section headers self-links

The sidebar already has links to these h2's ids, but for convenience,
the h2 itself should also be a link (retaining its present appearance).

![doc_sec_self-links](https://user-images.githubusercontent.com/1076988/28503806-cdce4e00-6fc1-11e7-832a-2ed1fc62808f.png)

This should address most of #24484.
2017-07-27 02:05:54 +00:00
Isaac van Bakel
688852047c Added tests for new loop borrow message
One set of tests is to ensure the current message is correct.
The other set is to check the messages are generated correctly for every
type of loop.
2017-07-27 02:43:11 +01:00
Josh Triplett
f1de27fe6b COPYRIGHT: Provide a better explanation of Rust copyrights
Avoid implying that any copyrights have been assigned to a separate
entity (such as "The Rust Project Developers") Rust contributors retain
their copyrights, and do not assign them to anyone by contributing.

Remove the inaccurate notice, and provide a clear explanation. Avoid
stating that all files contain copyright notices and/or license notices,
and especially avoid suggesting that the license terms only apply to
files marked as such.

In the process, this also drops a separate notice that implies only some
copyrights are retained by contributors (suggesting that others are
not).
2017-07-26 16:52:15 -07:00
Josh Triplett
2a8807e889 LICENSE-MIT: Remove inaccurate (misattributed) copyright notice
LICENSE-MIT contains the line "Copyright (c) 2015 The Rust Project
Developers", which implies that an entity called "The Rust Project
Developers" holds copyrights in Rust. Rust contributors retain
their copyrights, and do not assign them to anyone by contributing.
Remove the inaccurate notice.
2017-07-26 16:51:58 -07:00
bors
ddaab61101 Auto merge of #43373 - alexcrichton:stabilize-1.20.0, r=aturon
Stabilize more APIs for the 1.20.0 release

In addition to the few stabilizations that have already landed, this cleans up the remaining APIs that are in `final-comment-period` right now to be stable by the 1.20.0 release
2017-07-26 23:40:48 +00:00
bors
599be0d18f Auto merge of #43487 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 10 pull requests

- Successful merges: #42959, #43447, #43455, #43456, #43458, #43462, #43463, #43465, #43471, #43480
- Failed merges:
2017-07-26 21:08:38 +00:00
bors
d02fb3bcf4 Auto merge of #42059 - derekdreery:bugfix/fix_emscripten_tests, r=alexcrichton
Make compiletest set cwd before running js tests

Proposed fix for #38800.

Not all tests pass yet - I will mention failures here once the test suite has finished.
2017-07-26 18:27:19 +00:00
Luca Barbato
a1995d3973 Add Vector Compare Greater-Than 2017-07-26 17:19:32 +00:00
Vadim Petrochenkov
dda30f6902 Better diagnostics and recovery for mut ref in patterns 2017-07-26 18:59:07 +03:00
bors
2fc3aec431 Auto merge of #43485 - nrc:rls-env-fix, r=Mark-Simulacrum
Update RLS

This pulls in 79d659e569 It should fix #43453. It increases the timeout for test runs and forces builds in RLS tests to happen sequentially, this prevents interference between env vars passed to Cargo or rustc.

r? @Mark-Simulacrum
2017-07-26 14:08:50 +00:00