about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2020-04-19Rollup merge of #71319 - GuillaumeGomez:cleanup-e0522, r=Dylan-DPCDylan DPC-4/+7
Clean up E0522 explanation r? @Dylan-DPC
2020-04-19Rollup merge of #71315 - huangjiahua:update-documentation, r=Dylan-DPCDylan DPC-0/+18
Add example in the alternative in std::mem::transmute docs It is safer to use `from_ne_bytes` to convert raw bytes to type like u32. #71187
2020-04-19Rollup merge of #71188 - Duddino:fix, r=matthewjasperDylan DPC-10/+32
Fixed missing trait method suggests incorrect code (self parameter not named "self"). fixes #71150
2020-04-19Rollup merge of #71107 - vorner:weak-into-raw-dangling, r=AmanieuDylan DPC-54/+80
Address concerns of weak-into-raw This should address the standing concerns in https://github.com/rust-lang/rust/issues/60728#issuecomment-612525616. I've still left the ability to create a new dangling pointer from `null`, as I feel like this is the natural behaviour to expect, but I'm fine removing that too. I've modified the documentation to allow the `as_ptr` or `into_ptr` to return whatever garbage in case of a dangling pointer. I've also removed the guarantee to be able to do `from_raw(as_ptr)` from the documentation (but it would still work right now). I've renamed the method and added implementations for `Rc`/`Arc`. I've also tried if I can just „enable“ unsized types. I believe the current interface is compatible with them. But the inner implementation will be a bit challenging ‒ I can't use the `data_offset` as is used by `Rc` or `Arc` because it AFAIK „touches“ (creates a reference to) the live value of `T` ‒ and in case of `Weak`, it might be completely bogus or already dead ‒ so that would be UB. `./x.py test tidy` is completely mad on my own system all over the code base :-(. I'll just hope it goes through CI, or will fix as necessary. Is it OK if I ask @Amanieu for review, as the concerns are from you? ~r @Amanieu
2020-04-19Clean up E0522 explanationGuillaume Gomez-4/+7
2020-04-19Auto merge of #70015 - jonas-schievink:gen-needs-drop, r=matthewjasperbors-44/+85
Make `needs_drop` less pessimistic on generators Generators only have non-trivial drop logic when they may store (in upvars or across yields) a type that does. This prevents generation of some unnecessary MIR in simple generators. There might be some impact on compile times, but this is probably limited in real-world applications. ~~This builds off of https://github.com/rust-lang/rust/pull/69814 since that contains some fixes that are made relevant by *this* PR (see https://github.com/rust-lang/rust/pull/69814#issuecomment-599147269).~~ (this has been merged)
2020-04-19weak-into-raw: Add {Arc,Rc}::as_ptrMichal 'vorner' Vaner-2/+50
For consistency with Weak
2020-04-19Auto merge of #69793 - estebank:predicate-obligations-4, r=nikomatsakisbors-313/+287
Maintain chain of derived obligations When evaluating the derived obligations from super traits, maintain a reference to the original obligation in order to give more actionable context in the output. Continuation (and built on) #69745, subset of #69709. r? @eddyb
2020-04-18Add label to item source of bound obligationEsteban Küber-61/+61
2020-04-18Do not emit note for projected derived obligationsEsteban Küber-48/+22
2020-04-18Remove `AssocTypeBound` and propagate bound `Span`sEsteban Küber-287/+106
2020-04-18Maintain chain of derived obligationsEsteban Küber-0/+181
When evaluating the derived obligations from super traits, maintain a reference to the original obligation in order to give more actionable context in the output.
2020-04-19Rollup merge of #71303 - tshepang:master, r=Mark-SimulacrumDylan DPC-15/+17
remove build warnings Code blocks that are not annotated are assumed to be Rust
2020-04-19Rollup merge of #71287 - JohnTitor:comment-vec, r=RalfJungDylan DPC-0/+3
Explain why we shouldn't add inline attr to into_vec Follow-up of #71204 r? @RalfJung
2020-04-19Rollup merge of #71283 - Amanieu:zprofile, r=davidtwcoDylan DPC-2/+16
Minor improvements to -Zprofile - `-Zprofile` is broken with codegen units because GCOV assumes that each source file corresponds to one object file. This PR makes `-Zprofile` automatically set codegen units to 1 and gives an error if `-Ccodegen-units=X` is specified on the command line (with `X != 1`). - The `profiler_builtins` crate is not suitable for `no_std` applications since it contains C code that depends on libc. In such cases a custom implementation of the LLVM gcov API (`llvm_gcov_init`, `llvm_gcda_*`) is needed. This PR adds `-Zno-profiler-runtime` flag which inhibits automatic injection of the `profiler_builtins` crate. cc @whitequark who implemented the original `-Zprofile` support
2020-04-19Rollup merge of #71276 - RalfJung:miri-unleash-box, r=ecstatic-morseDylan DPC-3/+30
miri-unleashed: test that we detect heap allocations This removes the second-to-last use of `IS_SUPPORTED_IN_MIRI = false`. r? @ecstatic-morse @oli-obk
2020-04-19Rollup merge of #71271 - JohnTitor:map-in-place, r=petrochenkovDylan DPC-7/+5
Move `MapInPlace` to rustc_data_structures Follow-up of #67786, it fits the purpose of rustc_data_structures. r? @petrochenkov
2020-04-18remove build warningsTshepang Lekhonkhobe-15/+17
Code blocks that are not annotated are assumed to be Rust
2020-04-19Explain why we shouldn't add inline attr to into_vecYuki Okushi-0/+3
2020-04-18Auto merge of #71218 - eddyb:a-lifetime-stranded-in-fn-def, r=nikomatsakisbors-6/+64
outlives: ignore lifetimes shallowly found in `ty::FnDef`s. Fixes #70917 by restoring the pre-#70164 behavior for now. r? @nikomatsakis
2020-04-18Add an option to inhibit automatic injection of profiler_builtinsAmanieu d'Antras-1/+5
2020-04-18Auto merge of #71278 - matthiaskrgr:submodule_upd, r=Dylan-DPCbors-20/+10
submodules: update clippy from 6651c1b9 to 891e1a85 This PR gets `cargo clippy --fix -Zunstable-options` into nightly :tada: Changes: ```` Polished lint and tests Added final lint and tests Added basic lint and tests fix redundant_pattern_matching lint add lint futures_not_send Integrate more idiomatic rust changes. Fix issue #4892. cargo dev fmt Cleanup: Rename 'db' variable to 'diag' question_mark: don't add `as_ref()` for a call expression unit_arg suggestion may be incorrect readme: update to cargo clippy --fix command CI: performing system upgrade fixes broken apt deps on ubuntu 32bit Do not lint in macros for match lints [fix] Minor typo in GH Actions 'clippy_dev' Reenable rustfmt integration test Add test to map_flatten with an Option Lint map_flatten if caller is an Option Apply suggestions from code review manually fixing formatting at this point lol fmt rename field revert the damn fmt changes add some tests split it up for testing but the merge broke tests dogfood tasted bad fix rustfmt issue boycott manish check for unstable options Start work on clippy-fix as subcommand ```` Should be save to rollup since we are in no-toolstate-break week (I also didn't see any breakage when testing the clippy with 28742a114)
2020-04-18submodules: update clippy from 6651c1b9 to 891e1a85Matthias Krüger-20/+10
Changes: ```` Polished lint and tests Added final lint and tests Added basic lint and tests fix redundant_pattern_matching lint add lint futures_not_send Integrate more idiomatic rust changes. Fix issue #4892. cargo dev fmt Cleanup: Rename 'db' variable to 'diag' question_mark: don't add `as_ref()` for a call expression unit_arg suggestion may be incorrect readme: update to cargo clippy --fix command CI: performing system upgrade fixes broken apt deps on ubuntu 32bit Do not lint in macros for match lints [fix] Minor typo in GH Actions 'clippy_dev' Reenable rustfmt integration test Add test to map_flatten with an Option Lint map_flatten if caller is an Option Apply suggestions from code review manually fixing formatting at this point lol fmt rename field revert the damn fmt changes add some tests split it up for testing but the merge broke tests dogfood tasted bad fix rustfmt issue boycott manish check for unstable options Start work on clippy-fix as subcommand ````
2020-04-18miri-unleashed: test that we detect heap allocationsRalf Jung-2/+29
2020-04-18check_consts: make ops module privateRalf Jung-1/+1
2020-04-18Auto merge of #71204 - JohnTitor:into-vec, r=wesleywiserbors-1/+0
perf: Remove inline attribute from `into_vec()` It was introduced in #70565 and is likely related to this perf results: https://perf.rust-lang.org/compare.html?start=1edcfc83c6a08ddc5e63fc652b149baea0236e7c&end=d249d756374737eb014079901ac132f1e1ed905e&stat=instructions:u Let's check if it's related to that. r? @wesleywiser could you kick off perf check? I don't think I can do it.
2020-04-18Add example in the alternative in std::mem::transmute docshuangjiahua-0/+18
It is safer to use `from_ne_bytes` to convert raw bytes to type like u32.
2020-04-18Move `MapInPlace` to rustc_data_structuresYuki Okushi-7/+5
2020-04-18Auto merge of #71147 - cuviper:min-llvm8, r=Mark-Simulacrumbors-191/+63
Update the minimum external LLVM to 8 LLVM 8 was released on March 20, 2019, over a year ago.
2020-04-17Rollup merge of #71243 - Duddino:Fix2, r=estebankDylan DPC-1/+73
Account for use of `try!()` in 2018 edition and guide users in the right direction fixes #71155
2020-04-17Rollup merge of #71238 - RalfJung:miri-typo, r=oli-obkDylan DPC-1/+1
Miri: fix typo r? @oli-obk at least I think this should be "without", right?
2020-04-17Rollup merge of #71167 - RalfJung:big-o, r=shepmasterDylan DPC-47/+46
big-O notation: parenthesis for function calls, explicit multiplication I saw `O(n m log n)` in the docs and found that really hard to parse. In particular, I don't think we should use blank space as syntax for *both* multiplication and function calls, that is just confusing. This PR makes both multiplication and function calls explicit using Rust-like syntax. If you prefer, I can also leave one of them implicit, but I believe explicit is better here. While I was at it I also added backticks consistently.
2020-04-17Rollup merge of #71070 - petrochenkov:nolldaround, r=Mark-SimulacrumDylan DPC-21/+0
rustbuild: Remove stage 0 LLD flavor workaround for MSVC
2020-04-17Rollup merge of #70467 - wesleywiser:invoke-vs-call, r=nagisaDylan DPC-9/+38
Use `call` instead of `invoke` for functions that cannot unwind The `FnAbi` now knows if the function is allowed to unwind. If a function isn't allowed to unwind, we can use a `call` instead of an `invoke`. This resolves an issue when calling LLVM intrinsics which cannot unwind LLVM will generate an error if you attempt to invoke them so we need to ignore cleanup blocks in codegen and generate a call instead. Fixes #69911 r? @eddyb cc @rust-lang/wg-ffi-unwind
2020-04-17Make -Zprofile set codegen-units to 1Amanieu d'Antras-1/+11
2020-04-17Ignore generator-drop-cleanup on wasm32-bareJonas Schievink-31/+33
2020-04-17Adjust mir-opt test and make it drop somethingJonas Schievink-29/+57
2020-04-17Rollup merge of #71254 - JOE1994:add_comment, r=jonas-schievinkDylan DPC-3/+4
Minor fix and addition to doc comments 1. Fixed doc comment of struct 'rustc_middle::mir::Location' Currently, the general explanation of the struct appears at the field explanation section. I moved and changed the doc comments slightly, so that the general explanation would appear in the proper location in docs. 2. Added doc comment explaining 'rustc_mir::util::pretty::write_mir_fn' Unlike other counterparts, brief explanation for this function was missing, so I added one. Thank you for reviewing this PR :)
2020-04-17Rollup merge of #71247 - ldm0:minor, r=estebankDylan DPC-10/+11
Remove unnecessary variable intialization Minor fix.
2020-04-17Rollup merge of #71246 - crlf0710:linked_list_cursor, r=AmanieuDylan DPC-0/+8
Implement `Clone` for `liballoc::collections::linked_list::Cursor`. This implements `Clone` for linked list `Cursor`. Implementing `Copy` is also possible here, but i'm not sure whether i should also do it. r? @Amanieu
2020-04-17Rollup merge of #71239 - JohnTitor:llvm-asm, r=AmanieuDylan DPC-19/+19
Rename `asm` test directory in favor of `llvm_asm` r? @Amanieu
2020-04-17Rollup merge of #69642 - ecstatic-morse:issue-69615, r=oli-obkDylan DPC-24/+45
Use query to determine whether function needs const checking Resolves #69615. The HIR const-checker was checking the `constness` of a function's `fn_sig` to determine whether a function needed const-checking. Now that const trait impls are a thing, this is no longer enough. All code should use the `is_const_fn_raw` query instead, which takes the constness of the impl block into account. r? @oli-obk
2020-04-17Make `needs_drop` less pessimistic on generatorsJonas Schievink-18/+29
2020-04-17Improved try_macro_suggestion functionDuddino-4/+2
2020-04-17Minor fix and addition to doc commentsJOE1994-3/+4
1. Fixed doc comment of struct 'rustc_middle::mir::Location' Currently, the general explanation of the struct appears at the field explanation section. I moved and changed the doc comments slightly, so that the general explanation would appear in the proper location in docs. 2. Added doc comment explaining 'rustc_mir::util::pretty::write_mir_fn' Unlike other counterparts, brief explanation for this function was missing, so I added one. Thank you for reviewing this PR :)
2020-04-17Improved try_macro_suggestionDuddino-4/+5
2020-04-17Moved is_try check into try_macro_suggestionDuddino-4/+3
2020-04-17Implement `Clone` for `liballoc::collections::linked_list::Cursor`.Charles Lew-0/+8
2020-04-17Remove unnecessary variable intializationDonough Liu-10/+11
2020-04-17Account for use of `try!()` in 2018 edition and guide users in the right ↵Duddino-0/+74
direction