rust/compiler
bors 80420a693f Auto merge of #124747 - MasterAwesome:master, r=davidtwco
Support Result<T, E> across FFI when niche optimization can be used (v2)

This PR is identical to #122253, which was approved and merged but then removed from master by a force-push due to a [CI bug](https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/ci.20broken.3F).

r? ghost

Original PR description:

---

Allow allow enums like `Result<T, E>` to be used across FFI if the T/E can be niche optimized and the non-niche-optimized type is FFI safe.

Implementation of https://github.com/rust-lang/rfcs/pull/3391
Tracking issue: https://github.com/rust-lang/rust/issues/110503

Additional ABI and codegen tests were added in https://github.com/rust-lang/rust/pull/115372
2024-05-06 00:55:49 +00:00
..
rustc Change SIGPIPE ui from #[unix_sigpipe = "..."] to -Zon-broken-pipe=... 2024-05-02 19:48:29 +02:00
rustc_abi Rollup merge of #124555 - Zalathar:init-coverage, r=nnethercote 2024-05-03 20:33:46 +02:00
rustc_arena
rustc_ast Various improvements to entrypoint code 2024-05-04 14:48:42 +02:00
rustc_ast_ir Remove extern crate rustc_macros from numerous crates. 2024-04-29 10:21:54 +10:00
rustc_ast_lowering Auto merge of #124401 - oli-obk:some_hir_cleanups, r=cjgillot 2024-05-04 00:32:27 +00:00
rustc_ast_passes Stabilize exclusive_range 2024-05-02 19:42:31 -04:00
rustc_ast_pretty AST pretty: Use builtin_syntax for type ascription 2024-05-03 01:10:22 +02:00
rustc_attr Remove extern crate rustc_macros from numerous crates. 2024-04-29 10:21:54 +10:00
rustc_baked_icu_data
rustc_borrowck Step bootstrap cfgs 2024-05-01 22:19:11 -04:00
rustc_builtin_macros Various improvements to entrypoint code 2024-05-04 14:48:42 +02:00
rustc_codegen_cranelift debuginfo: Stabilize -Z debug-macros, -Z collapse-macro-debuginfo and #[collapse_debuginfo] 2024-04-25 22:14:47 +03:00
rustc_codegen_gcc Auto merge of #123441 - saethlin:fixed-len-file-names, r=oli-obk 2024-05-03 17:41:48 +00:00
rustc_codegen_llvm Auto merge of #124675 - matthiaskrgr:rollup-x6n79ua, r=matthiaskrgr 2024-05-03 19:46:04 +00:00
rustc_codegen_ssa Auto merge of #124606 - scottmcm:less-expect, r=cjgillot 2024-05-05 01:06:22 +00:00
rustc_const_eval Rollup merge of #124720 - RalfJung:interpret-drop, r=compiler-errors 2024-05-04 22:27:33 +02:00
rustc_data_structures Auto merge of #123441 - saethlin:fixed-len-file-names, r=oli-obk 2024-05-03 17:41:48 +00:00
rustc_driver
rustc_driver_impl compiler: upgrade time from 0.3.34 to 0.3.36 2024-05-04 21:18:41 -07:00
rustc_error_codes Stabilize exclusive_range 2024-05-02 19:42:31 -04:00
rustc_error_messages Rename SubdiagnosticMessage as SubdiagMessage. 2024-03-05 12:14:49 +11:00
rustc_errors Remove some low-value use renamings. 2024-05-03 16:03:12 +10:00
rustc_expand Refactor Frame. 2024-05-03 09:06:26 +10:00
rustc_feature Auto merge of #124747 - MasterAwesome:master, r=davidtwco 2024-05-06 00:55:49 +00:00
rustc_fluent_macro Rename SubdiagnosticMessage as SubdiagMessage. 2024-03-05 12:14:49 +11:00
rustc_fs_util Stabilize std::path::absolute 2024-04-24 14:35:02 +00:00
rustc_graphviz
rustc_hir Auto merge of #124401 - oli-obk:some_hir_cleanups, r=cjgillot 2024-05-04 00:32:27 +00:00
rustc_hir_analysis Rollup merge of #124687 - fee1-dead-contrib:private-clauses, r=compiler-errors 2024-05-03 23:34:25 -04:00
rustc_hir_pretty put hir::AnonConst on the hir arena 2024-04-26 12:57:02 +00:00
rustc_hir_typeck Auto merge of #123125 - gurry:122561-bad-note-non-zero-loop-iters-2, r=estebank 2024-05-05 12:51:37 +00:00
rustc_incremental Auto merge of #123441 - saethlin:fixed-len-file-names, r=oli-obk 2024-05-03 17:41:48 +00:00
rustc_index Simplify static_assert_sizes. 2024-04-18 15:36:25 +10:00
rustc_index_macros rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
rustc_infer Use ObligationCtxt in favor of TraitEngine in many places 2024-05-02 22:03:01 -04:00
rustc_interface Rollup merge of #124648 - nnethercote:trim-crate-graph, r=jackh726 2024-05-03 23:34:22 -04:00
rustc_lexer Improved the compiler code with clippy 2024-04-24 09:41:44 +02:00
rustc_lint Auto merge of #124747 - MasterAwesome:master, r=davidtwco 2024-05-06 00:55:49 +00:00
rustc_lint_defs Stabilize exclusive_range 2024-05-02 19:42:31 -04:00
rustc_llvm Rollup merge of #124287 - 41Leahcim:master, r=fmease 2024-04-25 18:57:56 +02:00
rustc_log Construct SourceMap at the same time as SessionGlobals. 2024-04-16 13:02:53 +10:00
rustc_macros Rollup merge of #124287 - 41Leahcim:master, r=fmease 2024-04-25 18:57:56 +02:00
rustc_metadata Rollup merge of #124582 - RalfJung:std-not-found, r=Nilstrieb 2024-05-02 15:11:22 +02:00
rustc_middle Rollup merge of #124418 - compiler-errors:better-cause, r=lcnr 2024-05-03 23:34:21 -04:00
rustc_mir_build Auto merge of #124401 - oli-obk:some_hir_cleanups, r=cjgillot 2024-05-04 00:32:27 +00:00
rustc_mir_dataflow Inline & delete Ty::new_unit, since it's just a field access 2024-05-02 17:49:23 +02:00
rustc_mir_transform coverage: Rename BcbBranchPair to mappings::BranchPair 2024-05-04 11:26:05 +10:00
rustc_monomorphize Remove extern crate rustc_middle from numerous crates. 2024-04-29 14:50:45 +10:00
rustc_next_trait_solver Auto merge of #122077 - oli-obk:eager_opaque_checks4, r=lcnr 2024-04-08 23:01:50 +00:00
rustc_parse Add StaticForeignItem and use it on ForeignItemKind 2024-04-29 13:15:51 -03:00
rustc_parse_format Simplify static_assert_sizes. 2024-04-18 15:36:25 +10:00
rustc_passes Various improvements to entrypoint code 2024-05-04 14:48:42 +02:00
rustc_pattern_analysis Stabilize exclusive_range 2024-05-02 19:42:31 -04:00
rustc_privacy Remove some unneeded Cargo.toml dependencies. 2024-05-03 15:33:52 +10:00
rustc_query_impl Stabilize generic NonZero. 2024-04-22 18:48:47 +02:00
rustc_query_system Remove some unneeded Cargo.toml dependencies. 2024-05-03 15:33:52 +10:00
rustc_resolve Rollup merge of #124293 - oli-obk:miri_intrinsic_fallback_body, r=RalfJung 2024-05-04 12:37:22 +02:00
rustc_sanitizers Stabilize the size of incr comp object file names 2024-04-22 10:50:07 -04:00
rustc_serialize Step bootstrap cfgs 2024-05-01 22:19:11 -04:00
rustc_session Rollup merge of #124480 - Enselic:on-broken-pipe, r=jieyouxu 2024-05-03 23:34:22 -04:00
rustc_smir Rollup merge of #122598 - Nadrieril:full-derefpats, r=matthewjasper 2024-04-23 17:25:15 +02:00
rustc_span Auto merge of #124747 - MasterAwesome:master, r=davidtwco 2024-05-06 00:55:49 +00:00
rustc_symbol_mangling Auto merge of #123441 - saethlin:fixed-len-file-names, r=oli-obk 2024-05-03 17:41:48 +00:00
rustc_target Rollup merge of #124677 - djkoloski:set_fuchsia_frame_pointer, r=tmandry 2024-05-04 12:37:22 +02:00
rustc_trait_selection Rollup merge of #124718 - compiler-errors:record-impl-args, r=lcnr 2024-05-04 22:27:33 +02:00
rustc_traits Use ObligationCtxt in favor of TraitEngine in many places 2024-05-02 22:03:01 -04:00
rustc_transmute Align: add bytes_usize and bits_usize 2024-05-01 15:57:33 +02:00
rustc_ty_utils Inline & delete Ty::new_unit, since it's just a field access 2024-05-02 17:49:23 +02:00
rustc_type_ir Remove extern crate bitflags from a couple of crates. 2024-04-29 18:47:54 +10:00
stable_mir Remove extern crate scoped_tls from stable_mir. 2024-04-30 16:47:49 +10:00