| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2023-03-02 | Allow checking whether a type allows being uninitialized | Nilstrieb | -1/+4 | |
| This is useful for clippy and for the future `MaybeUninit::assume_init` panics. | ||||
| 2023-02-27 | Unify all validity check intrinsics | Nilstrieb | -12/+22 | |
| Also merges the inhabitedness check into the query to further unify the code paths. | ||||
| 2023-02-23 | Unify validity checks into a single query | Nilstrieb | -3/+3 | |
| Previously, there were two queries to check whether a type allows the 0x01 or zeroed bitpattern. I am planning on adding a further initness to check, truly uninit for MaybeUninit, which would make this three queries. This seems overkill for such a small feature, so this PR unifies them into one. | ||||
| 2023-02-14 | Make permit_uninit/zero_init fallible | Michael Goulet | -23/+17 | |
| 2023-02-14 | Don't ICE in might_permit_raw_init if reference is polymorphic | Michael Goulet | -2/+7 | |
| 2023-02-02 | Stop deaggegating MIR. | Camille GILLOT | -79/+0 | |
| 2023-01-27 | Introduce GeneratorWitnessMIR. | Camille GILLOT | -0/+1 | |
| 2023-01-26 | add method_substs to CallKind | Kyle Matsuda | -1/+2 | |
| 2023-01-23 | Thread a ParamEnv down to might_permit_raw_init | Ben Kimock | -1/+2 | |
| 2023-01-09 | Assert defining anchor is set in take_opaque_types | Michael Goulet | -1/+1 | |
| 2022-12-15 | Make alignment checks a future incompat lint | Oli Scherer | -2/+2 | |
| 2022-12-14 | Ensure no one constructs `AliasTy`s themselves | Oli Scherer | -1/+1 | |
| 2022-12-14 | Auto merge of #104986 - compiler-errors:opaques, r=oli-obk | bors | -2/+1 | |
| Combine `ty::Projection` and `ty::Opaque` into `ty::Alias` Implements https://github.com/rust-lang/types-team/issues/79. This PR consolidates `ty::Projection` and `ty::Opaque` into a single `ty::Alias`, with an `AliasKind` and `AliasTy` type (renamed from `ty::ProjectionTy`, which is the inner data of `ty::Projection`) defined as so: ``` enum AliasKind { Projection, Opaque, } struct AliasTy<'tcx> { def_id: DefId, substs: SubstsRef<'tcx>, } ``` Since we don't have access to `TyCtxt` in type flags computation, and because repeatedly calling `DefKind` on the def-id is expensive, these two types are distinguished with `ty::AliasKind`, conveniently glob-imported into `ty::{Projection, Opaque}`. For example: ```diff match ty.kind() { - ty::Opaque(..) => + ty::Alias(ty::Opaque, ..) => {} _ => {} } ``` This PR also consolidates match arms that treated `ty::Opaque` and `ty::Projection` identically. r? `@ghost` | ||||
| 2022-12-13 | Combine identical alias arms | Michael Goulet | -2/+1 | |
| 2022-12-13 | Combine projection and opaque into alias | Michael Goulet | -2/+2 | |
| 2022-12-13 | squash OpaqueTy and ProjectionTy into AliasTy | Michael Goulet | -2/+2 | |
| 2022-12-13 | ProjectionTy.item_def_id -> ProjectionTy.def_id | Michael Goulet | -1/+1 | |
| 2022-12-13 | Use ty::OpaqueTy everywhere | Michael Goulet | -1/+1 | |
| 2022-12-13 | Clarify what "this" means | Oli Scherer | -15/+3 | |
| 2022-12-10 | compiler: remove unnecessary imports and qualified paths | KaDiWa | -1/+0 | |
| 2022-11-28 | Make ObligationCtxt::normalize take cause by borrow | Michael Goulet | -2/+2 | |
| 2022-11-27 | Prefer doc comments over `//`-comments in compiler | Maybe Waffle | -1/+2 | |
| 2022-11-22 | Use `tcx.require_lang_item` instead of unwrapping | Maybe Waffle | -2/+2 | |
| 2022-11-21 | Rollup merge of #104595 - compiler-errors:poly-existential-predicate, r=lcnr | Matthias Krüger | -1/+1 | |
| Add `PolyExistentialPredicate` type alias Wrapping `ExistentialPredicate`s in a binder is very common, and this alias already exists for the `PolyExistential{TraitRef,Projection}` types. | ||||
| 2022-11-19 | drive-by: PolyExistentialPredicate | Michael Goulet | -1/+1 | |
| 2022-11-15 | use `ocx` type relation routines | lcnr | -3/+3 | |
| 2022-11-15 | add comment about opaque types | lcnr | -0/+3 | |
| 2022-11-15 | mv utility methods into separate module | lcnr | -0/+62 | |
| 2022-11-01 | Format dyn Trait better in type_name intrinsic | Michael Goulet | -10/+2 | |
| 2022-11-01 | Rollup merge of #103798 - RalfJung:type_name, r=oli-obk | Yuki Okushi | -0/+199 | |
| interpret: move type_name implementation to an interpreter-independent helper file This should avoid pinging rust-lang/miri each time that file changes, which is really not necessary. r? `@oli-obk` | ||||
| 2022-10-31 | interpret: move type_name implementation to an interpreter-independent ↵ | Ralf Jung | -0/+199 | |
| helper file | ||||
| 2022-10-29 | Simplify lang item groups | Cameron Steffen | -9/+11 | |
| 2022-10-05 | change might_permit_raw_init to fully detect LLVM UB, but not more than that | Ralf Jung | -0/+153 | |
| 2022-08-03 | Auto merge of #100064 - RalfJung:disaligned, r=petrochenkov | bors | -16/+12 | |
| fix is_disaligned logic for nested packed structs https://github.com/rust-lang/rust/pull/83605 broke the `is_disaligned` logic by bailing out of the loop in `is_within_packed` early. This PR fixes that problem and adds suitable tests. Fixes https://github.com/rust-lang/rust/issues/99838 | ||||
| 2022-08-03 | fix is_disaligned logic for nested packed structs | Ralf Jung | -16/+12 | |
| 2022-08-01 | Remove DefId from AssocItemContainer. | Camille GILLOT | -3/+6 | |
| 2022-07-01 | cleanup mir visitor for `rustc::pass_by_value` | lcnr | -2/+2 | |
| 2022-05-02 | rustc: Panic by default in `DefIdTree::parent` | Vadim Petrochenkov | -3/+3 | |
| Only crate root def-ids don't have a parent, and in majority of cases the argument of `DefIdTree::parent` cannot be a crate root. So we now panic by default in `parent` and introduce a new non-panicing function `opt_parent` for cases where the argument can be a crate root. Same applies to `local_parent`/`opt_local_parent`. | ||||
| 2022-04-11 | Add new `Deinit` statement kind | Jakob Degen | -26/+27 | |
| 2022-03-30 | Spellchecking some comments | Yuri Astrakhan | -1/+1 | |
| This PR attempts to clean up some minor spelling mistakes in comments | ||||
| 2022-03-11 | Improve `AdtDef` interning. | Nicholas Nethercote | -2/+2 | |
| This commit makes `AdtDef` use `Interned`. Much the commit is tedious changes to introduce getter functions. The interesting changes are in `compiler/rustc_middle/src/ty/adt.rs`. | ||||
| 2022-02-19 | rustc_const_eval: adopt let else in more places | est31 | -6/+3 | |
| 2022-02-12 | Handle Fn family trait call errror | Deadbeef | -2/+2 | |
| 2022-02-12 | Rebased and improved errors | Deadbeef | -3/+1 | |
| 2022-02-12 | Improve error messages even more | Deadbeef | -0/+147 | |
| 2021-12-22 | Store a `DefId` instead of an `AdtDef` in `AggregateKind::Adt` | Aaron Hill | -1/+2 | |
| The `AggregateKind` enum ends up in the final mir `Body`. Currently, any changes to `AdtDef` (regardless of how significant they are) will legitimately cause the overall result of `optimized_mir` to change, invalidating any codegen re-use involving that mir. This will get worse once we start hashing the `Span` inside `FieldDef` (which is itself contained in `AdtDef`). To try to reduce these kinds of invalidations, this commit changes `AggregateKind::Adt` to store just the `DefId`, instead of the full `AdtDef`. This allows the result of `optimized_mir` to be unchanged if the `AdtDef` changes in a way that doesn't actually affect any of the MIR we build. | ||||
| 2021-09-07 | Rename rustc_mir to rustc_const_eval. | Camille GILLOT | -0/+225 | |
