rust/compiler
Nicholas Nethercote e9a0c429c5 Overhaul TyS and Ty.
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.
2022-02-15 16:03:24 +11:00
..
rustc remove unused jemallocator crate 2022-01-28 16:56:05 +01:00
rustc_apfloat Stabilize iter::zip. 2021-12-14 18:50:31 -04:00
rustc_arena Remove unused dep from rustc_arena 2022-02-02 17:37:14 +01:00
rustc_ast Auto merge of #93752 - eholk:drop-tracking-break-continue, r=nikomatsakis 2022-02-15 02:27:37 +00:00
rustc_ast_lowering Auto merge of #91403 - cjgillot:inherit-async, r=oli-obk 2022-02-12 21:42:10 +00:00
rustc_ast_passes Auto merge of #93561 - Amanieu:more-unwind-abi, r=nagisa 2022-02-08 03:20:05 +00:00
rustc_ast_pretty Pretty print ItemKind::Use in rustfmt style 2022-02-07 21:51:05 -08:00
rustc_attr Ensure that queries only return Copy types. 2022-02-09 20:07:38 +01:00
rustc_borrowck Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_builtin_macros Remove the alt_std_name option 2022-02-11 20:28:38 +01:00
rustc_codegen_cranelift Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_codegen_gcc Unconditionally update symbols 2022-02-10 18:27:18 +01:00
rustc_codegen_llvm Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_codegen_ssa Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_const_eval Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_data_structures Rename PtrKey as Interned and improve it. 2022-02-15 15:50:29 +11:00
rustc_driver Remove Config::stderr 2022-02-13 11:49:52 +01:00
rustc_error_codes Auto merge of #91403 - cjgillot:inherit-async, r=oli-obk 2022-02-12 21:42:10 +00:00
rustc_errors add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_expand add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_feature Rollup merge of #93824 - Amanieu:stable_cfg_target_has_atomic, r=davidtwco 2022-02-10 12:10:00 +01:00
rustc_fs_util Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_graphviz eplace usages of vec![].into_iter with [].into_iter 2022-01-09 14:09:25 +11:00
rustc_hir Auto merge of #93938 - BoxyUwU:fix_res_self_ty, r=lcnr 2022-02-14 12:26:43 +00:00
rustc_hir_pretty Rollup merge of #93746 - cjgillot:nodefii, r=nikomatsakis 2022-02-09 14:12:22 +09:00
rustc_incremental add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_index implement lint for suspicious auto trait impls 2022-02-01 09:55:19 +01:00
rustc_infer Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_interface Remove Config::stderr 2022-02-13 11:49:52 +01:00
rustc_lexer Auto merge of #91393 - Julian-Wollersberger:lexer_optimization, r=petrochenkov 2021-12-03 13:20:14 +00:00
rustc_lint Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_lint_defs implement lint for suspicious auto trait impls 2022-02-01 09:55:19 +01:00
rustc_llvm Apply noundef attribute to &T, &mut T, Box<T>, bool 2022-02-05 01:09:52 -05:00
rustc_log Make rustc_log doc test runnable 2022-01-03 22:31:56 -08:00
rustc_macros Make Decodable and Decoder infallible. 2022-01-22 10:38:31 +11:00
rustc_metadata fast_reject: remove StripReferences 2022-02-14 07:37:14 +01:00
rustc_middle Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_mir_build Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_mir_dataflow Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_mir_transform Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_monomorphize Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_parse Rollup merge of #93595 - compiler-errors:ice-on-lifetime-arg, r=jackh726 2022-02-12 09:26:21 +01:00
rustc_parse_format Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_passes change to a struct variant 2022-02-12 11:23:53 +00:00
rustc_plugin_impl replace dynamic library module with libloading 2021-12-06 12:03:47 -05:00
rustc_privacy change to a struct variant 2022-02-12 11:23:53 +00:00
rustc_query_impl Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_query_system Revert "Auto merge of #92007 - oli-obk:lazy_tait2, r=nikomatsakis" 2022-02-11 07:18:06 +00:00
rustc_resolve Rename PtrKey as Interned and improve it. 2022-02-15 15:50:29 +11:00
rustc_save_analysis change to a struct variant 2022-02-12 11:23:53 +00:00
rustc_serialize Drop json::from_reader 2022-02-05 15:07:10 -05:00
rustc_session Remove the alt_std_name option 2022-02-11 20:28:38 +01:00
rustc_span Rollup merge of #93936 - bjorn3:simplifications2, r=cjgillot 2022-02-13 06:44:18 +01:00
rustc_symbol_mangling add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_target rustc_target: Remove compiler-rt linking hack on Android 2022-02-13 21:22:02 +08:00
rustc_trait_selection Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_traits Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_ty_utils Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00
rustc_type_ir Revert "Auto merge of #92007 - oli-obk:lazy_tait2, r=nikomatsakis" 2022-02-11 07:18:06 +00:00
rustc_typeck Overhaul TyS and Ty. 2022-02-15 16:03:24 +11:00