- 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
- 3642-thread-spawn-hook
- 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