66051 Commits

Author SHA1 Message Date
bors
83c659ef65 Auto merge of #42492 - petrochenkov:methlife, r=nikomatsakis
Support generic lifetime arguments in method calls

Fixes https://github.com/rust-lang/rust/issues/42403
Fixes https://github.com/rust-lang/rust/issues/42115
Lifetimes in a method call `x.f::<'a, 'b, T, U>()` are treated exactly like lifetimes in the equivalent UFCS call `X::f::<'a, 'b, T, U>`.
In addition, if the method has late bound lifetime parameters (explicit or implicit), then explicitly specifying lifetime arguments is not permitted (guarded by a compatibility lint).
[breaking-change] because previously lifetimes in method calls were accepted unconditionally.

r? @eddyb
2017-07-18 10:20:13 +00:00
Lynn
de7decc055 Fix erroneous reference to Arc instead of Rc 2017-07-18 11:31:07 +02:00
Luca Barbato
e185c6c3d3 powerpc: Ignore the stack-probes test 2017-07-18 08:50:58 +00:00
kennytm
a7eb87e4fc
Change Travis CI job order.
Reorder the job matrix to take advantage of the order how Travis CI starts
them in rust-lang/rust. Plus other refactoring of `.travis.yml`.

1. Move the `$ALLOW_PR` image to the top, so users' PRs will start testing
   immediately. Previously the `$ALLOW_PR` image starts 6 minutes after the
   build was scheduled.

2. Move the slow macOS images near the top, so they share more time with
   the rest of the faster Linux builds, which should shorten total test
   time (actually not much, about 7 minutes at most if this change does
   work).

3. Merged the `install` section of both Linux and macOS to make the `env:`
   section a bit shorter, and enable change 4 below.

4. Do not download or install anything if `$SKIP_BUILD == true`, which
   further reduces chance of spurious failure in the PR-CI stage (avoid the
   red cross appearing even if CI passed).
2017-07-18 15:44:18 +08:00
bors
2e6334062e Auto merge of #43293 - alexcrichton:fail-curl, r=Mark-Simulacrum
travis: Make a few `curl` invocations more resilient

Use the `-f` flag to indicate that, for example, a 500 response code is to be
considered a failure, triggering the normal retry logic. Also ignore errors
where we check the date from google.com, as a failure there shouldn't fail the
build.
2017-07-18 04:36:12 +00:00
est31
ffefc9aa1c float_bits_conv made it into 1.20 2017-07-18 05:16:46 +02:00
Alex Crichton
c843661d9a travis: Make a few curl invocations more resilient
Use the `-f` flag to indicate that, for example, a 500 response code is to be
considered a failure, triggering the normal retry logic. Also ignore errors
where we check the date from google.com, as a failure there shouldn't fail the
build.
2017-07-17 20:11:24 -07:00
Ian Douglas Scott
6f80cd7bfc
redox: handle multiple paths in PATH 2017-07-17 19:17:48 -07:00
Aleksey Kladov
9a7cb9398d Catch expression does not require semicolon to be a statement 2017-07-18 03:42:21 +03:00
Aleksey Kladov
5e25dc9966 Unify rules about commas in match arms and semicolons in expressions 2017-07-18 03:42:21 +03:00
Johannes Löthberg
2161fb25ca Implement FromStr for RelroLevel rather than duplicating the match
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2017-07-18 01:27:55 +02:00
Johannes Löthberg
6a8328cfa3 Move relro_level from CodegenOptions to DebuggingOptions
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2017-07-18 00:18:00 +02:00
Vadim Petrochenkov
39114f9169 Make late_bound_lifetime_arguments lint warn-by-default 2017-07-18 00:33:44 +03:00
Vadim Petrochenkov
46f427bee9 Fix incorrect subst index
Fix treatment of lifetimes defined in nested types during detection of late bound regions in signatures.
Do not replace substs with inference variables when "cannot specify lifetime arguments explicitly..." is reported as a lint.
2017-07-18 00:12:48 +03:00
Vadim Petrochenkov
e40cedb393 Detect implicitly defined late bound lifetime parameters as well 2017-07-18 00:12:48 +03:00
Vadim Petrochenkov
7ca378b251 Prohibit lifetime arguments in path segments with late bound lifetime parameters 2017-07-18 00:12:48 +03:00
Vadim Petrochenkov
9967e9e3e9 Support generic lifetime arguments in method calls 2017-07-18 00:12:48 +03:00
Ximin Luo
ffae5deaa7 configure: allow distros to disable debuginfo-only-std 2017-07-17 22:29:09 +02:00
gaurikholkar
26a8357f5c reorder span labels 2017-07-18 00:07:37 +05:30
Collin J. Sutton
1ac98ae307 std::time::Duration: improve _precision_ of terminology in docs
Changed wording of docs on `std::time::Duration` for better clarity
w.r.t. the contents of the type and the purpose of its methods.
2017-07-17 11:17:38 -07:00
kennytm
2d6c10f6f4
Fix "Quasi-quoting is inefficient" warning in incremental rustbuild.
After #43252 is merged, building stage0 libcore with -i (--incremental)
flag will cause 17 "Quasi-quoting might make incremental compilation very
inefficient: NtExpr(..)" warnings, as in #40946.

Fixing the warning in #40946 will take 12 weeks from now to make into the
next stage0, so it is quicker to workaround it in libcore instead.
2017-07-18 01:49:40 +08:00
bors
2652ce6771 Auto merge of #42711 - Firstyear:san-on-dylib, r=alexcrichton
Add support for dylibs with Address Sanitizer

Many applications use address sanitizer to assert correct behaviour of their programs. When using Rust with C, it's much more important to assert correct programs with tools like asan/lsan due to the unsafe nature of the access across an ffi boundary. However, previously only rust bin types could use asan. This posed a challenge for existing C applications that link or dlopen .so when the C application is compiled with asan.

This PR enables asan to be linked to the dylib and cdylib crate type. We alter the test to check the proc-macro crate does not work with -Z sanitizer=address. Finally, we add a test that compiles a shared object in rust, then another rust program links it and demonstrates a crash through the call to the library.

This PR is nearly complete, but I do require advice on the change to fix the -lasan that currently exists in the dylib test. This is required because the link statement is not being added correctly to the rustc build when -Z sanitizer=address is added (and I'm not 100% sure why)

Thanks,
2017-07-17 17:02:18 +00:00
Esteban Küber
faf90351b7 Add flag to hide code on inline suggestions
Now there's a way to add suggestions that hide the suggested code when
presented inline, to avoid weird wording when short code snippets are
added at the end.
2017-07-17 09:27:51 -07:00
NODA, Kai
2e8859ce4e
libstd: remove redundant & from &Path::new(...)
fn Path::new<S: AsRef ...>(s: &S) -> &Path

Signed-off-by: NODA, Kai <nodakai@gmail.com>
2017-07-18 00:07:09 +08:00
Richard Dodd
5aa8cc8412 Only set cwd for test process, not compiler 2017-07-17 17:01:01 +01:00
Richard Dodd
c35030af87 Try running all tests using cwd 2017-07-17 17:01:01 +01:00
Richard Dodd
f4e329f178 Make compiletest set cwd before running js tests 2017-07-17 17:01:01 +01:00
Michael Woerister
226bc92b64 partitioning: Fix visibility of internalized symbols. 2017-07-17 15:59:22 +02:00
bors
028569ab1b Auto merge of #43266 - feadoor:issue-43253-exclusive-range-warning, r=nikomatsakis
Fix `range_covered_by_constructor` for exclusive ranges.

This resolves #43253
2017-07-17 13:31:37 +00:00
bors
5803f99bd4 Auto merge of #42033 - oli-obk:suggestions, r=petrochenkov
Change some notes into suggestions

r? @petrochenkov since you commented on the same edits in #39458
2017-07-17 10:58:08 +00:00
Sam Cappleman-Lynes
c329311b54 Update merge queue link 2017-07-17 11:57:26 +01:00
Mátyás Mustoha
bbdbb65467 Allow remote testing remotely when TEST_DEVICE_ADDR is set 2017-07-17 11:33:48 +02:00
Chris Wong
b525abb7b2 Add #[derive(Clone)] to TokenTreeIter 2017-07-17 20:34:13 +12:00
Oliver Schneider
eb7f429ea5 Move resolve diagnostic instability to compile-fail
The produced paths aren't stable between builds, since
reporting paths inside resolve, before resolve is finished
might produce paths resolved to type aliases instead of
the concrete type.

Compile-fail tests can match just parts of messages, so they
don't "suffer" from this issue.

This is just a workaround, the instability should be fixed
in the future.
2017-07-17 10:16:08 +02:00
Oliver Schneider
a9d9a4aab4
Change some helps to suggestions 2017-07-17 10:03:37 +02:00
Oliver Schneider
4a286639e8
Move some tests from compile-fail to ui 2017-07-17 08:38:54 +02:00
bors
88cf76a64e Auto merge of #42146 - nrc:rls-rust, r=alexcrichton
More Rust/RLS integration

r? @alexcrichton

cc https://github.com/rust-lang-nursery/rls/issues/310

closes #41199
closes #41197
2017-07-17 05:25:48 +00:00
Nick Cameron
04415dc64c Run RLS tests 2017-07-17 17:21:46 +12:00
Nick Cameron
25797938b0 Remove exception from license check for strings.rs 2017-07-17 17:21:46 +12:00
bors
08652ec957 Auto merge of #43258 - petrochenkov:cbabort, r=alexcrichton
Compile `compiler_builtins` with `abort` panic strategy

A workaround for https://github.com/rust-lang/rust/issues/43095

In case this causes unexpected consequences, I use a simpler workaround locally:
```diff
--- a/src/bootstrap/bin/rustc.rs
+++ b/src/bootstrap/bin/rustc.rs
@@ -175,7 +175,9 @@ fn main() {
         }

         if let Ok(s) = env::var("RUSTC_CODEGEN_UNITS") {
-            cmd.arg("-C").arg(format!("codegen-units={}", s));
+            if crate_name != "compiler_builtins" {
+                cmd.arg("-C").arg(format!("codegen-units={}", s));
+            }
         }

         // Emit save-analysis info.
```

r? @alexcrichton
2017-07-17 03:03:19 +00:00
bors
56071f6879 Auto merge of #43055 - est31:stabilize_float_bits_conv, r=sfackler
Stabilize float_bits_conv for Rust 1.21

Stabilizes the `float_bits_conv` lib feature for the 1.20 release of Rust. I've initially implemented the feature in #39271 and later made PR #43025 to output quiet NaNs even on platforms with different encodings, which seems to have been the only unresolved issue of the API.

Due to PR #43025 being only applied to master this stabilisation can't happen for Rust 1.19 through the usual "stabilisation on beta" system that is being done for library APIs.

r? @BurntSushi

closes #40470.
2017-07-17 00:19:43 +00:00
Cameron Hart
ebc2f7d6ed Support repr alignment on unions. 2017-07-17 07:55:49 +10:00
Vadim Petrochenkov
465ada623a Fix checking for missing stability annotations
Remove couple of unnecessary `#![feature(staged_api)]`.
2017-07-16 23:15:07 +03:00
Esteban Küber
7239d77171 Point at : when using it instead of ;
When triggering type ascription in such a way that we can infer a
statement end was intended, add a suggestion for the change. Always
point out the reason for the expectation of a type is due to type
ascription.
2017-07-16 11:49:10 -07:00
Sam Cappleman-Lynes
1b3c339560 Update function name to reflect reality 2017-07-16 18:05:03 +01:00
Sam Cappleman-Lynes
b11596867d Fix range_covered_by_constructor for exclusive ranges.
This resolves #43253
2017-07-16 17:34:09 +01:00
bors
8f1339af2e Auto merge of #43237 - zackmdavis:missing_sum_and_product_for_128_bit_integers, r=nagisa
add u128/i128 to sum/product implementors

Resolves #43235.
2017-07-16 12:42:56 +00:00
bors
be18613281 Auto merge of #43252 - vbrandl:doc/default-values, r=GuillaumeGomez
Document default values for primitive types

All primitive types implement the `Default` trait but the documentation just says `Returns the "default value" for a type.` and doesn't give a hint about the actual default value. I think it would be good to document the default values in a proper way.
I changed the `default_impl` macro to accept a doc string as a third parameter and use this string to overwrite the documentation of `default()` for each primitive type.
The generated documentation now looks like this:
![Documentation of default() on the bool primitive](https://i.imgur.com/nK6TApo.png)
2017-07-16 10:22:00 +00:00
Vadim Petrochenkov
5f37110e5e Compile compiler_builtins with abort panic strategy 2017-07-16 02:02:34 +03:00
Others
c458627230 Improve panic docs for Instant::duration_since
The docs for Instant::duration_since has a confusing section on panicking. It's
much more clear without the second two sentences of description.
2017-07-15 16:23:11 -04:00