rust/compiler
bors 91198820d7 Auto merge of #88575 - eddyb:fn-abi-queries, r=nagisa
Querify `FnAbi::of_{fn_ptr,instance}` as `fn_abi_of_{fn_ptr,instance}`.

*Note: opening this PR as draft because it's based on #88499*

This more or less replicates the `LayoutOf::layout_of` setup from #88499, to replace `FnAbi::of_{fn_ptr,instance}` with `FnAbiOf::fn_abi_of_{fn_ptr,instance}`, and also route them through queries (which `layout_of` has used for a while).

The two changes at the use sites (other than the names) are:
* return type is now wrapped in `&'tcx`
  * the value *is* interned, which may affect performance
* the `extra_args` list is now an interned `&'tcx ty::List<Ty<'tcx>>`
  * should be cheap (it's empty for anything other than C variadics)

Theoretically, a `FnAbiOfHelpers` implementer could choose to keep the `Result<...>` instead of eagerly erroring, but the only existing users of these APIs are codegen backends, so they don't (want to) take advantage of this.
At least miri could make use of this, since it prefers propagating errors (it "just" doesn't use `FnAbi` yet - cc `@RalfJung).`

The way this is done is probably less efficient than what is possible, because the queries handle the correctness-oriented API (i.e. the split into `fn` pointers vs instances), whereas a lower-level query could end up with more reuse between different instances with identical signatures.

r? `@nagisa` cc `@oli-obk` `@bjorn3`
2021-09-19 21:39:47 +00:00
..
rustc
rustc_apfloat
rustc_arena Remove unused arena macro args 2021-08-30 13:09:38 +02:00
rustc_ast Rollup merge of #88775 - pnkfelix:revert-anon-union-parsing, r=davidtwco 2021-09-15 14:56:58 -07:00
rustc_ast_lowering Auto merge of #88703 - cjgillot:lazymod, r=petrochenkov 2021-09-19 16:13:42 +00:00
rustc_ast_passes delay error for enabling unstable lib features 2021-09-16 14:22:32 -04:00
rustc_ast_pretty Revert "Implement Anonymous{Struct, Union} in the AST" 2021-09-09 09:14:17 -04:00
rustc_attr Remove Session.used_attrs and move logic to CheckAttrVisitor 2021-08-21 13:27:27 -05:00
rustc_borrowck Auto merge of #88980 - tmiasko:instrument-debug, r=oli-obk 2021-09-18 06:11:02 +00:00
rustc_builtin_macros Auto merge of #88832 - pcwalton:debug-unit-variant-fast-path, r=oli-obk 2021-09-17 01:00:11 +00:00
rustc_codegen_cranelift Querify fn_abi_of_{fn_ptr,instance}. 2021-09-18 04:41:33 +03:00
rustc_codegen_llvm Auto merge of #88575 - eddyb:fn-abi-queries, r=nagisa 2021-09-19 21:39:47 +00:00
rustc_codegen_ssa Auto merge of #88575 - eddyb:fn-abi-queries, r=nagisa 2021-09-19 21:39:47 +00:00
rustc_const_eval Rollup merge of #89021 - WaffleLapkin:separate_error_for_dyn_trait_in_const_fn, r=estebank 2021-09-19 17:31:33 +09:00
rustc_data_structures Rollup merge of #88711 - Mark-Simulacrum:fix-dfs-bug, r=jackh726 2021-09-12 03:44:57 -07:00
rustc_driver Rollup merge of #88751 - bjorn3:move_filesearch, r=oli-obk 2021-09-17 14:09:47 +09:00
rustc_error_codes Rollup merge of #88855 - calebzulawski:feature/simd_shuffle, r=nagisa 2021-09-19 17:31:29 +09:00
rustc_errors Make diagnostics clearer for ? operators 2021-09-17 13:13:28 +09:00
rustc_expand Rollup merge of #88996 - Aaron1011:trailing-macro-semi, r=petrochenkov 2021-09-19 17:31:31 +09:00
rustc_feature Rollup merge of #88775 - pnkfelix:revert-anon-union-parsing, r=davidtwco 2021-09-15 14:56:58 -07:00
rustc_fs_util
rustc_graphviz
rustc_hir Auto merge of #88703 - cjgillot:lazymod, r=petrochenkov 2021-09-19 16:13:42 +00:00
rustc_hir_pretty don't convert types into identical types 2021-09-11 10:32:38 +02:00
rustc_incremental Auto merge of #83214 - cjgillot:dep-map, r=michaelwoerister 2021-09-06 23:58:16 +00:00
rustc_index Suggested changes 2021-08-27 16:21:25 -07:00
rustc_infer Auto merge of #89000 - Mark-Simulacrum:no-new-lrc, r=petrochenkov 2021-09-18 20:13:21 +00:00
rustc_interface Auto merge of #88703 - cjgillot:lazymod, r=petrochenkov 2021-09-19 16:13:42 +00:00
rustc_lexer Fix more “a”/“an” typos 2021-08-22 17:27:18 +02:00
rustc_lint Auto merge of #88703 - cjgillot:lazymod, r=petrochenkov 2021-09-19 16:13:42 +00:00
rustc_lint_defs Add reachable_patterns lint to rfc-2008-non_exhaustive 2021-09-14 15:45:13 -04:00
rustc_llvm PassWrapper: these two lines shouldn't have been ifdef'd 2021-09-16 15:04:18 -04:00
rustc_macros Use a separate interner type for UniqueTypeId 2021-09-13 14:42:06 +02:00
rustc_metadata Update odht to 0.2.1 2021-09-17 15:57:57 +02:00
rustc_middle Auto merge of #88575 - eddyb:fn-abi-queries, r=nagisa 2021-09-19 21:39:47 +00:00
rustc_mir_build Add reachable_patterns lint to rfc-2008-non_exhaustive 2021-09-14 15:45:13 -04:00
rustc_mir_dataflow Make rustc_mir_dataflow::framework::graphviz and rustc_mir_transform::MirPass public 2021-09-15 11:41:37 -07:00
rustc_mir_transform Do not collapse goto chains beginning with the start block 2021-09-18 07:28:55 +02:00
rustc_monomorphize Use explicit log level in tracing instrument macro 2021-09-15 19:02:10 +02:00
rustc_parse Rollup merge of #87566 - JohnTitor:find-eqeq-on-assoc-type-bounds, r=estebank 2021-09-17 17:41:14 +02:00
rustc_parse_format
rustc_passes Auto merge of #88703 - cjgillot:lazymod, r=petrochenkov 2021-09-19 16:13:42 +00:00
rustc_plugin_impl Remove Session.used_attrs and move logic to CheckAttrVisitor 2021-08-21 13:27:27 -05:00
rustc_privacy add a CastKind to Node::Cast 2021-09-09 01:32:03 +01:00
rustc_query_impl Auto merge of #88575 - eddyb:fn-abi-queries, r=nagisa 2021-09-19 21:39:47 +00:00
rustc_query_system Auto merge of #82183 - michaelwoerister:lazier-defpathhash-loading2, r=wesleywiser 2021-09-18 14:37:39 +00:00
rustc_resolve Rollup merge of #88966 - tmiasko:block-label-shadowing, r=petrochenkov 2021-09-19 17:31:30 +09:00
rustc_save_analysis Bump stage0 compiler to 1.56 2021-09-08 20:51:05 -04:00
rustc_serialize rustc: Remove local variable IDs from Exports 2021-09-10 23:41:48 +03:00
rustc_session Rollup merge of #88751 - bjorn3:move_filesearch, r=oli-obk 2021-09-17 14:09:47 +09:00
rustc_span Auto merge of #89049 - Aaron1011:caching-sourcemap-assert, r=Mark-Simulacrum 2021-09-19 18:54:31 +00:00
rustc_symbol_mangling Rollup merge of #85534 - csmoe:demagnle-assert, r=michaelwoerister 2021-08-29 16:25:28 +02:00
rustc_target Querify fn_abi_of_{fn_ptr,instance}. 2021-09-18 04:41:33 +03:00
rustc_trait_selection Auto merge of #89000 - Mark-Simulacrum:no-new-lrc, r=petrochenkov 2021-09-18 20:13:21 +00:00
rustc_traits Auto merge of #88371 - Manishearth:rollup-pkkjsme, r=Manishearth 2021-08-27 01:07:17 +00:00
rustc_ty_utils Remove the queries 2021-09-09 05:21:32 +00:00
rustc_type_ir Use index newtyping for TyVid 2021-09-06 22:38:06 -04:00
rustc_typeck Auto merge of #88703 - cjgillot:lazymod, r=petrochenkov 2021-09-19 16:13:42 +00:00