about summary refs log tree commit diff
path: root/compiler/rustc_mir/src
AgeCommit message (Collapse)AuthorLines
2021-01-08Change wording of noteAaron Hill-1/+1
2021-01-08Explain method-call move errors in loopsAaron Hill-74/+68
PR #73708 added a more detailed explanation of move errors that occur due to a call to a method that takes `self`. This PR extends that logic to work when a move error occurs due to a method call in the previous iteration of a loop.
2021-01-08Rollup merge of #80521 - richkadel:llvm-coverage-counters-2.4.0, r=wesleywiserYuki Okushi-0/+9
MIR Inline is incompatible with coverage Fixes: #80060 Fixed by disabling inlining if `-Zinstrument-coverage` is set. The PR also adds additional use cases to the coverage test for doctests. r? `@wesleywiser` cc: `@tmandry`
2021-01-07Auto merge of #80648 - Aaron1011:expn-data-private, r=petrochenkovbors-4/+4
Make `ExpnData` fields `krate` and `orig_id` private These fields are only used by hygiene serialized, and should not be accessed by anything outside of `rustc_span`.
2021-01-05Remove a FIXME and explain the decisionoli-1/+2
2021-01-04Do not run const prop on the `mir_for_ctfe` of `const fn`oli-19/+34
2021-01-04No doc comments on expressionsoli-3/+3
2021-01-04Small comment adjustmentsoli-0/+3
2021-01-04Move MIR body loading to a machine functionoli-10/+34
2021-01-04Adjust importsoli-3/+3
2021-01-04Document all the thingsoli-0/+13
2021-01-04Polymorphization should look at the runtime MIR of `const fn`oli-5/+4
2021-01-04Simplify the `optimize_mir` queryoli-17/+9
2021-01-04Differentiate between the availability of ctfe MIR and runtime MIRoli-17/+18
2021-01-04Keep an unoptimized duplicate of `const fn` aroundoli-3/+80
This allows CTFE to reliably detect UB, as otherwise optimizations may hide UB.
2021-01-04Stop optimizing promotedsoli-1/+0
2021-01-04Auto merge of #80624 - RalfJung:place-ref, r=oli-obkbors-93/+45
use PlaceRef more consistently instead of loosely coupled local+projection Instead of working directly with the `projections` array, use `iter_projections` and `last_projection`. This avoids having to construct new `PlaceRef` from the pieces everywhere. I only did this for a few files, to see how people think about this. If y'all are happy with this, I'll open an E-mentor issue to complete this. I grepped for `Place::ty_from` to find the places that need adjusting -- this could miss some, but I am not sure what else to grep for.
2021-01-04Inlining enabled by -mir-opt-level > 1 is incompatible with coverageRich Kadel-0/+9
Fixes: #80060 Also adds additional test cases for coverage of doctests.
2021-01-04Auto merge of #80418 - oli-obk:this_could_have_been_so_simple, r=RalfJungbors-5/+98
Allow references to interior mutable data behind a feature gate supercedes #80373 by simply not checking for interior mutability on borrows of locals that have `StorageDead` and thus can never be leaked to the final value of the constant tracking issue: https://github.com/rust-lang/rust/issues/80384 r? `@RalfJung`
2021-01-03Stylistic fixes to diagnostic messagesoli-3/+3
2021-01-03Refactor the non-transient cell borrow error diagnosticoli-3/+22
2021-01-03Dangling pointers point to everything and nothingOli Scherer-2/+1
Co-authored-by: Ralf Jung <post@ralfj.de>
2021-01-03Grammar fixesOli Scherer-1/+1
Co-authored-by: Ralf Jung <post@ralfj.de>
2021-01-03Make `ExpnData` fields `krate` and `orig_id` privateAaron Hill-4/+4
These fields are only used by hygiene serialized, and should not be accessed by anything outside of `rustc_span`.
2021-01-03Update now-more-precise operation with a preciser messageoli-2/+2
2021-01-03Apply suggestions from code reviewOli Scherer-4/+9
comment nits Co-authored-by: Ralf Jung <post@ralfj.de>
2021-01-03use PlaceRef more consistently instead of loosely coupled local+projectionRalf Jung-93/+45
2021-01-03remove redundant closures (clippy::redundant_closure)Matthias Krüger-6/+6
2021-01-02use hir::Place instead of Symbol in closure_kind_originRoxane-4/+4
2021-01-02reduce borrowing and (de)referencing around match patterns ↵Matthias Krüger-3/+3
(clippy::match_ref_pats)
2021-01-01Don't mix feature gates and hard errors, decide on one per op and stick with itoli-15/+18
2021-01-01Reinstate the error-code error over the feature gate erroroli-9/+15
2021-01-01Enhance some commentsoli-0/+2
2021-01-01Fix cell checks in const fnoli-0/+7
2021-01-01The proper name for the rule is "enclosing scope"oli-1/+1
2021-01-01Allow references to interior mutable data behind a feature gateoli-1/+53
2020-12-31remove move_val_init leftoversRalf Jung-8/+0
2020-12-30Rollup merge of #80491 - RalfJung:dangling-of-val, r=oli-obkMara Bos-3/+5
Miri: make size/align_of_val work for dangling raw ptrs This is needed for https://github.com/rust-lang/rust/issues/80365#issuecomment-752128105. r? `@oli-obk`
2020-12-30Rollup merge of #80458 - RalfJung:promotion-refactor, r=oli-obkMara Bos-99/+115
Some Promotion Refactoring Clean up promotion a bit: * factor out some common code * more exhaustive matches This *should* not break anything... the only potentially-breaking change is that `BorrowKind::Shallow | BorrowKind::Unique` are now rejected for internal references. r? ``@oli-obk``
2020-12-30Auto merge of #80510 - JohnTitor:rollup-gow7y0l, r=JohnTitorbors-12/+8
Rollup of 7 pull requests Successful merges: - #80185 (Fix ICE when pointing at multi bytes character) - #80260 (slightly more typed interface to panic implementation) - #80311 (Improvements to NatVis support) - #80337 (Use `desc` as a doc-comment for queries if there are no doc comments) - #80381 (Revert "Cleanup markdown span handling") - #80492 (remove empty wraps, don't return Results from from infallible functions) - #80509 (where possible, pass slices instead of &Vec or &String (clippy::ptr_arg)) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2020-12-30Auto merge of #79684 - usbalbin:const_copy, r=oli-obkbors-0/+23
Make copy[_nonoverlapping] const Constifies * `intrinsics::copy` and `intrinsics::copy_nonoverlapping` * `ptr::read` and `ptr::read_unaligned` * `*const T::read` and `*const T::read_unaligned` * `*mut T::read` and `*mut T::read_unaligned` * `MaybeUninit::assume_init_read`
2020-12-30where possible, pass slices instead of &Vec or &String (clippy::ptr_arg)Matthias Krüger-12/+8
2020-12-29Miri: make size/align_of_val work for dangling raw ptrsRalf Jung-3/+5
2020-12-29Remove `compile-fail` test suiteVadim Petrochenkov-1/+1
2020-12-29fix a commentRalf Jung-1/+1
2020-12-29Auto merge of #79084 - simonvandel:instcombine-perf, r=oli-obkbors-4/+24
Small perf changes for InstCombine
2020-12-28make more matches exhaustiveRalf Jung-20/+41
2020-12-28use exhaustive pattern match to prevent future bugsSimon Vandel Sillesen-4/+13
2020-12-28merge two match'es for more exhaustivenessRalf Jung-39/+41
2020-12-28promotion: factor some common code into validate_refRalf Jung-57/+50