rust/src
Mazdak Farrokhzad 50d76d6471
Rollup merge of #68114 - ecstatic-morse:fix-feature-gating, r=Centril
Don't require `allow_internal_unstable` unless `staged_api` is enabled.

#63770 changed `qualify_min_const_fn` to require `allow_internal_unstable` for *all* crates that used an unstable feature, regardless of whether `staged_api` was enabled or the `fn` that used that feature was stably const. In practice, this meant that every crate in the ecosystem that wanted to use nightly features added `#![feature(const_fn)]`, which skips `qualify_min_const_fn` entirely.

After this PR, crates that do not have `#![feature(staged_api)]` will only need to enable the feature they are interested in. For example, `#![feature(const_if_match)]` will be enough to enable `if` and `match` in constants. Crates with `staged_api` (e.g., `libstd`) require `#[allow_internal_unstable]` to be added to a function if it uses nightly features unless that function is also marked `#[rustc_const_unstable]`. This prevents proliferation of `#[allow_internal_unstable]` into functions that are not callable in a `const` context on stable.

r? @oli-obk (author of #63770)
cc @Centril
2020-01-11 12:36:14 +01:00
..
bootstrap Rollup merge of #68074 - matthew-healy:skip-llvm-rebuild-option, r=Centril 2020-01-11 04:02:25 +01:00
build_helper Remove sanitizer runtime crates 2020-01-09 07:54:02 +01:00
ci ci: another take at fixing toolstate 2020-01-09 09:49:25 +01:00
doc Document sanitizers in unstable-book 2020-01-09 09:33:49 +01:00
etc Auto merge of #67334 - estebank:ignore-triple, r=nikomatsakis 2019-12-28 23:02:09 +00:00
liballoc Apply suggestions from code review 2020-01-09 12:03:49 +01:00
libarena Format the world 2019-12-22 17:42:47 -05:00
libcore Rollup merge of #68114 - ecstatic-morse:fix-feature-gating, r=Centril 2020-01-11 12:36:14 +01:00
libfmt_macros Rename syntax_pos to rustc_span in source code 2020-01-01 09:15:18 +03:00
libgraphviz Format the world 2019-12-22 17:42:47 -05:00
libpanic_abort Format the world 2019-12-22 17:42:47 -05:00
libpanic_unwind make use of pointer::is_null 2020-01-10 12:52:00 +00:00
libproc_macro Remove unnecessary const_fn feature gates 2020-01-10 18:51:12 -08:00
libprofiler_builtins Format the world 2019-12-22 17:42:47 -05:00
librustc Rollup merge of #68114 - ecstatic-morse:fix-feature-gating, r=Centril 2020-01-11 12:36:14 +01:00
librustc_apfloat Format the world 2019-12-22 17:42:47 -05:00
librustc_ast_lowering Rollup merge of #68072 - JohnTitor:fix-macro-ice, r=petrochenkov 2020-01-11 12:36:12 +01:00
librustc_ast_passes feature_gate: Remove GateStrength 2020-01-11 11:55:09 +03:00
librustc_builtin_macros Rollup merge of #68084 - estebank:ice-68000, r=varkor 2020-01-11 04:02:28 +01:00
librustc_codegen_llvm Rollup merge of #67889 - Zoxc:parallel-cgus, r=michaelwoerister 2020-01-11 12:36:06 +01:00
librustc_codegen_ssa Rollup merge of #67889 - Zoxc:parallel-cgus, r=michaelwoerister 2020-01-11 12:36:06 +01:00
librustc_codegen_utils Remove rustc_hir reexports in rustc::hir. 2020-01-05 12:49:22 +01:00
librustc_data_structures Rollup merge of #68043 - Zoxc:missing-timers, r=wesleywiser 2020-01-11 04:02:24 +01:00
librustc_driver Rollup merge of #68043 - Zoxc:missing-timers, r=wesleywiser 2020-01-11 04:02:24 +01:00
librustc_error_codes Rollup merge of #68070 - GuillaumeGomez:clean-up-e0185, r=Dylan-DPC 2020-01-11 12:36:10 +01:00
librustc_errors Fix invalid bounding box 2020-01-10 11:03:26 -08:00
librustc_expand Rollup merge of #68084 - estebank:ice-68000, r=varkor 2020-01-11 04:02:28 +01:00
librustc_feature Auto merge of #65241 - tmiasko:no-std-san, r=alexcrichton 2020-01-10 23:26:21 +00:00
librustc_fs_util Format src/librustc_fs_util. 2019-12-21 20:23:39 -05:00
librustc_hir Rollup merge of #68114 - ecstatic-morse:fix-feature-gating, r=Centril 2020-01-11 12:36:14 +01:00
librustc_incremental Label unmarked time 2020-01-09 22:38:40 +01:00
librustc_index Improve hygiene of newtype_index 2020-01-06 20:43:10 +00:00
librustc_interface Rollup merge of #68043 - Zoxc:missing-timers, r=wesleywiser 2020-01-11 04:02:24 +01:00
librustc_lexer Format the world 2019-12-22 17:42:47 -05:00
librustc_lint prepare moving HardwiredLints to rustc_session 2020-01-11 03:26:16 +01:00
librustc_llvm Format the world 2019-12-22 17:42:47 -05:00
librustc_macros Format the world 2019-12-22 17:42:47 -05:00
librustc_metadata Auto merge of #65912 - estebank:variants-orig, r=petrochenkov 2020-01-11 06:15:59 +00:00
librustc_mir Rollup merge of #68114 - ecstatic-morse:fix-feature-gating, r=Centril 2020-01-11 12:36:14 +01:00
librustc_parse Rollup merge of #68084 - estebank:ice-68000, r=varkor 2020-01-11 04:02:28 +01:00
librustc_passes rustc_passes: remove unused rustc_parse dep 2020-01-11 03:30:20 +01:00
librustc_plugin_impl - remove syntax::{span_warn!, span_err!, span_fatal!. struct_err!} 2020-01-08 04:25:33 +01:00
librustc_privacy Fix issue with using self module via indirection 2020-01-10 23:30:13 +00:00
librustc_resolve Auto merge of #65912 - estebank:variants-orig, r=petrochenkov 2020-01-11 06:15:59 +00:00
librustc_save_analysis Remove rustc_hir reexports in rustc::hir. 2020-01-05 12:49:22 +01:00
librustc_session feature_gate: Remove GateStrength 2020-01-11 11:55:09 +03:00
librustc_span Rollup merge of #68114 - ecstatic-morse:fix-feature-gating, r=Centril 2020-01-11 12:36:14 +01:00
librustc_target Allow specifying LLVM args in target specifications 2020-01-10 08:12:55 +01:00
librustc_traits normalize rustc::hir::intravisit imports 2020-01-08 22:09:42 +01:00
librustc_typeck Rollup merge of #68084 - estebank:ice-68000, r=varkor 2020-01-11 04:02:28 +01:00
librustdoc Rollup merge of #68114 - ecstatic-morse:fix-feature-gating, r=Centril 2020-01-11 12:36:14 +01:00
libserialize Deprecate Error::description for real 2019-12-24 22:39:49 -08:00
libstd Rollup merge of #68102 - lzutao:inline, r=alexcrichton 2020-01-11 04:02:30 +01:00
libsyntax Rollup merge of #68114 - ecstatic-morse:fix-feature-gating, r=Centril 2020-01-11 12:36:14 +01:00
libterm Auto merge of #67605 - lzutao:msdn-links, r=Mark-Simulacrum 2019-12-28 09:19:26 +00:00
libtest Format the world 2019-12-22 17:42:47 -05:00
libunwind Auto merge of #66899 - msizanoen1:riscv-std, r=alexcrichton 2020-01-06 19:07:42 +00:00
llvm-project@9330ec5a4c Update LLVM 2020-01-01 09:52:29 +07:00
rtstartup Format the world 2019-12-22 17:42:47 -05:00
rustc Remove unused dependencies 2020-01-09 11:52:03 +09:00
rustllvm Rollup merge of #67033 - cuviper:ValueName2, r=rkruppe 2019-12-07 00:10:02 +09:00
stdarch@e0ab2c165a
test Rollup merge of #68114 - ecstatic-morse:fix-feature-gating, r=Centril 2020-01-11 12:36:14 +01:00
tools Auto merge of #68101 - JohnTitor:rollup-mvmjukr, r=JohnTitor 2020-01-10 20:08:58 +00:00
README.md
stage0.txt Implement rustfmt running manually using ignore crate 2019-12-21 20:23:55 -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.