rust/src
Mazdak Farrokhzad 18081890ea
Rollup merge of #62388 - rust-lang:fix-loop-break-mir-generation, r=eddyb
Break out of the correct number of scopes in loops

We were incorrectly breaking out of one too many drop scopes when
generating MIR for loops and breakable blocks, resulting in use after
free and associated borrow checker warnings.

This wasn't noticed because the scope that we're breaking out of twice
is only used for temporaries that are created for adjustments applied to
the loop. Since loops generally propagate coercions to the `break`
expressions, the only case we see this is when the type of the loop is a
smart pointer to a trait object.

Closes #62312
2019-07-05 13:53:13 +02:00
..
bootstrap Switch master to 1.38 2019-07-04 11:26:57 -04:00
build_helper
ci
doc
etc Rollup merge of #62337 - Mark-Simulacrum:fix-cpu-usage-script, r=alexcrichton 2019-07-04 01:38:59 +02:00
grammar
liballoc Rollup merge of #62371 - Nemo157:fix-62288, r=Centril 2019-07-05 13:53:10 +02:00
libarena
libcore Rollup merge of #62323 - Centril:clarify-read-unaligned, r=RalfJung 2019-07-05 13:53:07 +02:00
libfmt_macros
libgraphviz
libpanic_abort
libpanic_unwind
libproc_macro
libprofiler_builtins
librustc Rollup merge of #62169 - Zoxc:store-query-results, r=eddyb 2019-07-05 13:53:02 +02:00
librustc_allocator
librustc_apfloat
librustc_asan
librustc_borrowck Auto merge of #62099 - Mark-Simulacrum:syntax-print-clean-2, r=eddyb 2019-07-05 06:55:48 +00:00
librustc_codegen_llvm Rollup merge of #62150 - alex:mem-uninit-refactor, r=RalfJung 2019-07-05 13:53:00 +02:00
librustc_codegen_ssa
librustc_codegen_utils
librustc_cratesio_shim
librustc_data_structures Switch master to 1.38 2019-07-04 11:26:57 -04:00
librustc_driver Auto merge of #62099 - Mark-Simulacrum:syntax-print-clean-2, r=eddyb 2019-07-05 06:55:48 +00:00
librustc_errors
librustc_fs_util
librustc_incremental
librustc_interface
librustc_lint
librustc_llvm
librustc_lsan
librustc_macros
librustc_metadata
librustc_mir Rollup merge of #62388 - rust-lang:fix-loop-break-mir-generation, r=eddyb 2019-07-05 13:53:13 +02:00
librustc_msan
librustc_passes
librustc_plugin
librustc_privacy
librustc_resolve Switch master to 1.38 2019-07-04 11:26:57 -04:00
librustc_save_analysis
librustc_target
librustc_traits
librustc_tsan
librustc_typeck Rollup merge of #62383 - Aaron1011:fix/async-error-span, r=varkor 2019-07-05 13:53:11 +02:00
librustdoc Rollup merge of #62238 - GuillaumeGomez:fix-code-block-information-icon-pos, r=QuietMisdreavus 2019-07-05 13:53:04 +02:00
libserialize
libstd Rollup merge of #62123 - jeremystucki:needless_lifetimes_std, r=alexcrichton 2019-07-05 13:52:58 +02:00
libsyntax Rollup merge of #62292 - Centril:split-async-closures, r=cramertj 2019-07-05 13:53:06 +02:00
libsyntax_ext
libsyntax_pos
libterm Permit use of mem::uninitialized via allow(deprecated) 2019-07-04 21:01:35 -04:00
libtest
libunwind Switch master to 1.38 2019-07-04 11:26:57 -04:00
llvm-emscripten@7f23313edf
llvm-project@1bbe0b3e1d
rtstartup
rustc
rustllvm
stdsimd@4bf456c35e
test Rollup merge of #62388 - rust-lang:fix-loop-break-mir-generation, r=eddyb 2019-07-05 13:53:13 +02:00
tools Update the rust-installer submodule 2019-07-04 11:59:09 -07:00
.gitignore
README.md
stage0.txt Switch master to 1.38 2019-07-04 11:26:57 -04: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.

There is also useful content in the following READMEs, which are gradually being moved over to the guide: