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