rust/src
bors 3a8108d8e5 Auto merge of #69113 - ecstatic-morse:unified-dataflow-borrowed, r=wesleywiser
Combine `HaveBeenBorrowedLocals` and `IndirectlyMutableLocals` into one dataflow analysis

This PR began as an attempt to port `HaveBeenBorrowedLocals` to the new dataflow framework (see #68241 for prior art). Along the way, I noticed that it could share most of its code with `IndirectlyMutableLocals` and then found a few bugs in the two analyses:
- Neither one marked locals as borrowed after an `Rvalue::AddressOf`.
- `IndirectlyMutableLocals` was missing a minor fix that `HaveBeenBorrowedLocals` got in #61069. This is not a problem today since it is only used during const-checking, where custom drop glue is forbidden. However, this may change some day.

I decided to combine the two analyses so that they wouldn't diverge in the future while ensuring that they remain distinct types (called `MaybeBorrowedLocals` and `MaybeMutBorrowedLocals` to be consistent with the `Maybe{Un,}InitializedPlaces` naming scheme). I fixed the bugs and switched to exhaustive matching where possible to make them less likely in the future. Finally, I added comments explaining some of the finer points of the transfer function for these analyses (see #61069 and #65006).
2020-02-19 04:57:10 +00:00
..
bootstrap configure: set LLVM flags with a value 2020-02-17 11:01:52 -08:00
build_helper
ci Clean out some default-installed directories 2020-02-18 11:34:59 +01:00
doc Auto merge of #67885 - tobithiel:fix_group_lint_allow_override, r=Mark-Simulacrum 2020-02-16 15:28:41 +00:00
etc Rollup merge of #69049 - pthariensflame:improvement/imgbot, r=GuillaumeGomez 2020-02-13 02:52:53 +01:00
liballoc Lighten tests, in particular for Miri, yet test and explain more 2020-02-16 22:35:44 +01:00
libarena Remove SyncTypedArena, SyncDroplessArena and in_arena 2020-01-11 07:56:45 +01:00
libcore Auto merge of #69241 - shahn:checked_add_revert, r=Mark-Simulacrum,lqd 2020-02-19 01:36:31 +00:00
libfmt_macros
libgraphviz Add option to dot::render for monospace font 2020-02-09 10:33:06 -08:00
libpanic_abort
libpanic_unwind Drop cfg(bootstrap) code 2020-01-31 12:31:09 -05:00
libproc_macro
libprofiler_builtins
librustc Rollup merge of #69146 - matthewjasper:literal-qualif, r=eddyb 2020-02-18 22:16:23 +01:00
librustc_apfloat
librustc_ast_lowering Rollup merge of #69194 - Centril:assoc-extern-fuse, r=petrochenkov 2020-02-18 22:16:26 +01:00
librustc_ast_passes Rollup merge of #69194 - Centril:assoc-extern-fuse, r=petrochenkov 2020-02-18 22:16:26 +01:00
librustc_ast_pretty Rollup merge of #69194 - Centril:assoc-extern-fuse, r=petrochenkov 2020-02-18 22:16:26 +01:00
librustc_attr Auto merge of #68491 - pnkfelix:hide-niches-under-unsafe-cell, r=oli 2020-02-11 20:48:27 +00:00
librustc_builtin_macros Rollup merge of #69194 - Centril:assoc-extern-fuse, r=petrochenkov 2020-02-18 22:16:26 +01:00
librustc_codegen_llvm Change const_field and const_caller_location to return ConstValue instead of Const as the type 2020-02-15 12:57:46 +13:00
librustc_codegen_ssa Code review changes. 2020-02-16 09:59:01 +13:00
librustc_codegen_utils Remove unused feature gates from cg_ssa and cg_utils 2020-02-04 19:18:10 +01:00
librustc_data_structures Rollup merge of #68475 - Aaron1011:fix/forest-caching, r=nikomatsakis 2020-02-15 07:17:45 +09:00
librustc_driver Rollup merge of #69059 - ljedrz:unused_stuff, r=Dylan-DPC 2020-02-12 14:21:14 +01:00
librustc_error_codes Rollup merge of #69233 - GuillaumeGomez:cleanup-e0310, r=Dylan-DPC 2020-02-18 16:07:29 +01:00
librustc_errors Auto merge of #69062 - Dylan-DPC:rollup-7wpjpqu, r=Dylan-DPC 2020-02-11 17:45:49 +00:00
librustc_expand Rollup merge of #69211 - petrochenkov:prevtok, r=Centril 2020-02-18 22:16:28 +01:00
librustc_feature Add #[repr(no_niche)]. 2020-02-10 14:44:12 -05:00
librustc_fs_util
librustc_hir Rename FunctionRetTy to FnRetTy 2020-02-17 11:24:29 +09:00
librustc_incremental Rollup merge of #66498 - bjorn3:less_feature_flags, r=Dylan-DPC 2020-02-11 16:36:54 +01:00
librustc_index index ReEmpty by universe 2020-02-06 15:58:00 -05:00
librustc_infer Rename FunctionRetTy to FnRetTy 2020-02-17 11:24:29 +09:00
librustc_interface Rollup merge of #69194 - Centril:assoc-extern-fuse, r=petrochenkov 2020-02-18 22:16:26 +01:00
librustc_lexer Spelling error "represening" to "representing" 2020-02-13 11:14:21 -05:00
librustc_lint Rollup merge of #69194 - Centril:assoc-extern-fuse, r=petrochenkov 2020-02-18 22:16:26 +01:00
librustc_llvm Better support for cross compilation on Windows. 2020-01-14 12:15:13 -08:00
librustc_macros remove some dependencies on itertools 2020-02-11 19:28:38 +01:00
librustc_metadata Record proc macro harness order for use during metadata deserialization 2020-02-15 15:48:36 -05:00
librustc_mir Auto merge of #69113 - ecstatic-morse:unified-dataflow-borrowed, r=wesleywiser 2020-02-19 04:57:10 +00:00
librustc_mir_build Rollup merge of #69181 - skinny121:const-eval-return, r=oli-obk 2020-02-18 16:07:22 +01:00
librustc_parse Rollup merge of #69236 - Centril:mut-parens-at-recovery, r=estebank 2020-02-18 22:16:31 +01:00
librustc_passes Other crates. 2020-02-16 11:59:35 +01:00
librustc_plugin_impl remove rustc_error_codes deps except in rustc_driver 2020-01-18 21:53:53 +01:00
librustc_privacy Move more into decorate functions. 2020-02-11 19:50:26 +10:00
librustc_resolve Rollup merge of #69194 - Centril:assoc-extern-fuse, r=petrochenkov 2020-02-18 22:16:26 +01:00
librustc_save_analysis Rollup merge of #69194 - Centril:assoc-extern-fuse, r=petrochenkov 2020-02-18 22:16:26 +01:00
librustc_session Auto merge of #67885 - tobithiel:fix_group_lint_allow_override, r=Mark-Simulacrum 2020-02-16 15:28:41 +00:00
librustc_span parser: macro_rules is a weak keyword 2020-02-15 15:49:17 +03:00
librustc_target Properly use the darwin archive format on Apple targets 2020-02-12 12:06:14 +01:00
librustc_traits Make librustc_traits compile. 2020-02-16 11:57:52 +01:00
librustc_ty Other crates. 2020-02-16 11:59:35 +01:00
librustc_typeck Rollup merge of #69217 - LeSeulArtichaut:remove-lint-impl-op, r=estebank 2020-02-18 22:16:29 +01:00
librustdoc Rollup merge of #69181 - skinny121:const-eval-return, r=oli-obk 2020-02-18 16:07:22 +01:00
libserialize Rollup merge of #69050 - nnethercote:micro-optimize-leb128, r=michaelwoerister 2020-02-13 02:52:54 +01:00
libstd Rollup merge of #68767 - kubo39:patch-macos, r=shepmaster 2020-02-18 20:09:04 +09:00
libsyntax Rollup merge of #69194 - Centril:assoc-extern-fuse, r=petrochenkov 2020-02-18 22:16:26 +01:00
libterm parse extended terminfo format 2020-01-11 14:27:52 -05:00
libtest Respect --nocapture in panic=abort test mode 2020-02-06 14:43:53 -08:00
libunwind
llvm-project@d7cdb43592 Fix LLVM assertion failure in MSP430 interrupt generation. 2020-01-27 10:42:48 -05:00
rtstartup
rustc
rustllvm Auto merge of #69144 - Dylan-DPC:rollup-apt6zjj, r=Dylan-DPC 2020-02-13 22:20:58 +00:00
stdarch@dea57529b3 stdarch: update submodule. 2020-02-01 22:04:18 -05:00
test Auto merge of #69113 - ecstatic-morse:unified-dataflow-borrowed, r=wesleywiser 2020-02-19 04:57:10 +00:00
tools Auto merge of #69262 - Dylan-DPC:rollup-m6dt9cn, r=Dylan-DPC 2020-02-18 17:51:29 +00:00
README.md
stage0.txt Bump rustfmt and stage0 2020-01-31 12:31:09 -05:00

This directory contains the source code of the rust project, including:

  • rustc and its tests
  • libstd
  • Various submodules for tools, like rustdoc, rls, etc.

For more information on how various parts of the compiler work, see the rustc guide.