Commit Graph

97065 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
dbf54ad324
Rollup merge of #63095 - Centril:incomplete-features-lint, r=varkor
Turn `INCOMPLETE_FEATURES` into lint

We do this because it is annoying to see the warning when building rustc and because this is better from a "separation of concerns" POV.

The drawback to this change is that this will respect `--cap-lints`.
Also note that this is not a buffered lint so if there are fatal parser errors then the lint will not trigger.

r? @varkor
2019-07-30 22:43:34 +02:00
Mazdak Farrokhzad
9fb8f1b2bf
Rollup merge of #62469 - czipperz:liballoc-add-doc-links, r=GuillaumeGomez
Add doc links to liballoc crate page
2019-07-30 22:43:33 +02:00
Mazdak Farrokhzad
d8280faabf
Rollup merge of #62293 - Centril:remove-await-macro, r=cramertj
Unsupport the `await!(future)` macro

Unsupport the `await!(future)` "macro" and recognize it in error recovery instead.

The `future.await` syntax has been on nightly since 2019-05-08.
This was 55 days ago which is 1.31 releases ago.

Closes https://github.com/rust-lang/rust/issues/60610.

r? @cramertj
2019-07-30 22:43:31 +02:00
Esteban Küber
9e59d744ac fix tests 2019-07-30 13:28:35 -07:00
Erin Power
c599fcce70 Updated RELEASES.md for 1.37.0 2019-07-30 16:19:56 -04:00
bors
dddb7fca09 Auto merge of #62805 - Xanewok:update-rls, r=Xanewok
Update RLS and Rustfmt

Supersedes https://github.com/rust-lang/rust/pull/62537.
Closes #62803.

Fixes fallout after https://github.com/rust-lang/rust/pull/62679.

r? @ghost
2019-07-30 16:59:09 +00:00
Igor Matuszewski
1b61db706a Enable nightly feature for crossbeam-utils dep
Last two commits bumped rustc-ap-* crates which also transitively
updated rustc_data_structures. That crate enables the "nightly"
whereas Cargo's dep does not hence why we need to unify the features
to deduplicate the artifacts.
2019-07-30 18:10:53 +02:00
Matthias Krüger
4c8650844c submodules: update clippy from dc69a5c0 to c3e91365
Changes:
````
Fix breakage due to rust-lang/rust#61856
Fix dogfood test
Hash discriminant of lifetime.name
Hash discriminant of Lifetime::Name
Updated tests.
Respond to review comments
Updated test stderr
Added doc comment fixed type printout
Respond to comments and improve printout
Responded to comments and fixed compile bug
Fixed more compile errors
Fix some of the compile errors
Changed Ty to ty, added lifetime 'tcx
Lint for type repetition in trait bounds.
````
2019-07-30 17:11:30 +02:00
Saleem Jaffer
5585445a33 throw_X macros use err_X macros 2019-07-30 20:36:17 +05:30
Saleem Jaffer
35417e722b renaming throw_err_* to throw_* 2019-07-30 20:18:50 +05:30
Igor Matuszewski
ab27d67738 Update Rustfmt 2019-07-30 13:02:07 +02:00
Igor Matuszewski
d2d192ee4c Update RLS 2019-07-30 13:01:00 +02:00
Saleem Jaffer
fc5df1dfbf renaming err to err_unsup 2019-07-30 16:08:32 +05:30
Saleem Jaffer
b60a336e86 tidy fixes 2019-07-30 15:46:02 +05:30
Saleem Jaffer
69daf844da adding throw_ and err_ macros for InterpError 2019-07-30 15:25:12 +05:30
Mazdak Farrokhzad
b21f0a313e Pacify tidy, the merciless. 2019-07-30 10:55:45 +02:00
Mazdak Farrokhzad
99c4a94fa5 Update error_codes re. await_macro removal. 2019-07-30 10:55:45 +02:00
Mazdak Farrokhzad
581f2cbfe9 Adjust tests. wrt. await_macro being removed. 2019-07-30 10:55:45 +02:00
Mazdak Farrokhzad
758931948f Unsupport the await!(..) macro. 2019-07-30 10:55:45 +02:00
Mazdak Farrokhzad
969a3743e6 Subslice patterns: Test passing static & dynamic semantics. 2019-07-30 10:46:30 +02:00
Mazdak Farrokhzad
24a178e397 --bless tests due to INCOMPLETE_FEATURES being a lint. 2019-07-30 10:43:32 +02:00
bors
f690098e6d Auto merge of #62766 - alexcrichton:stabilize-pipelined-compilation, r=oli-obk
rustc: Stabilize options for pipelined compilation

This commit stabilizes options in the compiler necessary for Cargo to
enable "pipelined compilation" by default. The concept of pipelined
compilation, how it's implemented, and what it means for rustc are
documented in #60988. This PR is coupled with a PR against Cargo
(rust-lang/cargo#7143) which updates Cargo's support for pipelined
compliation to rustc, and also enables support by default in Cargo.
(note that the Cargo PR cannot land until this one against rustc lands).

The technical changes performed here were to stabilize the functionality
proposed in #60419 and #60987, the underlying pieces to enable pipelined
compilation support in Cargo. The issues have had some discussion during
stabilization, but the newly stabilized surface area here is:

* A new `--json` flag was added to the compiler.
* The `--json` flag can be passed multiple times.
* The value of the `--json` flag is a comma-separated list of
  directives.
* The `--json` flag cannot be combined with `--color`
* The `--json` flag must be combined with `--error-format=json`
* The acceptable list of directives to `--json` are:
  * `diagnostic-short` - the `rendered` field of diagnostics will have a
    "short" rendering matching `--error-format=short`
  * `diagnostic-rendered-ansi` - the `rendered` field of diagnostics
    will be colorized with ansi color codes embedded in the string field
  * `artifacts` - JSON blobs will be emitted for artifacts being emitted
    by the compiler

The unstable `-Z emit-artifact-notifications` and `--json-rendered`
flags have also been removed during this commit as well.

Closes #60419
Closes #60987
Closes #60988
2019-07-30 08:39:29 +00:00
Mazdak Farrokhzad
8a90173239 Allow 'incomplete_features' in libcore/alloc. 2019-07-30 10:32:43 +02:00
Mazdak Farrokhzad
dcc4b994b9 Turn INCOMPLETE_FEATURES into a lint. 2019-07-30 10:32:43 +02:00
Saleem Jaffer
2a33fbff22 addding an interp_error module 2019-07-30 13:18:36 +05:30
Saleem Jaffer
96205212e5 code review fixes 2019-07-30 12:32:43 +05:30
Esteban Küber
762f6452b9 review comments 2019-07-29 21:43:54 -07:00
Esteban Küber
86f4f68b70 Improve handling of invalid references in format!() 2019-07-29 21:24:10 -07:00
bors
4eeaaa722d Auto merge of #63124 - Centril:rollup-onohtqt, r=Centril
Rollup of 12 pull requests

Successful merges:

 - #61965 (Remove mentions of removed `offset_to` method from `align_offset` docs)
 - #62928 (Syntax: Recover on `for ( $pat in $expr ) $block`)
 - #63000 (Impl Debug for Chars)
 - #63083 (Make generic parameters always use modern hygiene)
 - #63087 (Add very simple edition check to tidy.)
 - #63093 (Properly check the defining scope of existential types)
 - #63096 (Add tests for some `existential_type` ICEs)
 - #63099 (vxworks: Remove Linux-specific comments.)
 - #63106 (ci: Skip installing SWIG/xz on OSX )
 - #63108 (Add links to None in Option doc)
 - #63109 (std: Fix a failing `fs` test on Windows)
 - #63111 (Add syntactic and semantic tests for rest patterns, i.e. `..`)

Failed merges:

r? @ghost
2019-07-30 03:38:54 +00:00
Mazdak Farrokhzad
91c10f8839
Rollup merge of #63111 - Centril:rest-pat-tests, r=estebank
Add syntactic and semantic tests for rest patterns, i.e. `..`

As per my first note in https://github.com/rust-lang/rust/issues/62254#issuecomment-515784884 this adds syntactic and semantic tests for `..` ("rest") patterns which were implemented in https://github.com/rust-lang/rust/pull/62550.

r? @estebank
2019-07-30 05:37:46 +02:00
Mazdak Farrokhzad
2becb62166
Rollup merge of #63109 - alexcrichton:disable-windows-fs-test, r=sfackler
std: Fix a failing `fs` test on Windows

In testing 4-core machines on Azure the `realpath_works_tricky` test in
the standard library is failing with "The directory name is invalid". In
attempting to debug this test I was able to reproduce the failure
locally on my machine, and after inspecing the test it I believe is
exploiting Unix-specific behavior that seems to only sometimes work on
Windows. Specifically the test basically executes:

    mkdir -p a/b
    mkdir -p a/d
    touch a/f
    ln -s a/b/c ../d/e
    ln -s a/d/e ../f

and then asserts that `canonicalize("a/b/c")` and
`canonicalize("a/d/e")` are equivalent to `a/f`. On Windows however the
first symlink is a "directory symlink" and the second is a file symlink.
In both cases, though, they're pointing to files. This means that for
whatever reason locally and on the 4-core environment the call to
`canonicalize` is failing. On Azure today it seems to be passing, and
I'm not entirely sure why. I'm sort of presuming that there's some sort
of internals going on here where there's some global Windows setting
which makes symlinks behavior more unix-like and ignore the directory
hint.

In any case this should keep the test working and also fixes the test
locally for me. It's also worth pointing out that this test was made Windows compatible in https://github.com/rust-lang/rust/pull/31360, a pretty ancient PR at this point.
2019-07-30 05:37:44 +02:00
Mazdak Farrokhzad
a03caecc53
Rollup merge of #63108 - lzutao:option-xor-typo, r=jonas-schievink
Add links to None in Option doc

r? @jonas-schievink
2019-07-30 05:37:43 +02:00
Mazdak Farrokhzad
3ef6f6d10d
Rollup merge of #63106 - alexcrichton:remove-swig-osx, r=pietroalbini
ci: Skip installing SWIG/xz on OSX

I'm relatively certain that SWIG was only needed for LLDB which is no
longer built, and I'm hoping we can remove the xz install to remove the
reliance on `brew` for our build (which is another point of failure for
flaky networks).
2019-07-30 05:37:41 +02:00
Mazdak Farrokhzad
cc4a8d7e72
Rollup merge of #63099 - josephlr:vxworks, r=alexcrichton
vxworks: Remove Linux-specific comments.

It looks like the VxWorks fork inadvertently left in some Linux-specific workaround comments in `libstd`, these can be removed. Came up when looking into #62516

CC:  @BaoshanPang
2019-07-30 05:37:40 +02:00
Mazdak Farrokhzad
09eb0b1b32
Rollup merge of #63096 - Centril:existential-type-add-tests, r=varkor
Add tests for some `existential_type` ICEs

Fix #53678
Fix #60407
Fix #60564

https://github.com/rust-lang/rust/issues/54899 will need some minimization before it can be added.

r? @varkor
2019-07-30 05:37:39 +02:00
Mazdak Farrokhzad
f3750e34b4
Rollup merge of #63093 - Aaron1011:fix/existential-closure, r=cramertj
Properly check the defining scope of existential types

Fixes #52632

Existential types (soon to be 'impl trait' aliases) can either be
delcared at a top-level crate/module scope, or within another item such
as an fn. Previously, we were handling the second case incorrectly when
recursively searching for defining usages - we would check children of
the item, but not the item itself. This lead to us missing closures
that consituted a defining use of the existential type, as their opaque
type instantiations are stored in the TypeckTables of their parent
function.

This commit ensures that we explicitly visit the defining item itself,
not just its children.
2019-07-30 05:37:37 +02:00
Mazdak Farrokhzad
44130681eb
Rollup merge of #63087 - crlf0710:tidy_2018, r=Mark-Simulacrum
Add very simple edition check to tidy.

Fixes #58099.
2019-07-30 05:37:36 +02:00
Mazdak Farrokhzad
652f13d838
Rollup merge of #63083 - matthewjasper:parameter-hygiene, r=petrochenkov
Make generic parameters always use modern hygiene

* E0263 (lifetime parameter declared twice in the same scope) now compares modernized identifiers.
* Const parameters are now resolved with modern hygiene.

Closes #58307
Closes #60746
Closes #61574
Closes #62433
2019-07-30 05:37:34 +02:00
Mazdak Farrokhzad
51e50ed827
Rollup merge of #63000 - max-sixty:chars-display, r=alexcrichton
Impl Debug for Chars

Closes https://github.com/rust-lang/rust/issues/62947, making `Debug` more consistent with the struct's output and purpose

Let me know any feedback!
2019-07-30 05:37:33 +02:00
Mazdak Farrokhzad
36029878e7
Rollup merge of #62928 - Centril:recover-parens-around-for-head, r=estebank
Syntax: Recover on `for ( $pat in $expr ) $block`

Fixes #62724 by adding some recovery:

```
error: unexpected closing `)`
  --> $DIR/recover-for-loop-parens-around-head.rs:10:23
   |
LL |     for ( elem in vec ) {
   |         --------------^
   |         |
   |         opening `(`
   |         help: remove parenthesis in `for` loop: `elem in vec`
```

The last 2 commits are drive-by cleanups.

r? @estebank
2019-07-30 05:37:32 +02:00
Mazdak Farrokhzad
b5bea2565e
Rollup merge of #61965 - phil-opp:patch-4, r=scottmcm
Remove mentions of removed `offset_to` method from `align_offset` docs

The `offset_to` method was deleted in https://github.com/rust-lang/rust/pull/52814.

The replacement for the removed method is `wrapping_offset_from`. However, neither method takes an `usize` as argument, so I don't think that it makes sense to mention them.
2019-07-30 05:37:30 +02:00
TankhouseAle
4a3d41d334
Add the necessary changes to any.rs
Specifically the `#[rustc_const_unstable(feature = "const_type_name")]` attribute, as well as marking the actual function as `const`.
2019-07-29 23:02:29 -04:00
TankhouseAle
873b361480
Add a test for std::any::type_name() as a const fn
This is a modified version of the test I added previously. The difference is this version implements a wrapper around std::any::type_name versus core::intrinsics::type_name, in order to show that it works as desired / intended.
2019-07-29 22:57:21 -04:00
Mazdak Farrokhzad
f3a3290ba3 Account for maybe_whole_expr in range patterns. 2019-07-30 04:22:09 +02:00
Esteban Küber
159dcb2194 On format!() arg count mismatch provide extra info
When positional width and precision formatting flags are present in a
formatting string that has an argument count mismatch, provide extra
information pointing at them making it easiser to understand where the
problem may lay:

```
error: 4 positional arguments in format string, but there are 3 arguments
  --> $DIR/ifmt-bad-arg.rs:78:15
   |
LL |     println!("{} {:.*} {}", 1, 3.2, 4);
   |               ^^ ^^--^ ^^      --- this parameter corresponds to the precision flag
   |                    |
   |                    this precision flag adds an extra required argument at position 1, which is why there are 4 arguments expected
   |
   = note: positional arguments are zero-based
   = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html

error: 4 positional arguments in format string, but there are 3 arguments
  --> $DIR/ifmt-bad-arg.rs:81:15
   |
LL |     println!("{} {:07$.*} {}", 1, 3.2, 4);
   |               ^^ ^^-----^ ^^      --- this parameter corresponds to the precision flag
   |                    |  |
   |                    |  this precision flag adds an extra required argument at position 1, which is why there are 4 arguments expected
   |                    this width flag expects an `usize` argument at position 7, but there are 3 arguments
   |
   = note: positional arguments are zero-based
   = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html

error: 3 positional arguments in format string, but there are 3 arguments
  --> $DIR/ifmt-bad-arg.rs:84:15
   |
LL |     println!("{} {:07$} {}", 1, 3.2, 4);
   |               ^^ ^^---^ ^^
   |                    |
   |                    this width flag expects an `usize` argument at position 7, but there are 3 arguments
   |
   = note: positional arguments are zero-based
   = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html
```
2019-07-29 18:19:21 -07:00
Mazdak Farrokhzad
6c7613b7fd Add semantic test for rest patterns. 2019-07-29 21:39:36 +02:00
Matthew Jasper
0fb9295e12 Add another test for const parameter (non) hygiene. 2019-07-29 20:04:07 +01:00
Mazdak Farrokhzad
15bc63e8bf Add syntactic test for rest patterns. 2019-07-29 21:04:03 +02:00
CrLF0710
870efe34c8 Add very simple edition check to tidy; and add missing edition = 2018s. 2019-07-30 01:56:03 +08:00
Alex Crichton
8d7fb87e65 std: Fix a failing fs test on Windows
In testing 4-core machines on Azure the `realpath_works_tricky` test in
the standard library is failing with "The directory name is invalid". In
attempting to debug this test I was able to reproduce the failure
locally on my machine, and after inspecing the test it I believe is
exploiting Unix-specific behavior that seems to only sometimes work on
Windows. Specifically the test basically executes:

    mkdir -p a/b
    mkdir -p a/d
    touch a/f
    ln -s a/b/c ../d/e
    ln -s a/d/e ../f

and then asserts that `canonicalize("a/b/c")` and
`canonicalize("a/d/e")` are equivalent to `a/f`. On Windows however the
first symlink is a "directory symlink" and the second is a file symlink.
In both cases, though, they're pointing to files. This means that for
whatever reason locally and on the 4-core environment the call to
`canonicalize` is failing. On Azure today it seems to be passing, and
I'm not entirely sure why. I'm sort of presuming that there's some sort
of internals going on here where there's some global Windows setting
which makes symlinks behavior more unix-like and ignore the directory
hint.

In any case this should keep the test working and also fixes the test
locally for me.
2019-07-29 10:53:47 -07:00