- 13 3月, 2022 2 次提交
-
-
由 Devin Ragotzy 提交于
-
由 Devin Ragotzy 提交于
-
- 11 3月, 2022 1 次提交
-
-
由 Nicholas Nethercote 提交于
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`.
-
- 09 3月, 2022 3 次提交
-
-
由 b-naber 提交于
-
由 Esteban Kuber 提交于
-
由 Esteban Kuber 提交于
-
- 08 3月, 2022 6 次提交
-
-
由 b-naber 提交于
-
由 Esteban Kuber 提交于
-
由 Esteban Kuber 提交于
This makes the order of the output always consistent: 1. Place of the `match` missing arms 2. The `enum` definition span 3. The structured suggestion to add a fallthrough arm
-
由 Esteban Kuber 提交于
Given ```rust match Some(42) { Some(0) => {} Some(1) => {} } ``` suggest ```rust match Some(42) { Some(0) => {} Some(1) => {} None | Some(_) => todo!(), } ```
-
由 Esteban Kuber 提交于
Given ```rust match Some(42) { Some(0) => {} } ``` suggest ```rust match Some(42) { Some(0) => {} None | Some(_) => todo!(), } ```
-
由 Esteban Kuber 提交于
Given ```rust match Some(42) {} ``` suggest ```rust match Some(42) { None | Some(_) => todo!(), } ```
-
- 02 3月, 2022 1 次提交
-
-
由 mark 提交于
-
- 01 3月, 2022 1 次提交
-
-
由 Caio 提交于
Continuation of #94376. cc #53667
-
- 23 2月, 2022 2 次提交
-
-
由 Eduard-Mihai Burtescu 提交于
-
由 Eduard-Mihai Burtescu 提交于
-
- 21 2月, 2022 2 次提交
-
-
由 lcnr 提交于
-
由 Mark Rousskov 提交于
This reverts commit a240ccd8, reversing changes made to 393fdc10. This PR was likely responsible for a relatively large regression in dist-x86_64-msvc-alt builder times, from approximately 1.7 to 2.8 hours, bringing that builder into the pool of the slowest builders we currently have. This seems to be limited to the alt builder due to needing parallel-compiler enabled, likely leading to slow LLVM compilation for some reason.
-
- 20 2月, 2022 1 次提交
-
-
由 est31 提交于
-
- 17 2月, 2022 1 次提交
-
-
由 Mark Rousskov 提交于
-
- 16 2月, 2022 1 次提交
-
-
由 b-naber 提交于
-
- 15 2月, 2022 2 次提交
-
-
由 Nicholas Nethercote 提交于
Specifically, rename the `Const` struct as `ConstS` and re-introduce `Const` as this: ``` pub struct Const<'tcx>(&'tcx Interned<ConstS>); ``` This now matches `Ty` and `Predicate` more closely, including using pointer-based `eq` and `hash`. Notable changes: - `mk_const` now takes a `ConstS`. - `Const` was copy, despite being 48 bytes. Now `ConstS` is not, so need a we need separate arena for it, because we can't use the `Dropless` one any more. - Many `&'tcx Const<'tcx>`/`&Const<'tcx>` to `Const<'tcx>` changes - Many `ct.ty` to `ct.ty()` and `ct.val` to `ct.val()` changes. - Lots of tedious sigil fiddling.
-
由 Nicholas Nethercote 提交于
Specifically, change `Ty` from this: ``` pub type Ty<'tcx> = &'tcx TyS<'tcx>; ``` to this ``` pub struct Ty<'tcx>(Interned<'tcx, TyS<'tcx>>); ``` There are two benefits to this. - It's now a first class type, so we can define methods on it. This means we can move a lot of methods away from `TyS`, leaving `TyS` as a barely-used type, which is appropriate given that it's not meant to be used directly. - The uniqueness requirement is now explicit, via the `Interned` type. E.g. the pointer-based `Eq` and `Hash` comes from `Interned`, rather than via `TyS`, which wasn't obvious at all. Much of this commit is boring churn. The interesting changes are in these files: - compiler/rustc_middle/src/arena.rs - compiler/rustc_middle/src/mir/visit.rs - compiler/rustc_middle/src/ty/context.rs - compiler/rustc_middle/src/ty/mod.rs Specifically: - Most mentions of `TyS` are removed. It's very much a dumb struct now; `Ty` has all the smarts. - `TyS` now has `crate` visibility instead of `pub`. - `TyS::make_for_test` is removed in favour of the static `BOOL_TY`, which just works better with the new structure. - The `Eq`/`Ord`/`Hash` impls are removed from `TyS`. `Interned`s impls of `Eq`/`Hash` now suffice. `Ord` is now partly on `Interned` (pointer-based, for the `Equal` case) and partly on `TyS` (contents-based, for the other cases). - There are many tedious sigil adjustments, i.e. adding or removing `*` or `&`. They seem to be unavoidable.
-
- 12 2月, 2022 1 次提交
-
-
由 Ellen 提交于
-
- 21 1月, 2022 1 次提交
-
-
由 Cameron Steffen 提交于
-
- 19 1月, 2022 1 次提交
-
-
由 Caio 提交于
-
- 17 1月, 2022 1 次提交
-
-
由 Cameron Steffen 提交于
-
- 16 1月, 2022 1 次提交
-
-
由 Camille GILLOT 提交于
-
- 15 1月, 2022 2 次提交
- 13 1月, 2022 1 次提交
-
-
由 Tomasz Miąsko 提交于
-
- 11 1月, 2022 1 次提交
-
-
由 Aaron Hill 提交于
The field is also renamed from `ident` to `name. In most cases, we don't actually need the `Span`. A new `ident` method is added to `VariantDef` and `FieldDef`, which constructs the full `Ident` using `tcx.def_ident_span()`. This method is used in the cases where we actually need an `Ident`. This makes incremental compilation properly track changes to the `Span`, without all of the invalidations caused by storing a `Span` directly via an `Ident`.
-
- 08 1月, 2022 2 次提交
-
-
由 Gary Guo 提交于
Region info is completely unnecessary for upvar capture kind computation and is only needed to create the final upvar tuple ty. Doing so makes creation of UpvarCapture very cheap and expose further cleanup opportunity.
-
由 Gary Guo 提交于
This span is unused and is superseded by capture_kind_expr_id in CaptureInfo
-
- 23 12月, 2021 1 次提交
-
-
由 lcnr 提交于
-
- 19 12月, 2021 1 次提交
-
-
由 threadexception 提交于
Co-authored-by: NSimonas Kazlauskas <github@kazlauskas.me>
-
- 13 12月, 2021 1 次提交
-
-
由 Cormac Relf 提交于
unify typeck of hir::Local and hir::Let remove extraneous pub(crate/super)
-
- 06 12月, 2021 1 次提交
-
-
由 Gary Guo 提交于
-
- 24 11月, 2021 1 次提交
-
-
由 Badel2 提交于
-
- 21 11月, 2021 1 次提交
-
-
由 Cameron Steffen 提交于
-