1. Introduction
  2. Guidelines for compiler changes
  3. Guidelines for language changes
  4. Guidelines for library changes
  5. 0001-private-fields
  6. 0002-rfc-process
  7. 0003-attribute-usage
  8. 0008-new-intrinsics
  9. 0016-more-attributes
  10. 0019-opt-in-builtin-traits
  11. 0026-remove-priv
  12. 0034-bounded-type-parameters
  13. 0040-libstd-facade
  14. 0042-regexps
  15. 0048-traits
  16. 0049-match-arm-attributes
  17. 0050-assert
  18. 0059-remove-tilde
  19. 0060-rename-strbuf
  20. 0063-module-file-system-hierarchy
  21. 0066-better-temporary-lifetimes
  22. 0068-const-unsafe-pointers
  23. 0069-ascii-literals
  24. 0071-const-block-expr
  25. 0079-undefined-struct-layout
  26. 0085-pattern-macros
  27. 0086-plugin-registrar
  28. 0087-trait-bounds-with-plus
  29. 0089-loadable-lints
  30. 0090-lexical-syntax-simplification
  31. 0092-struct-grammar
  32. 0093-remove-format-intl
  33. 0100-partial-cmp
  34. 0107-pattern-guards-with-bind-by-move
  35. 0109-remove-crate-id
  36. 0111-index-traits
  37. 0112-remove-cross-borrowing
  38. 0114-closures
  39. 0115-rm-integer-fallback
  40. 0116-no-module-shadowing
  41. 0123-share-to-threadsafe
  42. 0130-box-not-special
  43. 0131-target-specification
  44. 0132-ufcs
  45. 0135-where
  46. 0136-no-privates-in-public
  47. 0139-remove-cross-borrowing-entirely
  48. 0141-lifetime-elision
  49. 0151-capture-by-value
  50. 0155-anonymous-impl-only-in-same-module
  51. 0160-if-let
  52. 0164-feature-gate-slice-pats
  53. 0168-mod
  54. 0169-use-path-as-id
  55. 0179-and-mut-patterns
  56. 0184-tuple-accessors
  57. 0192-bounds-on-object-and-generic-types
  58. 0194-cfg-syntax
  59. 0195-associated-items
  60. 0198-slice-notation
  61. 0199-ownership-variants
  62. 0201-error-chaining
  63. 0202-subslice-syntax-change
  64. 0212-restore-int-fallback
  65. 0213-defaulted-type-params
  66. 0214-while-let
  67. 0216-collection-views
  68. 0218-empty-struct-with-braces
  69. 0221-panic
  70. 0230-remove-runtime
  71. 0231-upvar-capture-inference
  72. 0234-variants-namespace
  73. 0235-collections-conventions
  74. 0236-error-conventions
  75. 0240-unsafe-api-location
  76. 0241-deref-conversions
  77. 0243-trait-based-exception-handling
  78. 0246-const-vs-static
  79. 0255-object-safety
  80. 0256-remove-refcounting-gc-of-t
  81. 0320-nonzeroing-dynamic-drop
  82. 0326-restrict-xXX-to-ascii
  83. 0339-statically-sized-literals
  84. 0341-remove-virtual-structs
  85. 0342-keywords
  86. 0344-conventions-galore
  87. 0356-no-module-prefixes
  88. 0369-num-reform
  89. 0378-expr-macros
  90. 0379-remove-reflection
  91. 0380-stabilize-std-fmt
  92. 0385-module-system-cleanup
  93. 0387-higher-ranked-trait-bounds
  94. 0390-enum-namespacing
  95. 0401-coercions
  96. 0403-cargo-build-command
  97. 0404-change-prefer-dynamic
  98. 0418-struct-variants
  99. 0430-finalizing-naming-conventions
  100. 0438-precedence-of-plus
  101. 0439-cmp-ops-reform
  102. 0445-extension-trait-conventions
  103. 0446-es6-unicode-escapes
  104. 0447-no-unused-impl-parameters
  105. 0450-un-feature-gate-some-more-gates
  106. 0453-macro-reform
  107. 0458-send-improvements
  108. 0459-disallow-shadowing
  109. 0461-tls-overhaul
  110. 0463-future-proof-literal-suffixes
  111. 0469-feature-gate-box-patterns
  112. 0474-path-reform
  113. 0486-std-ascii-reform
  114. 0490-dst-syntax
  115. 0494-c_str-and-c_vec-stability
  116. 0495-array-pattern-changes
  117. 0501-consistent_no_prelude_attributes
  118. 0503-prelude-stabilization
  119. 0504-show-stabilization
  120. 0505-api-comment-conventions
  121. 0507-release-channels
  122. 0509-collections-reform-part-2
  123. 0517-io-os-reform
  124. 0520-new-array-repeat-syntax
  125. 0522-self-impl
  126. 0526-fmt-text-writer
  127. 0528-string-patterns
  128. 0529-conversion-traits
  129. 0531-define-rfc-scope
  130. 0532-self-in-use
  131. 0533-no-array-elem-moves
  132. 0534-deriving2derive
  133. 0544-rename-int-uint
  134. 0546-Self-not-sized-by-default
  135. 0550-macro-future-proofing
  136. 0556-raw-lifetime
  137. 0558-require-parentheses-for-chained-comparisons
  138. 0560-integer-overflow
  139. 0563-remove-ndebug
  140. 0565-show-string-guidelines
  141. 0572-rustc-attribute
  142. 0574-drain-range
  143. 0580-rename-collections
  144. 0587-fn-return-should-be-an-associated-type
  145. 0592-c-str-deref
  146. 0593-forbid-Self-definitions
  147. 0599-default-object-bound
  148. 0601-replace-be-with-become
  149. 0639-discriminant-intrinsic
  150. 0640-debug-improvements
  151. 0702-rangefull-expression
  152. 0735-allow-inherent-impls-anywhere
  153. 0736-privacy-respecting-fru
  154. 0738-variance
  155. 0769-sound-generic-drop
  156. 0771-std-iter-once
  157. 0803-type-ascription
  158. 0809-box-and-in-for-stdlib
  159. 0823-hash-simplification
  160. 0832-from-elem-with-love
  161. 0839-embrace-extend-extinguish
  162. 0840-no-panic-in-c-string
  163. 0873-type-macros
  164. 0879-small-base-lexing
  165. 0888-compiler-fence-intrinsics
  166. 0909-move-thread-local-to-std-thread
  167. 0911-const-fn
  168. 0921-entry_v3
  169. 0940-hyphens-considered-harmful
  170. 0953-op-assign
  171. 0968-closure-return-type-syntax
  172. 0979-align-splitn-with-other-languages
  173. 0980-read-exact
  174. 0982-dst-coercion
  175. 1011-process.exit
  176. 1014-stdout-existential-crisis
  177. 1023-rebalancing-coherence
  178. 1030-prelude-additions
  179. 1040-duration-reform
  180. 1044-io-fs-2.1
  181. 1047-socket-timeouts
  182. 1048-rename-soft-link-to-symlink
  183. 1054-str-words
  184. 1057-io-error-sync
  185. 1058-slice-tail-redesign
  186. 1066-safe-mem-forget
  187. 1068-rust-governance
  188. 1096-remove-static-assert
  189. 1102-rename-connect-to-join
  190. 1105-api-evolution
  191. 1119-result-expect
  192. 1122-language-semver
  193. 1123-str-split-at
  194. 1131-likely-intrinsic
  195. 1135-raw-pointer-comparisons
  196. 1152-slice-string-symmetry
  197. 1156-adjust-default-object-bounds
  198. 1174-into-raw-fd-socket-handle-traits
  199. 1183-swap-out-jemalloc
  200. 1184-stabilize-no_std
  201. 1191-hir
  202. 1192-inclusive-ranges
  203. 1193-cap-lints
  204. 1194-set-recovery
  205. 1199-simd-infrastructure
  206. 1200-cargo-install
  207. 1201-naked-fns
  208. 1210-impl-specialization
  209. 1211-mir
  210. 1212-line-endings
  211. 1214-projections-lifetimes-and-wf
  212. 1216-bang-type
  213. 1219-use-group-as
  214. 1228-placement-left-arrow
  215. 1229-compile-time-asserts
  216. 1236-stabilize-catch-panic
  217. 1238-nonparametric-dropck
  218. 1240-repr-packed-unsafe-ref
  219. 1241-no-wildcard-deps
  220. 1242-rust-lang-crates
  221. 1252-open-options
  222. 1257-drain-range-2
  223. 1260-main-reexport
  224. 1268-allow-overlapping-impls-on-marker-traits
  225. 1270-deprecation
  226. 1288-time-improvements
  227. 1291-promote-libc
  228. 1298-incremental-compilation
  229. 1300-intrinsic-semantics
  230. 1307-osstring-methods
  231. 1317-ide
  232. 1327-dropck-param-eyepatch
  233. 1328-global-panic-handler
  234. 1331-grammar-is-canonical
  235. 1358-repr-align
  236. 1359-process-ext-unix
  237. 1361-cargo-cfg-dependencies
  238. 1398-kinds-of-allocators
  239. 1399-repr-pack
  240. 1414-rvalue_static_promotion
  241. 1415-trim-std-os
  242. 1419-slice-copy
  243. 1422-pub-restricted
  244. 1432-replace-slice
  245. 1434-contains-method-for-ranges
  246. 1440-drop-types-in-const
  247. 1443-extended-compare-and-swap
  248. 1444-union
  249. 1445-restrict-constants-in-patterns
  250. 1461-net2-mutators
  251. 1467-volatile
  252. 1479-unix-socket
  253. 1492-dotdot-in-patterns
  254. 1498-ipv6addr-octets
  255. 1504-int128
  256. 1506-adt-kinds
  257. 1510-cdylib
  258. 1513-less-unwinding
  259. 1521-copy-clone-semantics
  260. 1522-conservative-impl-trait
  261. 1525-cargo-workspace
  262. 1535-stable-overflow-checks
  263. 1542-try-from
  264. 1543-integer_atomics
  265. 1548-global-asm
  266. 1552-contains-method-for-various-collections
  267. 1558-closure-to-fn-coercion
  268. 1559-attributes-with-literals
  269. 1560-name-resolution
  270. 1561-macro-naming
  271. 1566-proc-macros
  272. 1567-long-error-codes-explanation-normalization
  273. 1574-more-api-documentation-conventions
  274. 1576-macros-literal-matcher
  275. 1581-fused-iterator
  276. 1584-macros
  277. 1589-rustc-bug-fix-procedure
  278. 1590-macro-lifetimes
  279. 1598-generic_associated_types
  280. 1607-style-rfcs
  281. 1618-ergonomic-format-args
  282. 1620-regex-1.0
  283. 1623-static
  284. 1624-loop-break-value
  285. 1636-document_all_features
  286. 1640-duration-checked-sub
  287. 1643-memory-model-strike-team
  288. 1644-default-and-expanded-rustc-errors
  289. 1647-allow-self-in-where-clauses
  290. 1649-atomic-access
  291. 1651-movecell
  292. 1653-assert_ne
  293. 1660-try-borrow
  294. 1665-windows-subsystem
  295. 1679-panic-safe-slicing
  296. 1681-macros-1.1
  297. 1682-field-init-shorthand
  298. 1683-docs-team
  299. 1685-deprecate-anonymous-parameters
  300. 1695-add-error-macro
  301. 1696-discriminant
  302. 1717-dllimport
  303. 1721-crt-static
  304. 1725-unaligned-access
  305. 1728-north-star
  306. 1733-trait-alias
  307. 1758-repr-transparent
  308. 1774-roadmap-2017
  309. 1789-as-cell
  310. 1824-crates.io-default-ranking
  311. 1826-change-doc-default-urls
  312. 1828-rust-bookshelf
  313. 1845-shared-from-slice
  314. 1849-non-static-type-id
  315. 1857-stabilize-drop-order
  316. 1859-try-trait
  317. 1860-manually-drop
  318. 1861-extern-types
  319. 1866-more-readable-assert-eq
  320. 1868-portability-lint
  321. 1869-eprintln
  322. 1884-unstable-sort
  323. 1892-uninitialized-uninhabited
  324. 1909-unsized-rvalues
  325. 1925-optional-match-vert
  326. 1937-ques-in-main
  327. 1940-must-use-functions
  328. 1946-intra-rustdoc-links
  329. 1951-expand-impl-trait
  330. 1961-clamp
  331. 1966-unsafe-pointer-reform
  332. 1969-cargo-prepublish
  333. 1974-global-allocators
  334. 1977-public-private-dependencies
  335. 1983-nursery-deprecation
  336. 1985-tiered-browser-support
  337. 1990-external-doc-attribute
  338. 2000-const-generics
  339. 2005-match-ergonomics
  340. 2008-non-exhaustive
  341. 2011-generic-assert
  342. 2025-nested-method-calls
  343. 2027-object_safe_for_dispatch
  344. 2033-experimental-coroutines
  345. 2043-is-aligned-intrinsic
  346. 2044-license-rfcs
  347. 2045-target-feature
  348. 2046-label-break-value
  349. 2052-epochs
  350. 2056-allow-trivial-where-clause-constraints
  351. 2057-refcell-replace
  352. 2070-panic-implementation
  353. 2071-impl-trait-existential-types
  354. 2071-impl-trait-type-alias
  355. 2086-allow-if-let-irrefutables
  356. 2089-implied-bounds
  357. 2091-inline-semantic
  358. 2093-infer-outlives
  359. 2094-nll
  360. 2102-unnamed-fields
  361. 2103-tool-attributes
  362. 2113-dyn-trait-syntax
  363. 2115-argument-lifetimes
  364. 2116-alloc-me-maybe
  365. 2124-option-filter
  366. 2126-path-clarity
  367. 2128-use-nested-groups
  368. 2132-copy-closures
  369. 2133-all-the-clones
  370. 2136-build-systems
  371. 2137-variadic
  372. 2141-alternative-registries
  373. 2145-type-privacy
  374. 2151-raw-identifiers
  375. 2166-impl-only-use
  376. 2169-euclidean-modulo
  377. 2175-if-while-or-patterns
  378. 2195-really-tagged-unions
  379. 2196-metabuild
  380. 2203-const-repeat-expr
  381. 2226-fmt-debug-hex
  382. 2229-capture-disjoint-fields
  383. 2230-bury-description
  384. 2235-libc-struct-traits
  385. 2250-finalize-impl-dyn-syntax
  386. 2282-profile-dependencies
  387. 2289-associated-type-bounds
  388. 2294-if-let-guard
  389. 2295-os-str-pattern
  390. 2296-option-replace
  391. 2298-macro-at-most-once-rep
  392. 2300-self-in-typedefs
  393. 2302-tuple-struct-self-ctor
  394. 2306-convert-id
  395. 2307-concrete-nonzero-types
  396. 2314-roadmap-2018
  397. 2316-safe-unsafe-trait-methods
  398. 2318-custom-test-frameworks
  399. 2325-stable-simd
  400. 2333-prior-art
  401. 2338-type-alias-enum-variants
  402. 2341-const-locals
  403. 2342-const-control-flow
  404. 2344-const-looping
  405. 2345-const-panic
  406. 2349-pin
  407. 2351-is-sorted
  408. 2359-subslice-pattern-syntax
  409. 2360-bench-black-box
  410. 2361-dbg-macro
  411. 2363-arbitrary-enum-discriminant
  412. 2383-lint-reasons
  413. 2386-used
  414. 2388-try-expr
  415. 2394-async_await
  416. 2396-target-feature-1.1
  417. 2397-do-not-recommend
  418. 2412-optimize-attr
  419. 2420-unreserve-proc
  420. 2421-unreservations-2018
  421. 2436-style-guide
  422. 2437-rustfmt-stability
  423. 2438-deny-integer-literal-overflow-lint
  424. 2451-re-rebalancing-coherence
  425. 2457-non-ascii-idents
  426. 2471-lint-test-inner-function
  427. 2476-clippy-uno
  428. 2480-liballoc
  429. 2495-min-rust-version
  430. 2497-if-let-chains
  431. 2500-needle
  432. 2504-fix-error
  433. 2509-byte-concat
  434. 2514-union-initialization-and-drop
  435. 2515-type_alias_impl_trait
  436. 2521-c_void-reunification
  437. 2523-cfg-path-version
  438. 2526-const-wildcard
  439. 2528-type-changing-struct-update-syntax
  440. 2532-associated-type-defaults
  441. 2535-or-patterns
  442. 2539-cfg_attr-multiple-attrs
  443. 2561-future-possibilities
  444. 2565-formal-function-parameter-attributes
  445. 2570-linked-list-cursors
  446. 2574-simd-ffi
  447. 2580-ptr-meta
  448. 2582-raw-reference-mir-operator
  449. 2585-unsafe-block-in-unsafe-fn
  450. 2591-exhaustive-integer-pattern-matching
  451. 2592-futures
  452. 2603-rust-symbol-name-mangling-v0
  453. 2627-raw-dylib-kind
  454. 2645-transparent-unions
  455. 2657-roadmap-2019
  456. 2678-named-custom-cargo-profiles
  457. 2689-compiler-team-contributors
  458. 2696-debug-map-key-value
  459. 2700-associated-constants-on-ints
  460. 2707-dotdot-patterns
  461. 2730-cargo-token-from-process
  462. 2788-standard-lazy-types
  463. 2789-sparse-index
  464. 2795-format-args-implicit-identifiers
  465. 2797-project-ffi-unwind
  466. 2803-target-tier-policy
  467. 2832-core-net-types
  468. 2834-cargo-report-future-incompat
  469. 2835-project-safe-transmute
  470. 2836-project-asm
  471. 2837-demote-apple-32bit
  472. 2841-export-executable-symbols
  473. 2843-llvm-asm
  474. 2845-supertrait-item-shadowing
  475. 2856-project-groups
  476. 2857-roadmap-2020
  477. 2867-isa-attribute
  478. 2872-github-access-policy
  479. 2873-inline-asm
  480. 2904-compiler-major-change-process
  481. 2906-cargo-workspace-deduplicate
  482. 2909-destructuring-assignment
  483. 2912-rust-analyzer
  484. 2920-inline-const
  485. 2930-read-buf
  486. 2945-c-unwind-abi
  487. 2947-crates-io-token-scopes
  488. 2951-native-link-modifiers
  489. 2957-cargo-features2
  490. 2959-promote-aarch64-unknown-linux-gnu-to-tier1
  491. 2963-rustdoc-json
  492. 2965-project-error-handling
  493. 2972-constrained-naked
  494. 2977-stdsimd
  495. 2992-cfg-target-abi
  496. 2996-async-iterator
  497. 3007-panic-plan
  498. 3013-conditional-compilation-checking
  499. 3014-must-not-suspend-lint
  500. 3016-const-ub
  501. 3027-infallible-promotion
  502. 3028-cargo-binary-dependencies
  503. 3037-roadmap-2021
  504. 3052-optional-authors-field
  505. 3058-try-trait-v2
  506. 3085-edition-2021
  507. 3086-macro-metavar-expr
  508. 3101-reserved_prefixes
  509. 3107-derive-default-enum
  510. 3114-prelude-2021
  511. 3119-rust-crate-ownership
  512. 3123-rustdoc-scrape-examples
  513. 3127-trim-paths
  514. 3128-io-safety
  515. 3137-let-else
  516. 3139-cargo-alternative-registry-auth
  517. 3143-cargo-weak-namespaced-features
  518. 3151-scoped-threads
  519. 3173-float-next-up-down
  520. 3176-cargo-multi-dep-artifacts
  521. 3180-cargo-cli-crate-type
  522. 3184-thread-local-cell-methods
  523. 3185-static-async-fn-in-trait
  524. 3191-debugger-visualizer
  525. 3192-dyno
  526. 3216-closure-lifetime-binder
  527. 3228-process-process_group
  528. 3231-cargo-asymmetric-tokens
  529. 3239-cfg-target
  530. 3243-packages-as-optional-namespaces
  531. 3245-refined-impls
  532. 3254-types-team
  533. 3262-compiler-team-rolling-leads
  534. 3289-source_replacement_ambiguity
  535. 3307-de-rfc-type-ascription
  536. 3308-offset_of
  537. 3309-style-team
  538. 3323-restrictions
  539. 3324-dyn-upcasting
  540. 3325-unsafe-attributes
  541. 3327-lang-team-advisors
  542. 3336-maybe-dangling
  543. 3338-style-evolution
  544. 3346-t-opsem
  545. 3348-c-str-literal
  546. 3349-mixed-utf8-literals
  547. 3355-rust-spec
  548. 3368-diagnostic-attribute-namespace
  549. 3373-avoid-nonlocal-definitions-in-fns
  550. 3389-manifest-lint
  551. 3391-result_ffi_guarantees
  552. 3392-leadership-council
    1. Leadership-Council-RFCja
    2. Leadership-Council-RFCko
    3. Leadership-Council-RFCru-RU
    4. Leadership-Council-RFCzh-Hans
    5. Leadership-Council-RFCzh-Hant
    6. alternatives
    7. initial-work-of-the-council
    8. motivation
    9. non-goals
  553. 3399-cfg-attribute-in-where
  554. 3416-feature-metadata
  555. 3424-cargo-script
  556. 3425-return-position-impl-trait-in-traits
  557. 3453-f16-and-f128
  558. 3455-t-test
  559. 3463-crates-io-policy-update
  560. 3467-unsafe-pinned
  561. 3477-cargo-check-lang-policy
  562. 3484-unsafe-extern-blocks
  563. 3491-remove-implicit-features
  564. 3493-precise-pre-release-cargo-update
  565. 3498-lifetime-capture-rules-2024
  566. 3501-edition-2024
  567. 3502-cargo-script
  568. 3503-frontmatter
  569. 3509-prelude-2024-future
  570. 3513-gen-blocks
  571. 3514-float-semantics
  572. 3516-public-private-dependencies
  573. 3519-arbitrary-self-types-v2
  574. 3529-cargo-path-bases
  575. 3531-macro-fragment-policy
  576. 3533-combine-infra-and-release-teams
  577. 3535-constants-in-patterns
  578. 3537-msrv-resolver
  579. 3543-patchable-function-entry
  580. 3550-new-range
  581. 3558-libtest-json
  582. 3559-rust-has-provenance
  583. 3593-unprefixed-guarded-strings
  584. 3595-move-crates-io-team-under-dev-tools
  585. 3599-compiler-team-reorganisation
  586. 3606-temporary-lifetimes-in-tail-expressions
  587. 3614-project-goals
  588. 3617-precise-capturing
  589. 3621-derive-smart-pointer
  590. 3627-match-ergonomics-2024
  591. 3637-guard-patterns
  592. 3642-thread-spawn-hook
  593. 3646-remove-crate-transfer-mediation-policy
  594. 3654-return-type-notation
  595. 3660-crates-io-crate-deletions
  596. 3662-mergeable-rustdoc-cross-crate-info
  597. 3668-async-closures
  598. 3671-promote-aarch64-apple-darwin-to-tier-1
  599. 3672-Project-Goals-2024h2
  600. 3673-rustdoc-types-maintainers
  601. 3681-default-field-values
  602. 3692-feature-unification
  603. 3695-cfg-boolean-literals