about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2020-03-23add missing const super foldsBastian Kauschke-0/+2
2020-03-23add missing visit_constsBastian Kauschke-5/+29
2020-03-23Auto merge of #70296 - Centril:rollup-wvfmb3n, r=Centrilbors-340/+468
Rollup of 9 pull requests Successful merges: - #69251 (#[track_caller] in traits) - #69880 (miri engine: turn error sanity checks into assertions) - #70207 (Use getentropy(2) on macos) - #70227 (Only display definition when suggesting a typo) - #70236 (resolve: Avoid "self-confirming" import resolutions in one more case) - #70248 (parser: simplify & remove unused field) - #70249 (handle ConstKind::Unresolved after monomorphizing) - #70269 (remove redundant closures (clippy::redundant_closure)) - #70270 (Clean up E0449 explanation) Failed merges: r? @ghost
2020-03-23Rollup merge of #70270 - GuillaumeGomez:cleanup-e0449, r=Dylan-DPCMazdak Farrokhzad-2/+3
Clean up E0449 explanation r? @Dylan-DPC
2020-03-23Rollup merge of #70269 - matthiaskrgr:clippy_closures, r=Dylan-DPCMazdak Farrokhzad-41/+33
remove redundant closures (clippy::redundant_closure)
2020-03-23Rollup merge of #70249 - lcnr:issue70125, r=eddybMazdak Farrokhzad-24/+70
handle ConstKind::Unresolved after monomorphizing fixes #70125 r? @bjorn3
2020-03-23Rollup merge of #70248 - Centril:unroot, r=petrochenkovMazdak Farrokhzad-32/+11
parser: simplify & remove unused field r? @petrochenkov
2020-03-23Rollup merge of #70236 - petrochenkov:globimpice, r=ecstatic-morseMazdak Farrokhzad-0/+24
resolve: Avoid "self-confirming" import resolutions in one more case So the idea behind "blacklisted bindings" is that we must ignore some name definitions during resolution because otherwise they cause infinite cycles. E.g. import ```rust use my_crate; ``` would refer to itself (on 2018 edition) without this blacklisting, because `use my_crate;` is the first name in scope when we are resolving `my_crate` here. In this PR we are doing this blacklisting for the case ```rust use same::same; ``` , namely blacklisting the second `same` when resolving the first `same`. This was previously forgotten. Fixes https://github.com/rust-lang/rust/issues/62767
2020-03-23Rollup merge of #70227 - LeSeulArtichaut:typo-def, r=CentrilMazdak Farrokhzad-116/+69
Only display definition when suggesting a typo Closes #70206 r? @Centril
2020-03-23Rollup merge of #70207 - hatoo:macos-getentropy, r=dtolnayMazdak Farrokhzad-0/+37
Use getentropy(2) on macos resolves #70179
2020-03-23Rollup merge of #69880 - RalfJung:miri-assert-error-sanity, r=oli-obkMazdak Farrokhzad-6/+4
miri engine: turn error sanity checks into assertions We had these as debug assertions so far to make sure our test suite is clean, but really these are conditions that should never arise and also @eddyb told me to turn non-performance-critical debug assertions into full assertions so here we go. ;) I propose that we do a check-only crater run to make sure this does not actually happen in practice. r? @oli-obk
2020-03-23Rollup merge of #69251 - anp:track-caller-in-traits, r=eddybMazdak Farrokhzad-119/+217
#[track_caller] in traits Per https://github.com/rust-lang/rust/issues/47809#issuecomment-572791760, this allows the `#[track_caller]` attribute on trait methods. Includes tests for `#[track_caller]` with: * "regular" trait impls * default trait impls * "blanket-tracked" trait impls, where the annotation is in the trait definition and is inherited by "regular" impls of the trait
2020-03-23Auto merge of #70204 - Centril:unshackled-lowering, r=Zoxcbors-375/+384
Liberate `rustc_ast_lowering` from `rustc` The whole point of this PR is the very last commit, in which we remove `rustc` as one of `rustc_ast_lowering`'s dependencies, thereby improving `./x.py` parallelism and working towards https://github.com/rust-lang/rust/issues/65031. Noteworthy: - From `rustc::arena` we move logic into `arena`, in particular `declare_arena!`. This is then used in `rustc_ast_lowering` so that lowering has its own separate arena. - Some linting code is unfortunately moved to `rustc_session::lint` cause its used both in `rustc_lint` and `rustc_ast_lowering`, and this is their common dependency. - `rustc_session::CrateDisambiguator` is moved into `rustc_ast` so that `rustc::hir::map::definitions` can be moved into `rustc_hir`, so that `rustc_ast_lowering` can stop referring to `rustc::hir`. r? @Zoxc
2020-03-22Remove special-casing from TyCtxt::impl_of_method.Adam Perry-12/+2
We can do this now that opt_associated_item doesn't have any panicking paths.
2020-03-22Allow #[track_caller] in traits.Adam Perry-107/+215
The codegen implementation already works for this, so we're: * propagating track_caller attr from trait def to impl * relaxing errors * adding tests Approved in a recent lang team meeting: https://github.com/rust-lang/lang-team/blob/master/minutes/2020-01-09.md
2020-03-22Auto merge of #69778 - Marwes:dep_graph, r=davidtwcobors-11/+24
perf(dep_graph): Avoid allocating a set on when the number reads are … …small `reserve_and_rehash` takes up 1.4% of the runtime on the `packed-simd` benchmark which I believe is due to the number of reads are very low in many cases (see https://github.com/rust-lang/rust/pull/50565 for instance). This avoids allocating the set until we start allocating the `reads` `SmallVec` but it is possible that a lower limit might be better (not tested since the improvement will be hard to spot either way).
2020-03-22miri engine: turn error sanity checks into assertionsRalf Jung-6/+4
2020-03-22Auto merge of #69079 - CAD97:layout-of-ptr, r=RalfJungbors-8/+142
Allow calculating the layout behind a pointer There was some discussion around allowing this previously. This does make the requirement for raw pointers to have valid metadata exposed as part of the std API (as a safety invariant, not validity invariant), though I think this is not strictly necessarily required as of current. cc @rust-lang/wg-unsafe-code-guidelines Naming is hard; I picked the best "obvious" name I could come up with. If it's agreed that this is actually a desired API surface, I'll file a tracking issue and update the attributes.
2020-03-22Auto merge of #70275 - Dylan-DPC:rollup-1fbosob, r=Dylan-DPCbors-255/+321
Rollup of 10 pull requests Successful merges: - #68099 (Amend Rc/Arc::from_raw() docs regarding unsafety) - #70172 (parse/lexer: support `StringReader::retokenize` called on external files.) - #70209 (parser: recover on `for<'a> |...| body` closures) - #70223 (fix type of const params in associated types.) - #70229 (more clippy fixes) - #70240 (Return NonZeroU64 from ThreadId::as_u64.) - #70250 (Remove wrong entry from RELEASES.md) - #70253 (Remove another wrong entry from RELEASES.md) - #70254 (couple more clippy fixes (let_and_return, if_same_then_else)) - #70266 (proc_macro_harness: Use item header spans for errors) Failed merges: r? @ghost
2020-03-22Rollup merge of #70266 - petrochenkov:prochead, r=varkorDylan DPC-31/+20
proc_macro_harness: Use item header spans for errors Addresses https://github.com/rust-lang/rust/pull/70233#discussion_r396043004.
2020-03-22Rollup merge of #70254 - matthiaskrgr:cl4ppy, r=CentrilDylan DPC-67/+34
couple more clippy fixes (let_and_return, if_same_then_else) * summarize if-else-code with identical blocks (clippy::if_same_then_else) * don't create variable bindings just to return the bound value immediately (clippy::let_and_return)
2020-03-22Rollup merge of #70253 - jplatte:patch-2, r=Mark-SimulacrumDylan DPC-1/+0
Remove another wrong entry from RELEASES.md The entry is under 1.11.0, but the feature is only available since 1.12.0 (for which an identical entry exists). ![Screenshot_2020-03-22 Support `cfg_attr` on `path` attributes by jseyfried · Pull Request #34546 · rust-lang rust](https://user-images.githubusercontent.com/951129/77238862-85c8f580-6bd4-11ea-8d31-77e2994a4b5a.png)
2020-03-22Rollup merge of #70250 - jplatte:patch-1, r=CentrilDylan DPC-2/+0
Remove wrong entry from RELEASES.md resolves #70247
2020-03-22Rollup merge of #70240 - brain0:thread_id, r=Mark-SimulacrumDylan DPC-4/+4
Return NonZeroU64 from ThreadId::as_u64. As discussed in #67939, this allows turning Option<ThreadId> into Option<NonZeroU64> which can then be stored inside an AtomicU64.
2020-03-22Rollup merge of #70229 - matthiaskrgr:cl3ppy, r=Mark-SimulacrumDylan DPC-115/+92
more clippy fixes * remove unused unit values (clippy::unused_unit) * make some let-if-bindings more idiomatic (clippy::useless_let_if_seq) * clarify when we pass () to functions (clippy::unit_arg) * don't redundantly repeat field names (clippy::redundant_field_names) * remove redundant returns (clippy::needless_return) * use let instead of match for matches with single bindings (clippy::match_single_binding) * don't convert results to options just for matching (clippy::if_let_some_result)
2020-03-22Rollup merge of #70223 - lcnr:issue70167, r=eddybDylan DPC-4/+54
fix type of const params in associated types. fixes #66906 fixes #70167 r? @eddyb
2020-03-22Rollup merge of #70209 - Centril:recover-quant-closure, r=petrochenkovDylan DPC-14/+66
parser: recover on `for<'a> |...| body` closures When encountering `for` and `<` is 1 token ahead, interpret this as an explicitly quantified generic closure and recover, rather than attempting to parse a `for` loop. This provides both improved diagnostics as well as an insurance policy for the ability to use this as the syntax for generic closures in the future. As requested by r? @eddyb
2020-03-22Rollup merge of #70172 - eddyb:retokenize-external-src, r=petrochenkovDylan DPC-7/+15
parse/lexer: support `StringReader::retokenize` called on external files. This ~~should theoretically~~ fixes #69933, ~~but I'm not sure what the best way to test it is~~. **EDIT**: see https://github.com/rust-lang/rust/issues/69933#issuecomment-602019598. r? @petrochenkov cc @Xanewok @staktrace
2020-03-22Rollup merge of #68099 - lukaslueg:into_raw_unsafe, r=LukasKalbertodtDylan DPC-10/+36
Amend Rc/Arc::from_raw() docs regarding unsafety [This](https://stackoverflow.com/questions/59671647/is-it-safe-to-clone-a-type-erased-arc-via-raw-pointer) question on SO boils down to "is it safe to `::from_raw()` a `Rc<T>`/`Arc<T>` using a dummy `T` even if `T` is never dereferenced via the new `Rc`/`Arc`?". It almost never is. This PR amends the docs of `from_raw()` regarding this point.
2020-03-22Clean up E0449 explanationGuillaume Gomez-2/+3
2020-03-22Auto merge of #68820 - WaffleLapkin:remove_finished_from_map_while, ↵bors-57/+32
r=LukasKalbertodt Remove `finished` flag from `MapWhile` This PR removes `finished` flag from `MapWhile` as been proposed in https://github.com/rust-lang/rust/pull/66577#discussion_r370958025. This also resolves open questions of the tracking issue (#68537): - `MapWhile` can't implement both + `DoubleEndedIterator` (discussed in https://github.com/rust-lang/rust/pull/66577#discussion_r370947990 and following comments) + `FusedIterator` (this pr removes `finished` flag, so `MapWhile` isn't fused anymore) - Debug output (this pr removes `finished` flag, so there is no question in including it in debug output) r? @Mark-Simulacrum
2020-03-22remove redundant closures (clippy::redundant_closure)Matthias Krüger-41/+33
2020-03-22rename testsBastian Kauschke-2/+2
2020-03-22simplify eval_mir_constantBastian Kauschke-13/+3
2020-03-22handle unevaluated consts after monomophizeBastian Kauschke-21/+77
2020-03-22proc_macro_harness: Use item header spans for errorsVadim Petrochenkov-31/+20
2020-03-22Auto merge of #68098 - ssomers:btreemap_gdb_pretty_print, r=Mark-Simulacrumbors-3/+11
Test gdb pretty printing more and fix overzealous type substitution Adresses a problem concerning printing BTreeMap / BTreeSet data in gdb: when the key or value type name contains substring "LeafNode", and the map has multiple nodes (e.g. more than 11 elements), printing causes an exception. E.g. ``` rustc -g - <<EOF use std::collections::BTreeMap; struct MyLeafNode(i8); fn main() { let m: BTreeMap<i8, MyLeafNode> = (0..12).map(|i| (i, MyLeafNode(i))).collect(); assert!(!m.is_empty()); } EOF ``` ``` $ rust-gdb rust_out (gdb) b 7 (gdb) r (gdb) p m $1 = BTreeMap<i8, rust_out::MyLeafNode>(len: 12)Python Exception <class 'gdb.error'> No type named alloc::collections::btree::node::InternalNode<i8, rust_out::MyInternalNode>.: use std::collections::BTreeMap; ``` The code was written in #56144 by @tromey (and later touched upon by @RalfJung in #57045, but I think that had nothing to do with the issues in this PR).
2020-03-22Auto merge of #70153 - flip1995:clippyup, r=Dylan-DPCbors-7/+18
Update Clippy Closes #70128 cc rust-lang/rust-clippy#5342 r? @Manishearth
2020-03-21Allow calculating the layout behind a pointerCAD97-8/+142
Let align/size_of_of_val intrinsics work on ptrs
2020-03-22don't create variable bindings just to return the bound value immediately ↵Matthias Krüger-60/+33
(clippy::let_and_return)
2020-03-22parse: nix new_sub_parser_from_fileMazdak Farrokhzad-16/+10
2020-03-22summarize if-else-code with identical blocks (clippy::if_same_then_else)Matthias Krüger-7/+1
2020-03-22Remove another wrong entry from RELEASES.mdJonas Platte-1/+0
2020-03-21Remove wrong entry from RELEASES.mdJonas Platte-2/+0
2020-03-21Auto merge of #70246 - Dylan-DPC:rollup-vt9wex2, r=Dylan-DPCbors-58/+208
Rollup of 10 pull requests Successful merges: - #70003 (symbol_names: treat ReifyShim like VtableShim.) - #70051 (Allow `hir().find` to return `None`) - #70126 (Fix ICE caused by truncating a negative ZST enum discriminant) - #70197 (For issue 53957: revise unit test to focus on underlying bug of 23076.) - #70215 (ast: Compress `AttrId` from `usize` to `u32`) - #70218 (Fix deprecated Error.description() usage in docs) - #70228 (Remove CARGO_BUILD_TARGET from bootstrap.py) - #70231 (Add explanation message for E0224) - #70232 (Tweak wording for std::io::Read::read function) - #70238 (Add a test for out-of-line module passed through a proc macro) Failed merges: r? @ghost
2020-03-21Rollup merge of #70238 - petrochenkov:procmod, r=CentrilDylan DPC-0/+13
Add a test for out-of-line module passed through a proc macro Closes https://github.com/rust-lang/rust/issues/58818.
2020-03-21Rollup merge of #70232 - adrian5:patch-1, r=Dylan-DPCDylan DPC-1/+1
Tweak wording for std::io::Read::read function I think the sentence as a whole reads smoother that way.
2020-03-21Rollup merge of #70231 - aDotInTheVoid:E0224, r=Dylan-DPCDylan DPC-3/+24
Add explanation message for E0224 Addresses some of #61137
2020-03-21Rollup merge of #70228 - lzutao:patch-1, r=Mark-SimulacrumDylan DPC-0/+4
Remove CARGO_BUILD_TARGET from bootstrap.py Closes #70208
2020-03-21Rollup merge of #70218 - intgr:fix-deprecated-method-in-docs, r=jonas-schievinkDylan DPC-1/+1
Fix deprecated Error.description() usage in docs