Introduction
Guidelines for compiler changes
Guidelines for language changes
Guidelines for library changes
0001-private-fields
0002-rfc-process
0003-attribute-usage
0008-new-intrinsics
0016-more-attributes
0019-opt-in-builtin-traits
0026-remove-priv
0034-bounded-type-parameters
0040-libstd-facade
0042-regexps
0048-traits
0049-match-arm-attributes
0050-assert
0059-remove-tilde
0060-rename-strbuf
0063-module-file-system-hierarchy
0066-better-temporary-lifetimes
0068-const-unsafe-pointers
0069-ascii-literals
0071-const-block-expr
0079-undefined-struct-layout
0085-pattern-macros
0086-plugin-registrar
0087-trait-bounds-with-plus
0089-loadable-lints
0090-lexical-syntax-simplification
0092-struct-grammar
0093-remove-format-intl
0100-partial-cmp
0107-pattern-guards-with-bind-by-move
0109-remove-crate-id
0111-index-traits
0112-remove-cross-borrowing
0114-closures
0115-rm-integer-fallback
0116-no-module-shadowing
0123-share-to-threadsafe
0130-box-not-special
0131-target-specification
0132-ufcs
0135-where
0136-no-privates-in-public
0139-remove-cross-borrowing-entirely
0141-lifetime-elision
0151-capture-by-value
0155-anonymous-impl-only-in-same-module
0160-if-let
0164-feature-gate-slice-pats
0168-mod
0169-use-path-as-id
0179-and-mut-patterns
0184-tuple-accessors
0192-bounds-on-object-and-generic-types
0194-cfg-syntax
0195-associated-items
0198-slice-notation
0199-ownership-variants
0201-error-chaining
0202-subslice-syntax-change
0212-restore-int-fallback
0213-defaulted-type-params
0214-while-let
0216-collection-views
0218-empty-struct-with-braces
0221-panic
0230-remove-runtime
0231-upvar-capture-inference
0234-variants-namespace
0235-collections-conventions
0236-error-conventions
0240-unsafe-api-location
0241-deref-conversions
0243-trait-based-exception-handling
0246-const-vs-static
0255-object-safety
0256-remove-refcounting-gc-of-t
0320-nonzeroing-dynamic-drop
0326-restrict-xXX-to-ascii
0339-statically-sized-literals
0341-remove-virtual-structs
0342-keywords
0344-conventions-galore
0356-no-module-prefixes
0369-num-reform
0378-expr-macros
0379-remove-reflection
0380-stabilize-std-fmt
0385-module-system-cleanup
0387-higher-ranked-trait-bounds
0390-enum-namespacing
0401-coercions
0403-cargo-build-command
0404-change-prefer-dynamic
0418-struct-variants
0430-finalizing-naming-conventions
0438-precedence-of-plus
0439-cmp-ops-reform
0445-extension-trait-conventions
0446-es6-unicode-escapes
0447-no-unused-impl-parameters
0450-un-feature-gate-some-more-gates
0453-macro-reform
0458-send-improvements
0459-disallow-shadowing
0461-tls-overhaul
0463-future-proof-literal-suffixes
0469-feature-gate-box-patterns
0474-path-reform
0486-std-ascii-reform
0490-dst-syntax
0494-c_str-and-c_vec-stability
0495-array-pattern-changes
0501-consistent_no_prelude_attributes
0503-prelude-stabilization
0504-show-stabilization
0505-api-comment-conventions
0507-release-channels
0509-collections-reform-part-2
0517-io-os-reform
0520-new-array-repeat-syntax
0522-self-impl
0526-fmt-text-writer
0528-string-patterns
0529-conversion-traits
0531-define-rfc-scope
0532-self-in-use
0533-no-array-elem-moves
0534-deriving2derive
0544-rename-int-uint
0546-Self-not-sized-by-default
0550-macro-future-proofing
0556-raw-lifetime
0558-require-parentheses-for-chained-comparisons
0560-integer-overflow
0563-remove-ndebug
0565-show-string-guidelines
0572-rustc-attribute
0574-drain-range
0580-rename-collections
0587-fn-return-should-be-an-associated-type
0592-c-str-deref
0593-forbid-Self-definitions
0599-default-object-bound
0601-replace-be-with-become
0639-discriminant-intrinsic
0640-debug-improvements
0702-rangefull-expression
0735-allow-inherent-impls-anywhere
0736-privacy-respecting-fru
0738-variance
0769-sound-generic-drop
0771-std-iter-once
0803-type-ascription
0809-box-and-in-for-stdlib
0823-hash-simplification
0832-from-elem-with-love
0839-embrace-extend-extinguish
0840-no-panic-in-c-string
0873-type-macros
0879-small-base-lexing
0888-compiler-fence-intrinsics
0909-move-thread-local-to-std-thread
0911-const-fn
0921-entry_v3
0940-hyphens-considered-harmful
0953-op-assign
0968-closure-return-type-syntax
0979-align-splitn-with-other-languages
0980-read-exact
0982-dst-coercion
1011-process.exit
1014-stdout-existential-crisis
1023-rebalancing-coherence
1030-prelude-additions
1040-duration-reform
1044-io-fs-2.1
1047-socket-timeouts
1048-rename-soft-link-to-symlink
1054-str-words
1057-io-error-sync
1058-slice-tail-redesign
1066-safe-mem-forget
1068-rust-governance
1096-remove-static-assert
1102-rename-connect-to-join
1105-api-evolution
1119-result-expect
1122-language-semver
1123-str-split-at
1131-likely-intrinsic
1135-raw-pointer-comparisons
1152-slice-string-symmetry
1156-adjust-default-object-bounds
1174-into-raw-fd-socket-handle-traits
1183-swap-out-jemalloc
1184-stabilize-no_std
1191-hir
1192-inclusive-ranges
1193-cap-lints
1194-set-recovery
1199-simd-infrastructure
1200-cargo-install
1201-naked-fns
1210-impl-specialization
1211-mir
1212-line-endings
1214-projections-lifetimes-and-wf
1216-bang-type
1219-use-group-as
1228-placement-left-arrow
1229-compile-time-asserts
1236-stabilize-catch-panic
1238-nonparametric-dropck
1240-repr-packed-unsafe-ref
1241-no-wildcard-deps
1242-rust-lang-crates
1252-open-options
1257-drain-range-2
1260-main-reexport
1268-allow-overlapping-impls-on-marker-traits
1270-deprecation
1288-time-improvements
1291-promote-libc
1298-incremental-compilation
1300-intrinsic-semantics
1307-osstring-methods
1317-ide
1327-dropck-param-eyepatch
1328-global-panic-handler
1331-grammar-is-canonical
1358-repr-align
1359-process-ext-unix
1361-cargo-cfg-dependencies
1398-kinds-of-allocators
1399-repr-pack
1414-rvalue_static_promotion
1415-trim-std-os
1419-slice-copy
1422-pub-restricted
1432-replace-slice
1434-contains-method-for-ranges
1440-drop-types-in-const
1443-extended-compare-and-swap
1444-union
1445-restrict-constants-in-patterns
1461-net2-mutators
1467-volatile
1479-unix-socket
1492-dotdot-in-patterns
1498-ipv6addr-octets
1504-int128
1506-adt-kinds
1510-cdylib
1513-less-unwinding
1521-copy-clone-semantics
1522-conservative-impl-trait
1525-cargo-workspace
1535-stable-overflow-checks
1542-try-from
1543-integer_atomics
1548-global-asm
1552-contains-method-for-various-collections
1558-closure-to-fn-coercion
1559-attributes-with-literals
1560-name-resolution
1561-macro-naming
1566-proc-macros
1567-long-error-codes-explanation-normalization
1574-more-api-documentation-conventions
1576-macros-literal-matcher
1581-fused-iterator
1584-macros
1589-rustc-bug-fix-procedure
1590-macro-lifetimes
1598-generic_associated_types
1607-style-rfcs
1618-ergonomic-format-args
1620-regex-1.0
1623-static
1624-loop-break-value
1636-document_all_features
1640-duration-checked-sub
1643-memory-model-strike-team
1644-default-and-expanded-rustc-errors
1647-allow-self-in-where-clauses
1649-atomic-access
1651-movecell
1653-assert_ne
1660-try-borrow
1665-windows-subsystem
1679-panic-safe-slicing
1681-macros-1.1
1682-field-init-shorthand
1683-docs-team
1685-deprecate-anonymous-parameters
1695-add-error-macro
1696-discriminant
1717-dllimport
1721-crt-static
1725-unaligned-access
1728-north-star
1733-trait-alias
1758-repr-transparent
1774-roadmap-2017
1789-as-cell
1824-crates.io-default-ranking
1826-change-doc-default-urls
1828-rust-bookshelf
1845-shared-from-slice
1849-non-static-type-id
1857-stabilize-drop-order
1859-try-trait
1860-manually-drop
1861-extern-types
1866-more-readable-assert-eq
1868-portability-lint
1869-eprintln
1884-unstable-sort
1892-uninitialized-uninhabited
1909-unsized-rvalues
1925-optional-match-vert
1937-ques-in-main
1940-must-use-functions
1946-intra-rustdoc-links
1951-expand-impl-trait
1961-clamp
1966-unsafe-pointer-reform
1969-cargo-prepublish
1974-global-allocators
1977-public-private-dependencies
1983-nursery-deprecation
1985-tiered-browser-support
1990-external-doc-attribute
2000-const-generics
2005-match-ergonomics
2008-non-exhaustive
2011-generic-assert
2025-nested-method-calls
2027-object_safe_for_dispatch
2033-experimental-coroutines
2043-is-aligned-intrinsic
2044-license-rfcs
2045-target-feature
2046-label-break-value
2052-epochs
2056-allow-trivial-where-clause-constraints
2057-refcell-replace
2070-panic-implementation
2071-impl-trait-existential-types
2071-impl-trait-type-alias
2086-allow-if-let-irrefutables
2089-implied-bounds
2091-inline-semantic
2093-infer-outlives
2094-nll
2102-unnamed-fields
2103-tool-attributes
2113-dyn-trait-syntax
2115-argument-lifetimes
2116-alloc-me-maybe
2124-option-filter
2126-path-clarity
2128-use-nested-groups
2132-copy-closures
2133-all-the-clones
2136-build-systems
2137-variadic
2141-alternative-registries
2145-type-privacy
2151-raw-identifiers
2166-impl-only-use
2169-euclidean-modulo
2175-if-while-or-patterns
2195-really-tagged-unions
2196-metabuild
2203-const-repeat-expr
2226-fmt-debug-hex
2229-capture-disjoint-fields
2230-bury-description
2235-libc-struct-traits
2250-finalize-impl-dyn-syntax
2282-profile-dependencies
2289-associated-type-bounds
2294-if-let-guard
2295-os-str-pattern
2296-option-replace
2298-macro-at-most-once-rep
2300-self-in-typedefs
2302-tuple-struct-self-ctor
2306-convert-id
2307-concrete-nonzero-types
2314-roadmap-2018
2316-safe-unsafe-trait-methods
2318-custom-test-frameworks
2325-stable-simd
2333-prior-art
2338-type-alias-enum-variants
2341-const-locals
2342-const-control-flow
2344-const-looping
2345-const-panic
2349-pin
2351-is-sorted
2359-subslice-pattern-syntax
2360-bench-black-box
2361-dbg-macro
2363-arbitrary-enum-discriminant
2383-lint-reasons
2386-used
2388-try-expr
2394-async_await
2396-target-feature-1.1
2397-do-not-recommend
2412-optimize-attr
2420-unreserve-proc
2421-unreservations-2018
2436-style-guide
2437-rustfmt-stability
2438-deny-integer-literal-overflow-lint
2451-re-rebalancing-coherence
2457-non-ascii-idents
2471-lint-test-inner-function
2476-clippy-uno
2480-liballoc
2495-min-rust-version
2497-if-let-chains
2500-needle
2504-fix-error
2509-byte-concat
2514-union-initialization-and-drop
2515-type_alias_impl_trait
2521-c_void-reunification
2523-cfg-path-version
2526-const-wildcard
2528-type-changing-struct-update-syntax
2532-associated-type-defaults
2535-or-patterns
2539-cfg_attr-multiple-attrs
2561-future-possibilities
2565-formal-function-parameter-attributes
2570-linked-list-cursors
2574-simd-ffi
2580-ptr-meta
2582-raw-reference-mir-operator
2585-unsafe-block-in-unsafe-fn
2591-exhaustive-integer-pattern-matching
2592-futures
2603-rust-symbol-name-mangling-v0
2627-raw-dylib-kind
2645-transparent-unions
2657-roadmap-2019
2678-named-custom-cargo-profiles
2689-compiler-team-contributors
2696-debug-map-key-value
2700-associated-constants-on-ints
2707-dotdot-patterns
2730-cargo-token-from-process
2788-standard-lazy-types
2789-sparse-index
2795-format-args-implicit-identifiers
2797-project-ffi-unwind
2803-target-tier-policy
2832-core-net-types
2834-cargo-report-future-incompat
2835-project-safe-transmute
2836-project-asm
2837-demote-apple-32bit
2841-export-executable-symbols
2843-llvm-asm
2845-supertrait-item-shadowing
2856-project-groups
2857-roadmap-2020
2867-isa-attribute
2872-github-access-policy
2873-inline-asm
2904-compiler-major-change-process
2906-cargo-workspace-deduplicate
2909-destructuring-assignment
2912-rust-analyzer
2920-inline-const
2930-read-buf
2945-c-unwind-abi
2947-crates-io-token-scopes
2951-native-link-modifiers
2957-cargo-features2
2959-promote-aarch64-unknown-linux-gnu-to-tier1
2963-rustdoc-json
2965-project-error-handling
2972-constrained-naked
2977-stdsimd
2992-cfg-target-abi
2996-async-iterator
3007-panic-plan
3013-conditional-compilation-checking
3014-must-not-suspend-lint
3016-const-ub
3027-infallible-promotion
3028-cargo-binary-dependencies
3037-roadmap-2021
3052-optional-authors-field
3058-try-trait-v2
3085-edition-2021
3086-macro-metavar-expr
3101-reserved_prefixes
3107-derive-default-enum
3114-prelude-2021
3119-rust-crate-ownership
3123-rustdoc-scrape-examples
3127-trim-paths
3128-io-safety
3137-let-else
3139-cargo-alternative-registry-auth
3143-cargo-weak-namespaced-features
3151-scoped-threads
3173-float-next-up-down
3176-cargo-multi-dep-artifacts
3180-cargo-cli-crate-type
3184-thread-local-cell-methods
3185-static-async-fn-in-trait
3191-debugger-visualizer
3192-dyno
3216-closure-lifetime-binder
3228-process-process_group
3231-cargo-asymmetric-tokens
3239-cfg-target
3243-packages-as-optional-namespaces
3245-refined-impls
3254-types-team
3262-compiler-team-rolling-leads
3289-source_replacement_ambiguity
3307-de-rfc-type-ascription
3308-offset_of
3309-style-team
3323-restrictions
3324-dyn-upcasting
3325-unsafe-attributes
3327-lang-team-advisors
3336-maybe-dangling
3338-style-evolution
3346-t-opsem
3348-c-str-literal
3349-mixed-utf8-literals
3355-rust-spec
3368-diagnostic-attribute-namespace
3373-avoid-nonlocal-definitions-in-fns
3389-manifest-lint
3391-result_ffi_guarantees
3392-leadership-council
Leadership-Council-RFCja
Leadership-Council-RFCko
Leadership-Council-RFCru-RU
Leadership-Council-RFCzh-Hans
Leadership-Council-RFCzh-Hant
alternatives
initial-work-of-the-council
motivation
non-goals
3399-cfg-attribute-in-where
3416-feature-metadata
3424-cargo-script
3425-return-position-impl-trait-in-traits
3453-f16-and-f128
3455-t-test
3463-crates-io-policy-update
3467-unsafe-pinned
3477-cargo-check-lang-policy
3484-unsafe-extern-blocks
3491-remove-implicit-features
3493-precise-pre-release-cargo-update
3498-lifetime-capture-rules-2024
3501-edition-2024
3502-cargo-script
3503-frontmatter
3509-prelude-2024-future
3513-gen-blocks
3514-float-semantics
3516-public-private-dependencies
3519-arbitrary-self-types-v2
3529-cargo-path-bases
3531-macro-fragment-policy
3533-combine-infra-and-release-teams
3535-constants-in-patterns
3537-msrv-resolver
3543-patchable-function-entry
3550-new-range
3558-libtest-json
3559-rust-has-provenance
3593-unprefixed-guarded-strings
3595-move-crates-io-team-under-dev-tools
3599-compiler-team-reorganisation
3606-temporary-lifetimes-in-tail-expressions
3614-project-goals
3617-precise-capturing
3621-derive-smart-pointer
3627-match-ergonomics-2024
3637-guard-patterns
3646-remove-crate-transfer-mediation-policy
3654-return-type-notation
3660-crates-io-crate-deletions
3662-mergeable-rustdoc-cross-crate-info
3668-async-closures
3671-promote-aarch64-apple-darwin-to-tier-1
3672-Project-Goals-2024h2
3673-rustdoc-types-maintainers
3681-default-field-values
3692-feature-unification
3695-cfg-boolean-literals
Light
Rust
Coal
Navy
Ayu
The Rust RFC Book
Moved to
2071-impl-trait-existential-types.md
.