rust/src
Niko Matsakis 03e7b96281 revamp how we handle elision in async fn
We now always make fresh lifetimne parameters for all elided
lifetimes, whether they are in the inputs or outputs. But then
we generate `'_` in the case of elided lifetimes from the outputs.

Example:

```rust
async fn foo<'a>(x: &'a u32) -> &u32 { .. }
```

becomes

```rust
type Foo<'a, 'b> = impl Future<Output = &'b u32>;
fn foo<'a>(x: &'a u32) -> Foo<'a, '_>
```
2019-08-12 17:18:26 -04:00
..
bootstrap Auto merge of #63199 - ehuss:fix-rustc-guide-toolstate, r=kennytm 2019-08-04 03:36:10 +00:00
build_helper build_helper: rename (try_)run_silent -> (try_)run 2019-08-01 20:13:47 +02:00
ci ci: move .azure-pipelines to src/ci/azure-pipelines 2019-08-03 18:21:38 +02:00
doc redox: convert to target_family unix 2019-08-06 16:18:23 -06:00
etc Check for lldb existences 2019-07-14 04:19:39 +00:00
grammar
liballoc Add implementations for converting boxed slices into boxed arrays 2019-08-05 10:26:53 -04:00
libarena Deny unused_lifetimes through rustbuild 2019-07-28 18:47:02 +03:00
libcore Rollup merge of #63034 - tmandry:reduce-generator-size-regressions, r=cramertj 2019-08-07 01:39:25 +02:00
libfmt_macros Rollup merge of #63121 - estebank:formatting-pos, r=alexcrichton 2019-08-03 00:09:06 +02:00
libgraphviz Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
libpanic_abort redox: convert to target_family unix 2019-08-06 16:18:23 -06:00
libpanic_unwind libpanic_unwind: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
libproc_macro Deny unused_lifetimes through rustbuild 2019-07-28 18:47:02 +03:00
libprofiler_builtins Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc revamp how we handle elision in async fn 2019-08-12 17:18:26 -04:00
librustc_apfloat Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_asan Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_ast_borrowck Do not downgrade NLL errors for bind_by_move_pattern_guards when AST says it is OK. 2019-07-30 06:43:06 +02:00
librustc_codegen_llvm Auto merge of #61919 - alexreg:fix-atb-1, r=nikomatsakis 2019-08-07 09:33:34 +00:00
librustc_codegen_ssa Auto merge of #63152 - estebank:big-array, r=oli-obk 2019-08-07 04:28:08 +00:00
librustc_codegen_utils Clear the ParamEnv where its information is irrelevant 2019-08-05 17:48:05 +02:00
librustc_data_structures Remove some more cfg(test)s 2019-08-02 02:40:01 +03:00
librustc_driver Deny unused_lifetimes through rustbuild 2019-07-28 18:47:02 +03:00
librustc_errors Auto merge of #63090 - Centril:rollup-xnjwm2h, r=Centril 2019-07-28 20:22:42 +00:00
librustc_fs_util Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_incremental Rename ItemImplKind::Type to ItemImplKind::TyAlias 2019-08-04 20:16:41 +01:00
librustc_interface Auto merge of #62766 - alexcrichton:stabilize-pipelined-compilation, r=oli-obk 2019-07-30 08:39:29 +00:00
librustc_lexer librustc_lexer: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
librustc_lint Rollup merge of #63163 - bravomikekilo:master, r=cramertj 2019-08-07 01:39:28 +02:00
librustc_llvm Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_lsan Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_macros Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_metadata Rename ItemImplKind::Type to ItemImplKind::TyAlias 2019-08-04 20:16:41 +01:00
librustc_mir Auto merge of #63152 - estebank:big-array, r=oli-obk 2019-08-07 04:28:08 +00:00
librustc_msan Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_passes Rename ItemKind::Ty to ItemKind::TyAlias 2019-08-04 20:13:37 +01:00
librustc_plugin Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_privacy Got rid of concept of 'principal trait' in more places in codebase. 2019-08-05 15:16:27 +01:00
librustc_resolve Rollup merge of #63286 - Mark-Simulacrum:resolve-no-cb, r=petrochenkov 2019-08-06 15:36:32 +02:00
librustc_save_analysis Rename ItemImplKind::Type to ItemImplKind::TyAlias 2019-08-04 20:16:41 +01:00
librustc_target Auto merge of #60547 - redox-os:redox-unix, r=alexcrichton 2019-08-07 16:56:46 +00:00
librustc_traits Fiddle param env through to try_eval_bits in most places 2019-08-05 17:48:05 +02:00
librustc_tsan Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_typeck Auto merge of #61919 - alexreg:fix-atb-1, r=nikomatsakis 2019-08-07 09:33:34 +00:00
librustdoc Rollup merge of #63286 - Mark-Simulacrum:resolve-no-cb, r=petrochenkov 2019-08-06 15:36:32 +02:00
libserialize libserialize: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
libstd Fix cfg_if usage 2019-08-06 19:32:39 -06:00
libsyntax Rollup merge of #63285 - Mark-Simulacrum:rm-await-origin, r=Centril 2019-08-06 08:17:44 +02:00
libsyntax_ext Drop span argument from mk_list_item 2019-08-05 08:45:00 -04:00
libsyntax_pos Move special treatment of derive(Copy, PartialEq, Eq) from expansion infrastructure to elsewhere 2019-08-03 23:57:35 +03:00
libterm libterm: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
libtest Remove some more cfg(test)s 2019-08-02 02:40:01 +03:00
libunwind redox: convert to target_family unix 2019-08-06 16:18:23 -06:00
llvm-emscripten@7f23313edf
llvm-project@9b64ca5b7e std: Use native #[thread_local] TLS on wasm 2019-07-25 11:17:07 -07:00
rtstartup
rustc
rustllvm Don't link mcjit/interpreter LLVM components 2019-07-20 17:17:48 +02:00
stdarch@4791ba85e7 Update stdarch submodule 2019-07-23 17:19:32 +02:00
test revamp how we handle elision in async fn 2019-08-12 17:18:26 -04:00
tools Auto merge of #63282 - Xanewok:update-rls, r=nikomatsakis 2019-08-08 05:28:07 +00:00
.gitignore
README.md doc: the content has since been moved to the guide 2019-08-06 03:03:45 +02:00
stage0.txt Update stage0.txt 2019-07-23 11:07:06 -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 this README: https://github.com/rust-lang/rust/tree/master/src/librustc/infer/lexical_region_resolve.