Commit graph

16561 commits

Author SHA1 Message Date
bors
40bd145cbe Auto merge of #60567 - Manishearth:rollup-rjagqnw, r=Manishearth
Rollup of 5 pull requests

Successful merges:

 - #60131 (Fix broken link in rustc_plugin doc)
 - #60426 (Stop `-O`/`-C opt-level` and `-g`/`-C debuginfo` conflicting)
 - #60515 (use span instead of div for since version)
 - #60530 (rustc: rename all occurences of "freevar" to "upvar".)
 - #60536 (Correct code points to match their textual description)

Failed merges:

r? @ghost
2019-05-05 21:11:47 +00:00
Manish Goregaokar
2c7712b3f1
Rollup merge of #60530 - eddyb:unfreevars, r=oli-obk
rustc: rename all occurences of "freevar" to "upvar".

Most of the more recent code talks about "(closure) upvars", so I believe that's the name we want to use.
There's also the possibility of using "capture" which is more user-facing, but I'd rather not change *both* "freevar" and "upvar" to something else in this one PR.

cc @nikomatsakis @petrochenkov
2019-05-05 12:37:30 -07:00
Manish Goregaokar
a8ed6777ee
Rollup merge of #60426 - varkor:fix-duplicate-arg-handling, r=alexcrichton
Stop `-O`/`-C opt-level` and `-g`/`-C debuginfo` conflicting

Allow `-O` and `-C opt-level`, and `-g` and `-C debuginfo` to be specified simultaneously without conflict. In such cases, the rightmost provided option is chosen.

Fixes https://github.com/rust-lang/rust/issues/7493.
Fixes https://github.com/rust-lang/rust/issues/32352.

~Blocked on https://github.com/rust-lang-nursery/getopts/pull/79.~

r? @alexcrichton
2019-05-05 12:37:27 -07:00
bors
d628c2e642 Auto merge of #60237 - saleemjaffer:issue-56166-miri-fntype-arg-passing, r=eddyb
Move pointee_info_at from rustc_codegen_llvm to rustc_target.

Makes progress towards #56166.

This is a continuation of https://github.com/rust-lang/rust/pull/57150.

@oli-obk Should I close the older PR?
2019-05-05 18:25:13 +00:00
Saleem Jaffer
968eb7ff5a code review fixes 2019-05-05 23:39:04 +05:30
Eduard-Mihai Burtescu
8d9f4a128c rustc: rename all occurences of "freevar" to "upvar". 2019-05-05 18:49:32 +03:00
Eduard-Mihai Burtescu
125dc60dab rustc: replace uses of with_freevars with the freevars query. 2019-05-05 18:48:42 +03:00
bors
5d8fd98d34 Auto merge of #60544 - petrochenkov:parder, r=eddyb
Rename `PathResolution` to `PartialRes`

Don't use `PartialRes` when `Res` is enough.
Rename `Res::kind_name` to `Res::descr` for consistency.
Remove `Res::Label`, paths can never resolve to labels.

Some further cleanup after https://github.com/rust-lang/rust/pull/60462
r? @eddyb
2019-05-05 12:30:14 +00:00
varkor
d54cf00c77 Add comments 2019-05-05 10:45:10 +01:00
varkor
e8e43c9e16 Fix argument alias handling for -g and -C debuginfo 2019-05-05 10:45:10 +01:00
varkor
e6da57f3e7 Fix argument alias handling for -O and -C opt-level 2019-05-05 10:45:10 +01:00
bors
d65e721ef8 Auto merge of #60525 - eddyb:namespaces-not-kinds, r=petrochenkov
rustc: collapse relevant DefPathData variants into {Type,Value,Macro,Lifetime}Ns.

`DefPathData` was meant to disambiguate within each namespace, but over the years, that purpose was overlooked, and it started to serve a double-role as a sort of `DefKind` (which #60462 properly adds).
Now, we can go back to *only* categorizing namespaces (at least for the variants with names in them).

r? @petrochenkov or @nikomatsakis cc @michaelwoerister
2019-05-05 06:34:13 +00:00
bors
c55b68aaef Auto merge of #60508 - varkor:const-generics-fold-ct-err, r=petrochenkov
Fix substs issues for const errors

Fixes https://github.com/rust-lang/rust/issues/60503.
2019-05-05 03:39:16 +00:00
Jesper Steen Møller
6802082039 Hash all of the import_ids for the TraitCandidate. 2019-05-04 20:29:35 +02:00
Jesper Steen Møller
7dbb5e3b49 Use binding autoref, because we can. 2019-05-04 20:29:34 +02:00
Jesper Steen Møller
719890502e Improved name: first_import_id 2019-05-04 20:29:34 +02:00
Jesper Steen Møller
a300cab526 Revert the introduced typedefs 2019-05-04 20:29:34 +02:00
Jesper Steen Møller
5deec307f7 Fix #45268 by saving all NodeId's for resolved traits. 2019-05-04 20:29:33 +02:00
Vadim Petrochenkov
7da9250fb5 Remove Res::Label
Paths can never resolve to labels
2019-05-04 17:22:00 +03:00
Vadim Petrochenkov
85ddd1dc58 Rename Res::kind_name to Res::descr for consistency 2019-05-04 16:55:46 +03:00
Vadim Petrochenkov
917a0fbc1b Rename PathResolution to PartialRes
Don't use `PartialRes` when `Res` is enough
2019-05-04 16:55:46 +03:00
varkor
0439efbbee Improve subst error when parameter kinds mismatch 2019-05-04 14:39:43 +01:00
Saleem Jaffer
80d5478649 removing param_env from pointee_info_at 2019-05-04 18:06:40 +05:30
Saleem Jaffer
94a48924da resolving conflicts 2019-05-04 16:10:47 +05:30
Saleem Jaffer
18679cdc54 adding HasParamEnv trait 2019-05-04 15:19:59 +05:30
Saleem Jaffer
8802dc037e adding is_freeze to TyLayoutMethods 2019-05-04 15:19:59 +05:30
Saleem Jaffer
852dd491ef removing map_same from MaybeResult 2019-05-04 15:19:59 +05:30
Saleem Jaffer
8e3d9f1039 add to_result to ty::MaybeResult 2019-05-04 15:17:26 +05:30
Saleem Jaffer
199ff02dac resolving conflicts 2019-05-04 15:17:26 +05:30
Daan de Graaf
7257fc34de Make line fit within 100 character limit. 2019-05-04 15:17:26 +05:30
Daan de Graaf
d47ec57a4f Add param_env parameter to pointee_info_at.
An associated type ParamEnv has been added to TyLayoutMethods to
facilitate this.
2019-05-04 15:17:26 +05:30
Daan de Graaf
ed716d4c89 Return instead of collecting to mut result. 2019-05-04 15:17:26 +05:30
Oliver Scherer
e395026aba Fix typo in src/librustc/ty/layout.rs
Co-Authored-By: wildarch <daandegraaf9@gmail.com>
2019-05-04 15:17:26 +05:30
Daan de Graaf
b7266c6008 Move pointee_info_at to TyLayoutMethods.
The original implementation is still present at
librustc_codegen_llvm/abi.rs, should be removed later to prevent code
duplication.
2019-05-04 15:17:26 +05:30
Mazdak Farrokhzad
1599877c7e
Rollup merge of #60527 - davidtwco:issue-60518, r=cramertj
Fix async fn lowering ICE with APIT.

Fixes #60518.

This PR fixes an ICE where simple bindings (which aren't replaced with replacement arguments during async fn lowering) were not being visited in the def collector and thus caused an ICE during HIR lowering for types that use their `DefId` at that point - such as `impl Trait`.

r? @cramertj
2019-05-04 09:21:34 +02:00
Mazdak Farrokhzad
ffc33b3733
Rollup merge of #60513 - chrisvittal:remove-borrowck-compare, r=matthewjasper
Remove -Z borrowck=compare flag

This is the start of the work that needs to be done on #59193. It just removes the flag and updates
the tests.

r? @matthewjasper
2019-05-04 09:21:26 +02:00
Mazdak Farrokhzad
0399d1349e
Rollup merge of #60486 - spastorino:place-related-refactors, r=oli-obk
Place related refactors

Meanwhile I was working on Place 2 I'm finding some little things that I had on my branch but preferred to land a separate PR for things that are simpler to merge.

r? @oli-obk
2019-05-04 09:21:24 +02:00
Mazdak Farrokhzad
b4c620dc05
Rollup merge of #60449 - matthewjasper:impl-trait-outlives, r=pnkfelix
Constrain all regions in the concrete type for an opaque type

`push_outlives_components` skips some regions in a type, notably the signature
of a closure is ignored. Most of the time this is OK, but for opaque types the
concrete type is used when checking auto-trait bounds in other functions.

cc @nikomatsakis @pnkfelix

Closes #57464
Closes #60127
2019-05-04 09:21:23 +02:00
bors
e232636693 Auto merge of #59897 - tmandry:variantful-generators, r=eddyb
Multi-variant layouts for generators

This allows generators to overlap fields using variants, but doesn't do any such overlapping yet. It creates one variant for every state of the generator (unresumed, returned, panicked, plus one for every yield), and puts every stored local in each of the yield-point variants.

Required for optimizing generator layouts (#52924).

There was quite a lot of refactoring needed for this change. I've done my best in later commits to eliminate assumptions in the code that only certain kinds of types are multi-variant, and to centralize knowledge of the inner mechanics of generators in as few places as possible.

This change also emits debuginfo about the fields contained in each variant, as well as preserving debuginfo about stored locals while running in the generator.

Also, fixes #59972.

Future work:
- Use this change for an optimization pass that actually overlaps locals within the generator struct (#52924)
- In the type layout fields, don't include locals that are uninitialized for a particular variant, so miri and UB sanitizers can check our memory (see https://github.com/rust-lang/rust/issues/59972#issuecomment-483058172)
- Preserve debuginfo scopes across generator yield points
2019-05-04 03:18:14 +00:00
Tyler Mandry
77a6d29f48 Address review comments 2019-05-03 19:25:35 -07:00
Eduard-Mihai Burtescu
60f1944ebf rustc: rename DefPathData::{MacroDef,LifetimeParam} to {Macro,Lifetime}Ns. 2019-05-04 05:10:46 +03:00
Eduard-Mihai Burtescu
2efeb485a9 rustc: collapse relevant DefPathData variants into ValueNs. 2019-05-04 05:10:46 +03:00
Eduard-Mihai Burtescu
e5b9f54cd9 rustc: collapse relevant DefPathData variants into TypeNs. 2019-05-04 05:10:46 +03:00
Tyler Mandry
15dbe652ff Split out debuginfo from type info in MIR GeneratorLayout 2019-05-03 16:03:05 -07:00
David Wood
f346309562
Fix async fn lowering ICE with APIT.
This commit fixes an ICE where simple bindings (which aren't replaced
with replacement arguments during async fn lowering) were not being
visited in the def collector and thus caused an ICE during HIR lowering
for types that use their `DefId` at that point - such as `impl Trait`.
2019-05-03 22:36:35 +01:00
Christopher Vittal
db6f7a9d1a Update help message 2019-05-03 17:34:17 -04:00
Tyler Mandry
f7c2f2475a Make variant_fields inner an IndexVec 2019-05-03 14:25:22 -07:00
Eduard-Mihai Burtescu
ff174fe09e rustc: rename hir::def::Def to Res (short for "resolution"). 2019-05-03 22:50:19 +03:00
Eduard-Mihai Burtescu
b92b1a76e1 rustc: use DefKind instead of Def, where possible. 2019-05-03 22:50:09 +03:00
Eduard-Mihai Burtescu
a3fcab36d2 rustc: factor most DefId-containing variants out of Def and into DefKind. 2019-05-03 22:48:27 +03:00