| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2023-08-24 | MIR validation: reject in-place argument/return for packed fields | Ralf Jung | -2/+3 | |
| 2023-07-27 | Turns out opaque types can have hidden types registered during mir validation | Oli Scherer | -6/+9 | |
| 2023-07-21 | Double check that hidden types match the expected hidden type | Oli Scherer | -3/+8 | |
| 2023-07-14 | refactor(rustc_middle): Substs -> GenericArg | Mahdi Dibaiee | -7/+6 | |
| 2023-07-01 | Put `LayoutError` behind reference to shrink result | Nilstrieb | -3/+3 | |
| `LayoutError` is 24 bytes, which is bigger than the `Ok` types, so let's shrink that. | ||||
| 2023-06-24 | Add enum for `can_access_statics` boolean | Nilstrieb | -3/+2 | |
| `/*can_access_statics:*/ false` is one of the ways to do this, but not the one I like. | ||||
| 2023-06-19 | Dedup some type checks in the MIR validator | Scott McMurray | -0/+26 | |
| 2023-06-16 | Add `AliasKind::Weak` for type aliases. | Oli Scherer | -0/+1 | |
| Only use it when the type alias contains an opaque type. Also does wf-checking on such type aliases. | ||||
| 2023-05-31 | Remove const eval limit and implement an exponential backoff lint instead | Oli Scherer | -6/+2 | |
| 2023-05-25 | Move DefiningAnchor | Michael Goulet | -2/+2 | |
| 2023-05-22 | properly pretty-print inherent projections | León Orell Valerian Liehr | -1/+2 | |
| 2023-04-16 | Move some utils out of `rustc_const_eval` | Nilstrieb | -214/+0 | |
| This allows us to get rid of the `rustc_const_eval->rustc_borrowck` dependency edge which was delaying the compilation of borrowck. The added utils in `rustc_middle` are small and should not affect compile times there. | ||||
| 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`. | ||||
