about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/ty/vtable.rs
AgeCommit message (Collapse)AuthorLines
2023-02-24Rename many interner functions.Nicholas Nethercote-1/+1
(This is a large commit. The changes to `compiler/rustc_middle/src/ty/context.rs` are the most important ones.) The current naming scheme is a mess, with a mix of `_intern_`, `intern_` and `mk_` prefixes, with little consistency. In particular, in many cases it's easy to use an iterator interner when a (preferable) slice interner is available. The guiding principles of the new naming system: - No `_intern_` prefixes. - The `intern_` prefix is for internal operations. - The `mk_` prefix is for external operations. - For cases where there is a slice interner and an iterator interner, the former is `mk_foo` and the latter is `mk_foo_from_iter`. Also, `slice_interners!` and `direct_interners!` can now be `pub` or non-`pub`, which helps enforce the internal/external operations division. It's not perfect, but I think it's a clear improvement. The following lists show everything that was renamed. slice_interners - const_list - mk_const_list -> mk_const_list_from_iter - intern_const_list -> mk_const_list - substs - mk_substs -> mk_substs_from_iter - intern_substs -> mk_substs - check_substs -> check_and_mk_substs (this is a weird one) - canonical_var_infos - intern_canonical_var_infos -> mk_canonical_var_infos - poly_existential_predicates - mk_poly_existential_predicates -> mk_poly_existential_predicates_from_iter - intern_poly_existential_predicates -> mk_poly_existential_predicates - _intern_poly_existential_predicates -> intern_poly_existential_predicates - predicates - mk_predicates -> mk_predicates_from_iter - intern_predicates -> mk_predicates - _intern_predicates -> intern_predicates - projs - intern_projs -> mk_projs - place_elems - mk_place_elems -> mk_place_elems_from_iter - intern_place_elems -> mk_place_elems - bound_variable_kinds - mk_bound_variable_kinds -> mk_bound_variable_kinds_from_iter - intern_bound_variable_kinds -> mk_bound_variable_kinds direct_interners - region - intern_region (unchanged) - const - mk_const_internal -> intern_const - const_allocation - intern_const_alloc -> mk_const_alloc - layout - intern_layout -> mk_layout - adt_def - intern_adt_def -> mk_adt_def_from_data (unusual case, hard to avoid) - alloc_adt_def(!) -> mk_adt_def - external_constraints - intern_external_constraints -> mk_external_constraints Other - type_list - mk_type_list -> mk_type_list_from_iter - intern_type_list -> mk_type_list - tup - mk_tup -> mk_tup_from_iter - intern_tup -> mk_tup
2022-12-18avoid .into() conversion to identical typesMatthias Krüger-2/+2
2022-12-10compiler: remove unnecessary imports and qualified pathsKaDiWa-1/+0
2022-11-13add is_sized method on Abi and Layout, and use itRalf Jung-1/+1
2022-08-26make read_immediate error immediately on uninit, so ImmTy can carry ↵Ralf Jung-4/+4
initialized Scalar
2022-05-28Fix TyKind lint, make consts no longer fn, etcMichael Goulet-3/+5
2022-05-28Initial fixes on top of type interner commitMichael Goulet-3/+4
2021-10-07Turn tcx.vtable_allocation() into a query.Michael Woerister-65/+60
2021-10-07Remove untracked vtable-const-allocation cache from tcxMichael Woerister-9/+1
2021-07-22Add comment and more tests.Charles Lew-0/+6
2021-07-20Switch to store `Instance` directly within `VtblEntry`, fix `TraitVPtr` ↵Charles Lew-21/+29
representation.
2021-07-20Refactor vtable format.Charles Lew-1/+7
2021-07-14consistently treat None-tagged pointers as ints; get rid of some deprecated ↵Ralf Jung-3/+3
Scalar methods
2021-07-03Make vtable_allocation always succeedSmitty-5/+6
2021-07-02Allocation failure in constprop panics right awaySmitty-1/+1
2021-06-29Properly handle const prop failuresSmitty-1/+1
2021-06-29Support allocation failures when interperting MIRSmitty-5/+5
Note that this breaks Miri. Closes #79601
2021-06-28Update other codegens to use tcx managed vtable allocations.Charles Lew-0/+106