rust/compiler
bors 6153d3cbe6 Auto merge of #101212 - eholk:dyn-star, r=compiler-errors
Initial implementation of dyn*

This PR adds extremely basic and incomplete support for [dyn*](https://smallcultfollowing.com/babysteps//blog/2022/03/29/dyn-can-we-make-dyn-sized/). The goal is to get something in tree behind a flag to make collaboration easier, and also to make sure the implementation so far is not unreasonable. This PR does quite a few things:

* Introduce `dyn_star` feature flag
* Adds parsing for `dyn* Trait` types
* Defines `dyn* Trait` as a sized type
* Adds support for explicit casts, like `42usize as dyn* Debug`
  * Including const evaluation of such casts
* Adds codegen for drop glue so things are cleaned up properly when a `dyn* Trait` object goes out of scope
* Adds codegen for method calls, at least for methods that take `&self`

Quite a bit is still missing, but this gives us a starting point. Note that this is never intended to become stable surface syntax for Rust, but rather `dyn*` is planned to be used as an implementation detail for async functions in dyn traits.

Joint work with `@nikomatsakis` and `@compiler-errors.`

r? `@bjorn3`
2022-09-14 18:10:51 +00:00
..
rustc Don't rerun the build script for the compiler each time on linux 2022-07-10 23:57:25 -05:00
rustc_apfloat Add diagnostic translation lints to crates that don't emit them 2022-08-18 19:29:02 +01:00
rustc_arena Make use of [wrapping_]byte_{add,sub} 2022-08-23 19:32:37 +04:00
rustc_ast Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_ast_lowering Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_ast_passes Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_ast_pretty Auto merge of #101241 - camsteffen:refactor-binding-annotations, r=cjgillot 2022-09-06 03:16:29 +00:00
rustc_attr Also replace the placeholder for the stable_features lint 2022-09-14 03:28:54 +02:00
rustc_borrowck Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_builtin_macros Rename AttrAnnotatedToken{Stream,Tree}. 2022-09-09 12:45:26 +10:00
rustc_codegen_cranelift Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_codegen_gcc Remove dead broken code from const zst handling in backends 2022-09-06 14:09:49 +00:00
rustc_codegen_llvm Auto merge of #99443 - jam1garner:mips-virt-feature, r=nagisa 2022-09-14 08:21:25 +00:00
rustc_codegen_ssa Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_const_eval Address code review comments 2022-09-13 14:50:12 -07:00
rustc_data_structures Auto merge of #99334 - NiklasJonsson:84447/error-privacy, r=oli-obk 2022-09-12 15:57:37 +00:00
rustc_driver Fix ICE report flags display. 2022-09-08 16:08:53 -07:00
rustc_error_codes Stabilize #![feature(label_break_value)] 2022-08-23 21:14:12 -05:00
rustc_error_messages Better errors for implied static bound 2022-09-13 20:18:04 -04:00
rustc_errors Rollup merge of #101266 - LuisCardosoOliveira:translation-rustcsession-pt3, r=davidtwco 2022-09-13 22:25:34 +02:00
rustc_expand Rollup merge of #101602 - nnethercote:AttrTokenStream, r=petrochenkov 2022-09-13 16:51:31 +05:30
rustc_feature Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_fs_util Add diagnostic translation lints to crates that don't emit them 2022-08-18 19:29:02 +01:00
rustc_graphviz Add diagnostic translation lints to crates that don't emit them 2022-08-18 19:29:02 +01:00
rustc_hir Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_hir_pretty Handle generic parameters. 2022-09-09 01:31:46 +00:00
rustc_incremental Remove trait_of_item query. 2022-08-01 21:39:26 +02:00
rustc_index Add diagnostic translation lints to crates that don't emit them 2022-08-18 19:29:02 +01:00
rustc_infer Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_interface change rlib format to discern native dependencies 2022-09-12 16:45:03 +03:00
rustc_lexer remove unnecessary PartialOrd and Ord 2022-09-08 06:15:33 +09:00
rustc_lint Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_lint_defs Auto merge of #96709 - jackh726:gats-stabilization, r=compiler-errors 2022-09-13 09:39:41 +00:00
rustc_llvm Introduce a fallible variant of LLVMConstIntGetZExtValue 2022-09-09 15:54:14 +02:00
rustc_log Add diagnostic translation lints to crates that don't emit them 2022-08-18 19:29:02 +01:00
rustc_macros Move TRY_LOAD_FROM_DISK out of rustc_queries to rustc_query_impl 2022-09-09 20:21:59 -05:00
rustc_metadata Auto merge of #96709 - jackh726:gats-stabilization, r=compiler-errors 2022-09-13 09:39:41 +00:00
rustc_middle Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_mir_build Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_mir_dataflow Generalize the Assume intrinsic statement to a general Intrinsic statement 2022-09-06 14:18:32 +00:00
rustc_mir_transform minor fixups as per PR feedback 2022-09-11 14:04:17 +08:00
rustc_monomorphize Address code review comments 2022-09-13 14:50:12 -07:00
rustc_parse Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_parse_format Separate CountIsStar from CountIsParam in rustc_parse_format. 2022-08-25 14:49:09 +02:00
rustc_passes Rollup merge of #101772 - est31:replace_placeholder_diagnostics, r=jackh726 2022-09-14 19:26:21 +05:30
rustc_plugin_impl Migrate rustc_plugin_impl to SessionDiagnostic 2022-08-22 16:35:05 +01:00
rustc_privacy Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_query_impl Auto merge of #101307 - jyn514:simplify-storage, r=cjgillot 2022-09-14 02:39:51 +00:00
rustc_query_system Remove unnecessary TRY_LOAD_FROM_DISK constant 2022-09-09 20:24:02 -05:00
rustc_resolve Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_save_analysis Remove path_span argument to the visit_path_segment methods. 2022-09-12 13:24:25 +10:00
rustc_serialize Replace rustc_data_structures::thin_vec::ThinVec with thin_vec::ThinVec. 2022-08-29 15:42:13 +10:00
rustc_session Rollup merge of #101266 - LuisCardosoOliveira:translation-rustcsession-pt3, r=davidtwco 2022-09-13 22:25:34 +02:00
rustc_smir Only keep one version of ImplicitSelfKind. 2022-09-13 19:18:23 +02:00
rustc_span Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_symbol_mangling Address code review comments 2022-09-13 14:50:12 -07:00
rustc_target Use RelocModel::Pic for UEFI targets 2022-09-09 15:26:19 -04:00
rustc_trait_selection Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_traits Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00
rustc_transmute Auto merge of #100726 - jswrenn:transmute, r=oli-obk 2022-09-04 07:55:44 +00:00
rustc_ty_utils Plumb dyn trait representation through ty::Dynamic 2022-09-12 16:55:55 -07:00
rustc_type_ir Address code review comments 2022-09-13 14:50:12 -07:00
rustc_typeck Auto merge of #101212 - eholk:dyn-star, r=compiler-errors 2022-09-14 18:10:51 +00:00