Commit Graph

84033 Commits

Author SHA1 Message Date
Niko Matsakis cbaf36adaf fix rustc_driver tests 2018-09-26 09:38:26 -04:00
Niko Matsakis e2deef32d4 pacify the mercilous tidy. 2018-09-26 09:38:26 -04:00
Niko Matsakis ffe87f63ea rustfmt error_reporting/mod.rs and dropck.rs
Pacify the mercilous tidy.
2018-09-26 09:38:26 -04:00
Niko Matsakis f87189dd3c update tests and add stderr files 2018-09-26 09:38:26 -04:00
Niko Matsakis a13c9f6bfd convert from an UnlessNll flag to a SuppressRegionErrors flag
Hopefully this will help clarify the behavior in the various borrowck
modes
2018-09-26 09:38:26 -04:00
Niko Matsakis 0b4791e60b make NLL handle IfEq bounds by using SCC normalization 2018-09-26 09:38:26 -04:00
Niko Matsakis 0f5dae0322 switch to use VerifyBound instead of RegionTest 2018-09-26 09:38:26 -04:00
Niko Matsakis 2392a09397 region_infer: rustfmt 2018-09-26 09:38:26 -04:00
Niko Matsakis dc9317ff8c use IfEq to defer equality comparison around where clauses` 2018-09-26 09:38:26 -04:00
Niko Matsakis 7f8c42d7f0 refactor away AnyRegions and AllRegions
It's a bit cleaner to just have `AnyBound` and `AllBound`, after all.
2018-09-26 09:38:26 -04:00
Niko Matsakis 18b86e9406 introduce VerifyBound::IfEq (presently unused) 2018-09-26 09:38:26 -04:00
Niko Matsakis 58fd6fad24 change to use impl Trait a bit 2018-09-26 09:38:26 -04:00
Niko Matsakis 85d12e2f0b remove handling of verify from taintset
This lets us remove `for_each_region` and makes things simpler.
2018-09-26 09:38:26 -04:00
Niko Matsakis b5469c5fd7 make normalize work on any type-foldable 2018-09-26 09:38:26 -04:00
Niko Matsakis 688aaf3bbb lexical_region_resolve: rustfmt 2018-09-26 09:38:26 -04:00
Niko Matsakis 582a369bc3 encapsulate infcx too into the delegate 2018-09-26 09:38:26 -04:00
Niko Matsakis c6f4513804 extract out NLL-specific code from relate-tys into a delegate
No functional change.
2018-09-26 09:38:26 -04:00
Niko Matsakis a4955d1b2c refactor NLL relate_tys to use Region internally, not RegionVid
No functional change.
2018-09-26 09:38:26 -04:00
Niko Matsakis 689b791422 use approx. bounds to decide whether to add outlives obligations
Before, if we had a projection like `<T as Foo<'0>>::Bar: 'x` and a
where clause like `<T as Foo<'a>>::Bar: 'a`, we considered those to
have nothing to do with one another. Therefore, we would use the
"overconstrained" path of adding `T: 'x` and `'0: 'x` requirements. We
now do a "fuzzy" match where we erase regions first and hence we see
the env bound `'a`.
2018-09-26 09:38:26 -04:00
Niko Matsakis 4b193cb92a propagate the compare_ty fn further up 2018-09-26 09:38:26 -04:00
Niko Matsakis 13d579bd62 introduce the idea of an "approximate match"
In fact, however, we currently always give back the same exact answers
as ever. But we don't rely on them being exact anymore.
2018-09-26 09:38:26 -04:00
Niko Matsakis db0e62692e introduce a "comparison fn" instead of always use == 2018-09-26 09:38:26 -04:00
Niko Matsakis 9b63dcc773 split out getting the declared bounds from the env versus trait
Right now, we just concatenate them
2018-09-26 09:38:26 -04:00
Niko Matsakis b0e1fec332 break out the code that computes VerifyBounds
Later, we'll defer this work until a separate phase.
2018-09-26 09:38:26 -04:00
Niko Matsakis b2e0215a1f apply process_registered_region_obligations at the end of regionck
We used to apply it repeatedly as we went, relying on the current
value of the `region_bound_pairs_accum` vector. But now we save those
values into a map, so we can just process all the registered region
obligations at the end.
2018-09-26 09:38:26 -04:00
Niko Matsakis 9e305a8a23 type_check/mod.rs: rustfmt 2018-09-26 09:38:24 -04:00
Niko Matsakis 2f31698c26 use RegionBoundPairs type alias 2018-09-26 09:37:02 -04:00
Niko Matsakis d5d2232838 auto_trait.rs: rustfmt 2018-09-26 09:30:54 -04:00
Niko Matsakis 672e071a42 change RegionObligation to store a SubregionOrigin 2018-09-26 09:30:54 -04:00
Niko Matsakis 1830c9e8f9 use a UnlessNll flag to consolidate error reporting paths 2018-09-26 09:30:54 -04:00
Niko Matsakis 84563dac88 build up a map of the region-bound pairs for each body-id
Presently unused.
2018-09-26 09:30:54 -04:00
Niko Matsakis 1fb4ea91f2 outlives/env: rustfmt 2018-09-26 09:30:54 -04:00
Niko Matsakis 80ed62eea7 regionck: rustfmt 2018-09-26 09:30:54 -04:00
bors c3a1a0d340 Auto merge of #53824 - ljedrz:begone_onevector, r=michaelwoerister
Remove OneVector, increase related SmallVec capacities

Removes the `OneVector` type alias (equivalent to `SmallVec<[T; 1]>`); it is used in scenarios where the capacity of 1 is often exceeded, which might be nullifying the performance wins (due to spilling to the heap) expected when using `SmallVec` instead of `Vec`.

The numbers I used in this PR are very rough estimates - it would probably be a good idea to adjust some/all of them, which is what this proposal is all about.

It might be a good idea to additionally create some local type aliases for the `SmallVec`s in the `Folder` trait, as they are repeated in quite a few spots; I'd be happy to apply this sort of adjustments.
2018-09-26 10:04:42 +00:00
ljedrz 130a32fa72 Remove OneVector 2018-09-26 10:43:37 +02:00
bors a2b27c19da Auto merge of #54497 - ralexstokes:stabilize_pattern_parentheses, r=nikomatsakis
Stabilize pattern_parentheses feature

Addresses #51087 .

Stabilizes the previously unstable feature `pattern_parentheses` which enables the use of `()` in match patterns.
2018-09-26 07:38:19 +00:00
bors beff387601 Auto merge of #54548 - nrc:update, r=kennytm
Update rustfmt and RLS

r? @kennytm
2018-09-26 03:45:55 +00:00
bors 0b2eae72af Auto merge of #54164 - mikhail-m1:54131, r=pnkfelix
add "temporary value borrowed for too long" error

Issue #54131

r? @nikomatsakis
2018-09-26 01:16:22 +00:00
bors 92aff72a05 Auto merge of #54575 - pietroalbini:rollup, r=pietroalbini
Rollup of 12 pull requests

Successful merges:

 - #53518 (Add doc for impl From in char_convert)
 - #54058 (Introduce the partition_dedup/by/by_key methods for slices)
 - #54281 (Search box)
 - #54368 (Reduce code block sides padding)
 - #54498 (The project moved under the Mozilla umbrella)
 - #54518 (resolve: Do not block derive helper resolutions on single import resolutions)
 - #54522 (Fixed three small typos.)
 - #54529 (aarch64-pc-windows-msvc: Don't link libpanic_unwind to libtest.)
 - #54537 (Rename slice::exact_chunks() to slice::chunks_exact())
 - #54539 (Fix js error)
 - #54557 (incr.comp.: Don't automatically enable -Zshare-generics for incr. comp. builds.)
 - #54558 (Improvements to finding LLVM's FileCheck)

Failed merges:

r? @ghost
2018-09-25 22:52:16 +00:00
Nick Cameron 90701935b3 Update rustfmt and RLS 2018-09-26 09:46:06 +12:00
Pietro Albini cc9dea43be Rollup merge of #54558 - tromey:find-filecheck, r=nikomatsakis
Improvements to finding LLVM's FileCheck

This patch adds a few improvements to how the build system finds
LLVM's FileCheck program.

* On Fedora, the system LLVM installs FileCheck in the "llvm"
  subdirectory of the LLVM libdir.  This patch teaches the build
  system to look there.

* This adds a configure option to specify which llvm-config executable
  to use.  This is handy on systems that can parallel install multiple
  versions of LLVM; for example I can now:

    ./configure --llvm-config=/bin/llvm-config-5.0-64

  ... to build against LLVM 5, rather than whatever the default
  llvm-config might be.

* Finally, this adds a configure- and config.toml- option to set the
  path to FileCheck.  This is handy when building against an LLVM
  where FileCheck was not installed.  This happens on compatibility
  installs of LLVM on Fedora.
2018-09-25 22:34:51 +02:00
Pietro Albini 4ceeec09ef Rollup merge of #54557 - michaelwoerister:dont-auto-share-generics-for-incr-comp, r=alexcrichton
incr.comp.: Don't automatically enable -Zshare-generics for incr. comp. builds.

So far the compiler would automatically enable sharing of monomorphizations for incremental builds. That was OK because without (Thin)LTO this could have very little impact on the runtime performance of the generated code. However, since https://github.com/rust-lang/rust/pull/53673, ThinLTO and incr. comp. can be combined, so the trade-off is not as clear anymore.

This PR removes the automatic tie between the two options. Whether monomorphizations are shared between crates or not now _only_ depends on the optimization level.

r? @alexcrichton
2018-09-25 22:34:50 +02:00
Pietro Albini bd217b62f6 Rollup merge of #54539 - GuillaumeGomez:fix-js-error, r=QuietMisdreavus
Fix js error

r? @QuietMisdreavus
2018-09-25 22:34:48 +02:00
Pietro Albini 6a0f45b3f4 Rollup merge of #54537 - sdroege:chunks-exact, r=alexcrichton
Rename slice::exact_chunks() to slice::chunks_exact()

See https://github.com/rust-lang/rust/issues/47115#issuecomment-403090815
and https://github.com/rust-lang/rust/issues/47115#issuecomment-424053547
2018-09-25 22:34:47 +02:00
Pietro Albini 49e0049e9f Rollup merge of #54529 - michaelwoerister:dont-unwind-test, r=alexcrichton
aarch64-pc-windows-msvc: Don't link libpanic_unwind to libtest.

This implements the suggestion from https://github.com/rust-lang/rust/issues/54190#issuecomment-422904437 in order to unbreak bootstrapping for the `aarch64-pc-windows-msvc` target. With this applied and using MSVC 15.8.3 for linking the bootstrap actually works and I can cross-compile a hello-world program.

r? @alexcrichton
2018-09-25 22:34:46 +02:00
Pietro Albini 9ea345d9d0 Rollup merge of #54522 - gardrek:patch-1, r=TimNN
Fixed three small typos.
2018-09-25 22:34:44 +02:00
Pietro Albini cf3c385fef Rollup merge of #54518 - petrochenkov:regr130, r=alexcrichton
resolve: Do not block derive helper resolutions on single import resolutions

Derive helpers currently conflict with anything else, so if some resolution from a single import appears later, it will result in error anyway.

Fixes https://github.com/rust-lang/rust/issues/54471 (stable-to-beta regression)

r? @ghost
2018-09-25 22:34:43 +02:00
Pietro Albini 4720126c16 Rollup merge of #54498 - sylvestre:patch-1, r=frewsxcv
The project moved under the Mozilla umbrella
2018-09-25 22:34:42 +02:00
Pietro Albini d2f9e666bf Rollup merge of #54368 - GuillaumeGomez:reduce-side-padding, r=QuietMisdreavus
Reduce code block sides padding

Fixes #42013.

<img width="1440" alt="screen shot 2018-09-19 at 22 58 32" src="https://user-images.githubusercontent.com/3050060/45781266-c6525680-bc5f-11e8-8eb0-98fc4c22a96e.png">

r? @QuietMisdreavus
2018-09-25 22:34:41 +02:00
Pietro Albini 888a0348fb Rollup merge of #54281 - GuillaumeGomez:search-box, r=QuietMisdreavus
Search box

Follow up of #54244.

r? @QuietMisdreavus

<img width="1440" alt="screen shot 2018-09-16 at 21 23 05" src="https://user-images.githubusercontent.com/3050060/45600056-cbf93380-b9f6-11e8-904a-d76ddbc5ed69.png">
2018-09-25 22:34:39 +02:00