m4b
990a5cc1e5
dwarf: set dwarf linkage_name for fns and statics to its mangled symbol name
2017-12-20 21:28:10 -08:00
bors
fdfb007109
Auto merge of #46862 - nikomatsakis:nll-master, r=arielb1
...
NLL feature complete (adds `feature(nll)`)!
This is the final PR for the nll-master branch; it brings over all remaining content.
The contents of the branch include:
- track causal information and use it to report extended errors
- handle `impl Trait` in NLL code
- improve printing of outlives errors
- add `#![feature(nll)]` and some more sample tests
The commits should for the most part build independently.
r? @pnkfelix (and/or @arielb1)
2017-12-20 23:26:20 +00:00
Niko Matsakis
d925f4d1dd
fix truncated comment
2017-12-20 16:51:33 -05:00
Niko Matsakis
4f549fe4fe
improve comment about instantiating anon types
2017-12-20 16:48:41 -05:00
Niko Matsakis
3f490ca4bd
convert region-liveness-drop{-,-no-}may-dangle.rs into ui tests
...
The "match exact bits of CFG" approach was fragile and uninformative.
2017-12-20 14:38:13 -05:00
Niko Matsakis
cba82561cf
add some run-pass tests for NLL showing that things work as expected
2017-12-20 14:38:13 -05:00
Niko Matsakis
80c510e353
when using feature(nll), don't warn about AST-based region errors
...
Also, keep reporting AST-based region errors that are not occuring in
a fn body.
2017-12-20 14:38:13 -05:00
Niko Matsakis
cfa4ffa374
document and tweak the nll, use_mir, etc helpers
...
In particular, -Znll might as well imply -Zborrowck=mir by default,
just like `#![feature(nll)]` does.
Also, if NLL is in use, no reason to emit end regions. The NLL pass
just strips them out anyway.
2017-12-20 14:38:13 -05:00
Santiago Pastorino
e980fb8bef
feature nll implies borrowck=mir
2017-12-20 14:38:13 -05:00
Santiago Pastorino
2019d69f61
feature nll implies two-phase-borrows
2017-12-20 14:38:13 -05:00
Santiago Pastorino
0b2db1e616
Add nll feature and make nll imply nll_dump_cause
2017-12-20 14:38:12 -05:00
Santiago Pastorino
95b6148e31
Add nll_dump_cause helper to Session
2017-12-20 14:38:12 -05:00
Niko Matsakis
508a831dca
use report_generic_bound_failure
when we can in the compiler
2017-12-20 14:38:12 -05:00
Niko Matsakis
3788f4207d
refactor report_generic_bound_failure
to be usable by NLL code
2017-12-20 14:38:12 -05:00
Niko Matsakis
6b39781df6
connect NLL machinery to the NiceRegionError
code
2017-12-20 14:38:12 -05:00
Niko Matsakis
94e7072d0b
give precedence to try_report_named_anon_conflict
method
2017-12-20 14:38:12 -05:00
Niko Matsakis
de563082c8
use Option<ErrorReported>
instead of bool
...
Also allows us to replace `or_false` with `?`.
No functional change
2017-12-20 14:38:11 -05:00
Niko Matsakis
cba4732b65
introduce a NiceRegionError
type and define methods on that
...
This is more convenient, and allows us to be more independent from
infcx, particularly with respect to `in_progress_tables` field.
No functional change.
2017-12-20 14:38:11 -05:00
Niko Matsakis
a28ab84025
nice_region_error: rustfmt
2017-12-20 14:38:11 -05:00
Niko Matsakis
3720242c75
extract find_anon_type
into its own module
2017-12-20 14:38:11 -05:00
Niko Matsakis
93498e0c22
make util
fns private to nice_region_error
2017-12-20 14:38:11 -05:00
Niko Matsakis
4089d140e0
move nice-region-error reporting into its own module
2017-12-20 14:38:11 -05:00
Niko Matsakis
e28d03f38b
only dump causes if we have nothing better
2017-12-20 14:38:11 -05:00
Santiago Pastorino
3a185a510d
Add three point error handling to borrowck
...
Closes #45988
2017-12-20 14:38:10 -05:00
Niko Matsakis
6d2987ca03
Move categorize logic out of visit_local function
2017-12-20 14:38:10 -05:00
Santiago Pastorino
58b0506d65
Move MirVisitable to visit.rs
2017-12-20 14:38:10 -05:00
Niko Matsakis
93afb1affc
connect NLL type checker to the impl trait code
...
We now add the suitable `impl Trait` constraints.
2017-12-20 14:04:52 -05:00
Niko Matsakis
da63aaa7ab
extract input_output
code into its own module
...
No functional change.
2017-12-20 14:04:52 -05:00
Niko Matsakis
a66c6512aa
pass UniversalRegions
to MIR type-checker instead of fields
...
No functional change.
2017-12-20 14:04:52 -05:00
Niko Matsakis
7f50e7ca85
extract the writeback code for anon types into InferCtxt
...
No functional change.
2017-12-20 14:04:52 -05:00
Niko Matsakis
8e64ba83be
extract constrain_anon_types
to the InferCtxt
...
No funtional change.
2017-12-20 14:04:52 -05:00
Niko Matsakis
e96f4be03d
extract instantiate_anon_types
to the InferCtxt
...
No functional change.
2017-12-20 14:04:51 -05:00
Niko Matsakis
4a967c9df7
propagate region_bound_pairs
into MIR type-check
2017-12-20 14:04:51 -05:00
Niko Matsakis
fe89f4ba86
get the DefiningTy
from the body_owner_kind
not type
...
The type isn't a good idea because we want to treat constants
uniformly, regardless of what type of value they produce.
2017-12-20 14:04:51 -05:00
Niko Matsakis
0e64a756f8
integrate -Znll-dump-cause into borrowck
2017-12-20 14:04:51 -05:00
Niko Matsakis
741ef41e41
use Rc to store nonlexical_regioncx in Borrows
2017-12-20 14:04:51 -05:00
Niko Matsakis
594c386549
dump out causal information for "free region" errors
...
The result is not especially illuminating, but that's ok.
2017-12-20 14:04:51 -05:00
Niko Matsakis
39b0e49ebd
rustfmt: borrow_check/mod.rs
2017-12-20 14:04:51 -05:00
Paul Daniel Faria
e447b54bc3
Add tracking of causes for nll
2017-12-20 14:04:50 -05:00
Niko Matsakis
f6741d0a7a
region_infer/values.rs: rustfmt
2017-12-20 14:04:50 -05:00
Niko Matsakis
f3335c6169
simplify AnonTypeDecl
in the impl trait code
...
We don't need to know the vector of region bounds; we only care if
there were any region bounds at all.
2017-12-20 14:04:50 -05:00
bors
7eb64b86ce
Auto merge of #46583 - scottmcm:fix-static-i128-lower, r=eddyb
...
Fix -Z lower_128bit_ops handling of statics
Avoids ICEs such as the following:
> error: internal compiler error: src\librustc_metadata\cstore_impl.rs:131:
> get_optimized_mir: missing MIR for `DefId(8/0:40 ~
> compiler_builtins[9532]::int[0]::addsub[0]::rust_i128_addo[0])`
r? @nagisa
cc #45676 @est31
2017-12-20 17:34:17 +00:00
bors
81622c6b02
Auto merge of #46874 - kennytm:rollup, r=kennytm
...
Rollup of 14 pull requests
- Successful merges: #46359 , #46517 , #46671 , #46751 , #46760 , #46787 , #46794 , #46828 , #46831 , #46835 , #46851 , #46852 , #46856 , #46870
- Failed merges:
2017-12-20 14:47:21 +00:00
kennytm
66e5c79068
Rollup merge of #46870 - ffflorian:fix/slice/typo, r=rkruppe
...
docs(slice): Clarification in binary_search_by
This PR ~fixes a small comment typo~ adds some clarification to a half-open interval in the `binary_search_by` function in `slice`.
2017-12-20 21:22:05 +08:00
kennytm
94b864ccd0
Rollup merge of #46856 - estebank:missing-in-impl-def-span, r=arielb1
...
Point at def span in "missing in impl" error
2017-12-20 21:22:04 +08:00
kennytm
5efa045bbe
Rollup merge of #46852 - scottmcm:asm-placecontext, r=arielb1
...
Split PlaceContext::Store into Store & AsmOutput
Outputs in InlineAsm can be read-write, so splitting it out is useful for things like Store-Store folding, as that's unsound for a Store-AsmOutput.
This PR is intended to make no changes, just be the mechanical split of the enum. Future changes can use the split, like a MIR pass I'm working on and perhaps two-phase borrows (see this FIXME: https://github.com/rust-lang/rust/pull/46852/files#diff-74dcd7740ab2104cd2b9a3b68dd4f208R543 )
2017-12-20 21:22:03 +08:00
kennytm
0c29c7b1e4
Rollup merge of #46851 - petrochenkov:tospace, r=estebank
...
Fix whitespacing issues in pretty-printing of bounds
cc https://github.com/rust-lang/rust/pull/46827#discussion_r157603277
2017-12-20 21:22:02 +08:00
kennytm
99fdca077c
Rollup merge of #46835 - topecongiro:bad-span-for-macro-invocation-in-type, r=petrochenkov
...
Remove a token after closing delimiter from the span of macro in type position
e.g.
```rust
let x = y: foo!();
```
The span for `foo!()` includes `;`.
cc https://github.com/rust-lang-nursery/rustfmt/issues/2290 .
2017-12-20 21:22:00 +08:00
kennytm
16095b3601
Rollup merge of #46831 - Diggsey:float-debug-fmt, r=dtolnay
...
Always `Debug` floats with a decimal point
Fixes #30967
r? @dtolnay
2017-12-20 21:21:59 +08:00
kennytm
5e98112af4
Rollup merge of #46828 - vi:hash_for_systemtime_instant, r=dtolnay
...
Add Hash impl for SystemTime and Instant
Closes #46670 .
Not sure how to actually test non-Linux platforms.
`rustc --target=i686-pc-windows-gnu --crate-name std --crate-type rlib src/libstd/lib.rs -o q.rlib` works a bit, but for Redox I'm not sure what to do.
r? @dtolnay
2017-12-20 21:21:58 +08:00