Niko Matsakis
fb1702f301
compute liveness later
2018-08-07 14:52:59 -04:00
bors
ccb550fb45
Auto merge of #53109 - nikomatsakis:nll-escaping-into-return-revert, r=nikomatsakis
...
revert #52991
Reverts https://github.com/rust-lang/rust/pull/52991 which is flawed. I have an idea how to fix it but might as well revert first since it is so wildly flawed. That's what I get for opening PRs while on PTO =)
r? @pnkfelix
2018-08-07 16:01:27 +00:00
Matthew Jasper
b13e3f8770
Name return type in free region messages
2018-08-06 21:42:26 +01:00
David Wood
37ba9ca334
Disable some nice region errors in NLL mode.
2018-08-06 20:43:16 +02:00
Niko Matsakis
67c96edce6
revert #52991
2018-08-06 09:00:08 -04:00
Matthew Jasper
f72b8a44c5
Use span of the closure args in free region errors
2018-08-05 14:33:38 +01:00
bors
9f9ac89d11
Auto merge of #52959 - matthewjasper:closure-spans, r=pnkfelix
...
[NLL] Use smaller spans for errors involving closure captures
Closes #51170
Closes #46599
Error messages involving closures now point to the captured variable/closure args.
r? @pnkfelix
2018-08-05 09:17:24 +00:00
bors
b47c314c56
Auto merge of #52991 - nikomatsakis:nll-escaping-into-return, r=pnkfelix
...
avoid computing liveness for locals that escape into statics
Fixes #52713
I poked at this on the plane and I think it's working -- but I want to do a bit more investigation and double check. The idea is to identify those local variables where the entire value will "escape" into the return -- for them, we don't need to compute liveness, since we know that the outlives relations from the return type will force those regions to be equal to free regions. This should help with html5ever in particular.
- [x] test performance
- [x] verify correctness
- [x] add comments
r? @pnkfelix
cc @lqd
2018-08-05 07:06:11 +00:00
Niko Matsakis
2e2ea26a83
remove unused tcx argument
2018-08-05 07:42:18 +02:00
Niko Matsakis
5e2f337e6b
more comments and justify correctness
2018-08-04 09:30:24 +02:00
Niko Matsakis
936fa6f67f
generalize the Deref case and simplify the code
2018-08-04 09:26:30 +02:00
Niko Matsakis
e7d8d651d5
add a comment explaining the idea
2018-08-04 09:26:20 +02:00
Matthew Jasper
903851f785
Highlight closure spans for borrow and initialization errors
2018-08-03 23:00:27 +01:00
bors
7e031b0907
Auto merge of #52973 - davidtwco:issue-52663-lifetimes-not-included-in-span, r=pnkfelix
...
NLL mentions lifetimes that are not included in printed span(s).
Part of #52663 .
r? @pnkfelix
2018-08-03 17:46:13 +00:00
Niko Matsakis
e79656c5b7
support X = &*Y
reborrows
2018-08-03 08:15:55 +02:00
Niko Matsakis
341a07c4c3
compute union-find of locals flowing into the output of statics
...
Co-authored-by: lqd <remy.rakic+github@gmail.com>
Co-authored-by: nikomatsakis <niko@alum.mit.edu>
2018-08-02 22:02:59 +03:00
David Wood
2488cb6b10
Explicitly label any named lifetimes mentioned in error messages.
2018-08-02 12:00:15 +02:00
David Wood
1863cb7372
Errors are more specific in cases where borrows are used in future iterations of loops.
2018-08-01 17:42:15 +02:00
Niko Matsakis
b9652aee65
region_infer: rustfmt, pacifying the mercilous tidy
2018-07-31 02:31:41 +02:00
Niko Matsakis
68c2a39a72
free RegionBoundPairs earlier and avoid normalizing twice
...
Normalization results are memoized, so this may not be worth it, but it
seems easy enough to do.
2018-07-31 02:31:41 +02:00
Niko Matsakis
490928f709
remove region_bound_pairs
from FRR as they are not needed later
2018-07-31 02:31:41 +02:00
Niko Matsakis
1e1f18ddba
make a free fn for creating the URR
2018-07-31 02:31:41 +02:00
Niko Matsakis
d1e67fcacd
remove universal-region-relation computation from universal_regions
2018-07-31 02:31:40 +02:00
Niko Matsakis
3bca170bc7
introduce, but do not use, free_region_relation
computation
...
This duplicates, effectively, existing code in the universal regions
computation.
2018-07-31 02:26:06 +02:00
bors
e4378412ec
Auto merge of #52830 - matthewjasper:bootstrap-prep, r=matthewjasper
...
[NLL] Fix some things for bootstrap
Some changes that are required when bootstrapping rustc with NLL enabled.
* Remove a bunch of unused `mut`s that aren't needed, but the existing lint doesn't catch.
* Rewrite a function call to satisfy NLL borrowck. Note that the borrow is two-phase, but gets activated immediately by an unsizing coercion.
cc #51823
2018-07-30 10:19:38 +00:00
bors
7bbcd005b3
Auto merge of #52805 - ljedrz:format_str_literal, r=petrochenkov
...
Don't format!() string literals
Prefer `to_string()` to `format!()` take 2, this time targetting string literals. In some cases (`&format!("...")` -> `"..."`) also removes allocations. Occurences of `format!("")` are changed to `String::new()`.
2018-07-30 06:29:39 +00:00
Matthew Jasper
503455bcc7
Remove unused mut
s
2018-07-29 18:04:09 +01:00
bors
75af9df71b
Auto merge of #52620 - mikhail-m1:51351, r=nikomatsakis
...
fix simple case of issue #51351 and #52133
r? @nikomatsakis
2018-07-29 13:23:01 +00:00
Mikhail Modin
bb66d70b89
fix issues #51351 and #52133
2018-07-29 11:42:50 +01:00
ljedrz
421b2ba347
Don't format!() string literals
2018-07-28 17:58:52 +02:00
kennytm
59f8422a17
Rollup merge of #52781 - ljedrz:avoid_vec_arguments, r=nikomatsakis
...
Use a slice where a vector is not necessary
2018-07-28 16:25:07 +08:00
ljedrz
1cca420435
Use slices where a vector is not necessary
2018-07-27 16:50:28 +02:00
David Wood
2e4224a998
Region inference error messages no longer start with 'free region'
2018-07-27 13:14:56 +02:00
David Wood
f44807ae1e
Improved mechanism for naming regions in non-annotated types.
2018-07-27 13:00:56 +02:00
David Wood
b377e7bbfb
Change label from closure to function where appropriate.
2018-07-27 12:48:47 +02:00
David Wood
055aaaf765
Fixed missing whitespace on some elaborated types.
2018-07-27 12:05:05 +02:00
David Wood
d4be95f0ff
Improved fully elaborated type generation to replace '_#2r
-style regions.
2018-07-27 11:18:11 +02:00
David Wood
53dda8e915
Added fully elaborated type label for inferred arguments.
2018-07-27 11:18:11 +02:00
David Wood
41ce2e9dd2
Simplified closure handling to need no new cosntraint categories.
2018-07-27 11:18:07 +02:00
Niko Matsakis
118cad13a5
ignore code example in comment
2018-07-25 23:57:59 +03:00
Niko Matsakis
3171cbe986
Nit: improve Binders comment in relate_tys
2018-07-25 16:38:50 +03:00
Niko Matsakis
d85a7da8fe
Nit: fix Debug impl of PlaceholderIndex
2018-07-25 16:37:05 +03:00
Niko Matsakis
e43096ff05
[nit] remove outdated comment
2018-07-25 16:36:40 +03:00
Niko Matsakis
0d918a8575
improve heuristics for what makes an interesting constraint
2018-07-25 16:36:03 +03:00
Niko Matsakis
76991ea237
[WIP] debug logs in error-reporting
2018-07-25 16:19:16 +03:00
Niko Matsakis
fa69e2183a
[3f0fb4f7] improve comment on to_location
2018-07-25 16:18:37 +03:00
Niko Matsakis
d9afd2bb38
introduce new subtyping
2018-07-25 06:38:22 +03:00
Niko Matsakis
b913df06f2
remove num_universal_regions
etc from RegionValueElements
2018-07-25 06:38:22 +03:00
Niko Matsakis
2584216364
represent LivenessValues
with a specialized type
2018-07-25 06:38:22 +03:00
Niko Matsakis
2fda456ddf
extract region_value_str
helper
2018-07-25 06:38:21 +03:00