909 Commits

Author SHA1 Message Date
Eduard-Mihai Burtescu
7b353f215f rustc_borrowck: deny(unused_lifetimes). 2019-06-11 14:11:58 +03:00
Alexander Regueiro
35585c499f Aggregation of drive-by cosmetic changes. 2019-06-05 21:09:26 +01:00
Eduard-Mihai Burtescu
1768030791 rustc: track the body owner DefId in MC and EUV. 2019-06-01 19:17:23 +03:00
John Kåre Alsaker
99f6221bb6 Update borrowck 2019-05-23 18:51:42 +02:00
bors
47e0803d5c Auto merge of #60195 - varkor:commontypes-to-common, r=eddyb
Split `CommonTypes` into `CommonTypes` and `CommonLifetimes`

The so-called "`CommonTypes`" contains more than just types.

r? @eddyb
2019-05-01 09:32:58 +00:00
varkor
7261bd88ac Update existing usages 2019-04-25 22:05:04 +01:00
John Kåre Alsaker
b8b4ad597a Update region_scope_tree 2019-04-25 18:23:32 +02:00
Matthew Jasper
aa6fb6caf9 Enable migrate mode by default on the 2015 edition
This also fully stabilizes two-phase borrows on all editions
2019-04-21 20:50:02 +01:00
Esteban Küber
2f36b54f0f Emit specific error for struct literal in conditions 2019-04-19 10:13:44 -07:00
bors
d6f513ec7d Auto merge of #60025 - JohnTitor:rename-files, r=petrochenkov
Rename files about error codes

fixes #60017

This PR will be failed in tidy.

<details>
<summary>The log is here:</summary>

```
tidy check
tidy error: duplicate error code: 411
tidy error: Documents\GitHub\rust\src\librustc_resolve\diagnostics.rs:83:             __diagnostic_used!(E0411);
tidy error: Documents\GitHub\rust\src\librustc_resolve\diagnostics.rs:84:             err.code(DiagnosticId::Error("E0411".to_owned()));
tidy error: duplicate error code: 424
tidy error: Documents\GitHub\rust\src\librustc_resolve\diagnostics.rs:90:             debug!("smart_resolve_path_fragment: E0424, source={:?}", source);
tidy error: Documents\GitHub\rust\src\librustc_resolve\diagnostics.rs:92:             __diagnostic_used!(E0424);
tidy error: Documents\GitHub\rust\src\librustc_resolve\diagnostics.rs:93:             err.code(DiagnosticId::Error("E0424".to_owned()));
some tidy checks failed
```

</details>

I'd like to fix this but I don't know what to do.
I will work on later. Please let me know if you have any solutions.

r? @petrochenkov
2019-04-18 14:52:45 +00:00
Yuki OKUSHI
5f3b8d0883 Rename diagnostics to error_codes 2019-04-17 18:19:14 +09:00
Mateusz Mikuła
87e4b43d51 Deny internal in stage0 2019-04-17 05:15:00 +02:00
flip1995
d3f0cb9b62
Deny internal lints on non conflicting crates
- libarena
- librustc_allocator
- librustc_borrowck
- librustc_codegen_ssa
- librustc_codegen_utils
- librustc_driver
- librustc_errors
- librustc_incremental
- librustc_metadata
- librustc_passes
- librustc_privacy
- librustc_resolve
- librustc_save_analysis
- librustc_target
- librustc_traits
- libsyntax
- libsyntax_ext
- libsyntax_pos
2019-04-03 18:24:21 +02:00
bors
46914715e2 Auto merge of #59195 - estebank:for-loop-move, r=petrochenkov
When moving out of a for loop head, suggest borrowing it

When encountering code like the following, suggest borrowing the for loop
head to avoid moving it into the for loop pattern:

```
fn main() {
    let a = vec![1, 2, 3];
    for i in &a {
        for j in a {
            println!("{} * {} = {}", i, j, i * j);
        }
    }
}
```

Fix #25534.
2019-03-25 00:38:15 +00:00
Esteban Küber
ae883dc826 When moving out of a for loop head, suggest borrowing it
When encountering code like the following, suggest borrowing the for loop
head to avoid moving it into the for loop pattern:

```
fn main() {
    let a = vec![1, 2, 3];
    for i in &a {
        for j in a {
            println!("{} * {} = {}", i, j, i * j);
        }
    }
}
```
2019-03-24 11:46:13 -07:00
David Wood
db4770f699
Remove CtorOf from Node::Ctor.
This commit removes `CtorOf` from `Node::Ctor` as the parent of the
constructor can be determined by looking at the node's parent in the few
places where knowing this is necessary.
2019-03-24 18:21:59 +01:00
David Wood
5c3d1e5d76 Separate variant id and variant constructor id.
This commit makes two changes - separating the `NodeId` that identifies
an enum variant from the `NodeId` that identifies the variant's
constructor; and no longer creating a `NodeId` for `Struct`-style enum
variants and structs.

Separation of the variant id and variant constructor id will allow the
rest of RFC 2008 to be implemented by lowering the visibility of the
variant's constructor without lowering the visbility of the variant
itself.

No longer creating a `NodeId` for `Struct`-style enum variants and
structs mostly simplifies logic as previously this `NodeId` wasn't used.
There were various cases where the `NodeId` wouldn't be used unless
there was an unit or tuple struct or enum variant but not all uses of
this `NodeId` had that condition, by removing this `NodeId`, this must
be explicitly dealt with. This change mostly applied cleanly, but there
were one or two cases in name resolution and one case in type check
where the existing logic required a id for `Struct`-style enum variants
and structs.
2019-03-24 12:10:16 +03:00
bors
0633c55d20 Auto merge of #59068 - ljedrz:kill_off_NodeId_stragglers, r=Zoxc
HirIdification: kill off NodeId stragglers

The final stages of HirIdification (#57578).

This PR, along with https://github.com/rust-lang/rust/pull/59042, should finalize the HirIdification process (at least the more straightforward bits).

- replace `NodeId` with `HirId` in `trait_impls`
- remove all `NodeId`s from `borrowck`
- remove all `NodeId`s from `typeck`
- remove all `NodeId`s from `mir`
- remove `trait_auto_impl` (unused)

I would be cool to also remove `NodeId` from `hir::def::Def`, `middle::privacy::AccessLevel`  and `hir::ItemId`, but I don't know if this is feasible.

I'll be happy to do more if I've missed anything.
2019-03-23 17:34:18 +00:00
Eduard-Mihai Burtescu
e0c75ff40d rustc: rename item_path to def_path (except the module in ty). 2019-03-15 13:25:10 +02:00
Matthew Jasper
7285b5630b Make migrate mode work at item level granularity 2019-03-10 17:27:31 +00:00
ljedrz
401329e829 HirIdification: remove all NodeIds from borrowck 2019-03-10 13:08:02 +01:00
ljedrz
558a07b896 hir: remove NodeId from PatKind 2019-03-07 12:18:59 +01:00
ljedrz
cd06038b54 HirIdification: replace NodeId method calls 2019-03-07 09:22:43 +01:00
ljedrz
50b8bc8c8c hir: remove NodeId from Pat and FieldPat 2019-03-02 07:48:52 +01:00
ljedrz
d7ced1dd5a hir: remove NodeId from Expr 2019-02-24 17:09:37 +01:00
ljedrz
f5bba2c6d7 HirIdification: change some NodeId to HirId calls 2019-02-20 11:00:43 +01:00
ljedrz
eac43ccda4 HirId-ify hir::BodyId 2019-02-13 09:54:58 +01:00
Mazdak Farrokhzad
81434cbf84
Rollup merge of #58137 - ljedrz:cleanup_node_id_to_type, r=estebank
Cleanup: rename node_id_to_type(_opt)

Renames `node_id_to_type(_opt)` to `hir_id_to_type(_opt)`; this makes it clear we are dealing with HIR nodes and their IDs here.

In addition, a drive-by commit removing `ty::item_path::hir_path_str` (as requested by @eddyb).
2019-02-13 04:37:00 +01:00
Alexander Regueiro
c3e182cf43 rustc: doc comments 2019-02-10 23:42:32 +00:00
ljedrz
3a1a704903 cleanup: rename node_id_to_type(_opt) 2019-02-09 16:37:15 +01:00
Mazdak Farrokhzad
c3d365f460
Rollup merge of #58260 - taiki-e:librustc_borrowck-2018, r=Centril
librustc_borrowck => 2018

Transitions `librustc_borrowck` to Rust 2018; cc #58099

r? @Centril
2019-02-09 00:16:01 +01:00
Taiki Endo
a2c4a36c61 librustc_borrowck => 2018 2019-02-08 21:11:10 +09:00
Guillaume Gomez
8b886e07f5 Remove images' url to make it work even without internet connection 2019-02-07 11:06:19 +01:00
ljedrz
55ef78e885 hir: add HirId to main Hir nodes 2019-02-02 17:35:20 +01:00
John Kåre Alsaker
edf0cac94b Use ensure for borrowck 2019-01-29 21:10:35 +01:00
John Kåre Alsaker
0c2bf6fe2a Add an ensure() method to TyCtxt used to ensure queries are run 2019-01-29 21:10:33 +01:00
Andy Russell
0897ffc28f
remove _with_applicability from suggestion fns 2019-01-26 23:07:55 -05:00
Mark Simulacrum
db97c48ad6 Remove quote_*! macros and associated APIs 2019-01-24 07:37:34 -07:00
Oliver Scherer
096ca87333 Remove an unused function argument 2019-01-15 17:11:07 +01:00
Mazdak Farrokhzad
ca1e379090
Rollup merge of #57102 - davidtwco:issue-57100, r=nikomatsakis
NLL: Add union justifications to conflicting borrows.

Fixes #57100.

This PR adds justifications to error messages for conflicting borrows of union fields.

Where previously an error message would say ``cannot borrow `u.b` as mutable..``, it now says ``cannot borrow `u` (via `u.b`) as mutable..``.

r? @pnkfelix
2019-01-13 17:21:40 +01:00
David Wood
c2b477c19a
Improve diagnostic labels and add note.
This commit improves diagnostic labels to mention which field a borrow
overlaps with and adds a note explaining that the fields overlap.
2019-01-04 22:43:51 +01:00
Lin Clark
d30465fbfc
Update link to rustc guide 2018-12-28 13:34:00 -05:00
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Alexander Regueiro
ee89c088b0 Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
John Kåre Alsaker
a70babed03 Use a function to access the Hir map to be able to turn it into a query later 2018-12-06 17:24:36 +01:00
Daan de Graaf
1560a75f6a Refer to the second borrow as the "second borrow". 2018-11-30 14:55:51 +01:00
Mark Mansi
6494f1e60e rustc-guide has moved 2018-11-26 15:03:13 -06:00
Blitzerr
6779bb485c capture_disjoint_fields(rust-lang#53488)
Refactoring out the HirId of the UpvarId in another struct.
2018-11-14 21:18:48 -08:00
scalexm
45be1ac0fc Remove ReCanonical in favor of ReLateBound 2018-11-03 11:41:55 +01:00
bors
f32f1113c9 Auto merge of #55150 - pnkfelix:issues-47215-54797-fix-ice-from-moving-out-of-thread-local-under-ast-borrowck, r=nikomatsakis
Do not allow moving out of thread local under ast borrowck

AST borrowck failed to prevent moving out of a thread-local static.

This was broken. And it also (sometimes?) caused an ICE during drop elaboration.

Fix #47215
Fix #54797
2018-10-27 09:56:37 +00:00