Commit Graph

280 Commits

Author SHA1 Message Date
Santiago Pastorino
da545cee60 Make region inference use a dirty list
Fixes #47602
2018-01-26 21:56:49 -03:00
Simon Sapin
55c50cd8ac Stabilize std::ptr::NonNull 2018-01-20 11:09:23 +01:00
Simon Sapin
f19baf0977 Rename std::ptr::Shared to NonNull
`Shared` is now a deprecated `type` alias.

CC https://github.com/rust-lang/rust/issues/27730#issuecomment-352800629
2018-01-20 10:55:16 +01:00
Michael Woerister
94f3037f4b Shorten names of some compiler generated artifacts. 2018-01-08 12:30:52 +01:00
Malo Jaffré
3f073c409a Try to fix a perf regression by updating log
Upgrade `log` to `0.4` in multiple crates.
2018-01-07 16:54:05 +01:00
Malo Jaffré
cbb32a9418 Fix docs for future pulldown migration 2018-01-01 14:44:12 +01:00
bors
a6fc84440f Auto merge of #46914 - mikeyhew:raw_pointer_self, r=arielb1
Convert warning about `*const _` to a future-compat lint

#46664 was merged before I could convert the soft warning about method lookup on `*const _` into a future-compatibility lint. This PR makes that change.

fixes #46837
tracking issue for the future-compatibility lint: #46906

r? @arielb1
2017-12-25 04:55:57 +00:00
Christopher Durham
056370167a Annotate raw pointer target types
cc https://github.com/rust-lang/rust/issues/46906
cc https://github.com/rust-lang/rust/pull/46914
2017-12-23 03:47:13 -05:00
Michael Hewson
1e2bd7021a fix errors in rustc_data_structures 2017-12-22 18:16:19 -05:00
John Kåre Alsaker
30a39ac5ce Make IndexVec implement Send and Sync 2017-12-21 19:21:40 +01:00
John Kåre Alsaker
970c613e4a Add sync module to rustc_data_structures 2017-12-17 14:14:51 +01:00
bors
b3392f8ae4 Auto merge of #46560 - Yoric:incr, r=michaelwoerister
Loading the dependency graph in the background

Patch is a bit longer than I expected, due to the fact that most of this code relies upon a `Session` value, which is not `Sync`.
2017-12-16 03:54:10 +00:00
Felix S. Klock II
e437e499d1 Implement Borrow/BorrowMut/ToOwned relationships betweed IdxSetBuf and IdxSet. 2017-12-13 13:50:40 -06:00
Matt Brubeck
3024c1434a Use Try syntax for Option in place of macros or match 2017-12-09 14:18:33 -08:00
David Teller
8500fb9c69 Issue #46555 - Making IndexVec Send if its contents are Send 2017-12-07 16:04:59 +01:00
Niko Matsakis
271616088f transtive_relation: fix typo in comment for parents 2017-12-04 10:46:35 -05:00
Niko Matsakis
4de7336862 extend TransitiveRelation with parents function 2017-12-04 08:51:14 -05:00
Niko Matsakis
fb4b06ab3b rename greater_than to reachable_from 2017-12-04 08:51:13 -05:00
Michael Woerister
687e099b44 incr.comp.: Make a bunch of query results encodable. 2017-11-28 13:03:39 +01:00
Martin Lindhe
ece9a57d1b fix some typos 2017-11-21 15:33:45 +01:00
Niko Matsakis
09b44bbe77 IndexVec: add '_ to make clear where borrowing is happening 2017-11-16 05:57:45 -05:00
Niko Matsakis
524e23ae2e make RegionVid implement Idx and use IndexVec 2017-11-16 05:57:44 -05:00
bors
785643a5eb Auto merge of #45668 - nikomatsakis:nll-free-region, r=arielb1
extend NLL with preliminary support for free regions on functions

This PR extends https://github.com/rust-lang/rust/pull/45538 with support for free regions. This is pretty preliminary and will no doubt want to change in various ways, particularly as we add support for closures, but it's enough to get the basic idea in place:

- We now create specific regions to represent each named lifetime declared on the function.
- Region values can contain references to these regions (represented for now as a `BTreeSet<RegionIndex>`).
- If we wind up trying to infer that `'a: 'b` must hold, but no such relationship was declared, we report an error.

It also does a number of drive-by refactorings.

r? @arielb1

cc @spastorino
2017-11-06 23:30:57 +00:00
Santiago Pastorino
f9bc8e7c4f Make DEBUG_FORMAT = custom work
Fixes #45763, ht by @durka
2017-11-04 19:10:44 -03:00
Niko Matsakis
3db1a95a3f add/fix various comments to BitMatrix
Notably, the (hitherto unused) `less_than` method was not at all what it
purported to be. It in fact computes the opposite.
2017-11-02 04:40:49 -04:00
Paul Daniel Faria
97692afda9 newindex_type macro: make index private by default and allow pub through config 2017-11-01 21:25:37 -04:00
Paul Daniel Faria
bf1198eb1f newtype_index: Support simpler serializable override, custom derive, and fix mir_opt tests 2017-11-01 20:12:53 -04:00
Paul Daniel Faria
b46e42fe2a Clean up macro argument matches so they satisfy tidy checks 2017-11-01 20:12:10 -04:00
Paul Daniel Faria
4e496de26d Add derive and doc comment capabilities to newtype_index macro 2017-11-01 20:12:10 -04:00
Niko Matsakis
f27eb1e684 change region display to '_#Nr, update the newtype_index! macro
The macro now takes a format string. It no longer defaults to using the
type name. Didn't seem worth going through contortions to maintain.  I
also changed most of the debug formats to be `foo[N]` instead of `fooN`.
2017-10-31 12:41:40 -04:00
Niko Matsakis
7523c7368c introduce liveness constraints into NLL code
And do a bunch of gratuitious refactoring that I did not bother to
separate into nice commits.
2017-10-31 12:41:38 -04:00
Michael Woerister
54818b3e99 Update some comments about StableHasher. 2017-10-26 11:10:07 +02:00
Michael Woerister
89909c76a3 Fix 32 vs 64 bit platform instability in StableHasher. 2017-10-25 16:49:55 +02:00
bors
c0956ff265 Auto merge of #45319 - michaelwoerister:use-128bit-siphash, r=nikomatsakis
incr.comp.: Use 128bit SipHash for fingerprinting

This PR switches incr. comp. result fingerprinting from 128 bit BLAKE2 to 128 bit SipHash. When we started using BLAKE2 for fingerprinting, the 128 bit version of SipHash was still experimental. Now that it isn't anymore we should be able to get a nice performance boost without significantly increasing collision probability.

~~I'm going to start a try-build for this, so we can gauge the performance impact before merging (hence the `WIP` in the title).~~

EDIT: Performance improvements look as expected. Tests seem to be passing.

Fixes #41215.
2017-10-20 07:50:18 +00:00
Santiago Pastorino
b8f981a149 Generate FirstStatementIndex using newtype_index macro 2017-10-17 12:06:20 -03:00
Michael Woerister
10e289e191 Make debuginfo::UniqueTypeId use 128 bit hash. 2017-10-16 14:44:40 +02:00
Michael Woerister
74ebad4b63 Use SipHasher128 in StableHasher. 2017-10-16 14:44:40 +02:00
Michael Woerister
25014b5379 rustc_data_structures: Add implementation of 128 bit SipHash. 2017-10-16 14:44:40 +02:00
kennytm
82f2c28bc8 Rollup merge of #45110 - Nashenas88:master, r=arielb1
Improve newtype_index macro to handle description and constants consistently
2017-10-13 23:37:53 +08:00
Paul Faria
97fe353ce6 Split lines longer than 100 columns 2017-10-11 20:06:24 -04:00
Paul Faria
9423bee6d3 Move const qualifier from brackets to constant values and remove comma from after identifier 2017-10-11 20:01:55 -04:00
kennytm
23a99f4e0e
Rollup merge of #44775 - MaloJaffre:debug-struct, r=sfackler
Refactor to use `debug_struct` in several Debug impls

Also use `pad` and derive `Debug` for `Edge`.

Fixes #44771.
2017-10-10 22:43:57 +08:00
Malo Jaffré
679457ad2a Refactor to use debug_struct in several Debug impls
Fixes #44771.
2017-10-09 20:09:08 +02:00
Paul Faria
35545b36cf Improve newtype_index macro to handle description and constants consistently 2017-10-08 15:20:28 -04:00
Santiago Pastorino
271a492cb2 Generate ScopeId using newtype_index macro 2017-10-04 23:51:43 -03:00
Santiago Pastorino
b5a5556dd4 Generate DepNodeIndexNew using newtype_index macro 2017-10-04 23:51:43 -03:00
Santiago Pastorino
3502bec032 Make newtype_index get debug_name using reflection 2017-10-04 23:50:53 -03:00
Santiago Pastorino
9af7426b47 Make newtype_index macro use full path to resolve constants 2017-10-04 23:50:53 -03:00
Santiago Pastorino
3d230af80b Move newtype_index to rustc_data_structures 2017-10-04 23:50:53 -03:00
Esteban Küber
ddee9fbc99 Point at parameter type on E0301
On "the parameter type `T` may not live long enough" error, point to the
parameter type suggesting lifetime bindings:

```
error[E0310]: the parameter type `T` may not live long enough
  --> $DIR/lifetime-doesnt-live-long-enough.rs:28:5
   |
27 | struct Foo<T> {
   |            - help: consider adding an explicit lifetime bound `T: 'static`...
28 |     foo: &'static T
   |     ^^^^^^^^^^^^^^^
   |
note: ...so that the reference type `&'static T` does not outlive the data it points at
  --> $DIR/lifetime-doesnt-live-long-enough.rs:28:5
   |
28 |     foo: &'static T
   |     ^^^^^^^^^^^^^^^
```
2017-09-24 11:50:09 -07:00