With full credit where it is due: to @EH2406, who put the original together (here). Note that I'm doing a quick pass and confirming each of these as I get to them.
#0071: const-block-expr is undocumented, along with any documentation on what are valid constant expressions.#0092: struct-grammar: Restriction isn't documented.- #0132: ufcs not mentioned
- #0179: and-mut-patterns due to lack of pattern documentation.
#0184: tuple-accessors#0218: empty-struct-with-braces 6.1.5 could be clearer here, 7.2.4 is fine though.#0342: keywords in The grammar 3.5.1, but this surely deserves to be in the reference.- #0241: deref-conversions 8.3.2 is missing one (arguably)
- #0940: hyphens-considered-harmful partially in 6.1.2.1, but it links to the RFC
#0953: op-assign, the reference ignores this. (std
documentation exists though)
.
#0116: no-module-shadowing 6.1.2 somewhat implies this, but doesn't state it explicity.- #0136: no-privates-in-public (Not the full set of rules)
- #0141: lifetime-elision documented in the nomicon and book but it is not in the reference
- #0192: bounds-on-object-and-generic-types
- #0234: variants-namespace
#0255: object-safety 8.1.11 links to the RFC.- #0387: higher-ranked-trait-bounds only in the nomicon and new book
- #0401: coercions, partially documented, but (a) semantics of the coercions and (b)
kinds of andsemantics of casts are both undocumented *? - #0447: no-unused-impl-parameters
#0490: dst-syntax#0546: Self-not-sized-by-default#0599: default-object-bound and #1156: adjust-default-object-bounds- #0735: allow-inherent-impls-anywhere, #1023: rebalancing-coherence orphan rules #1268: allow-overlapping-impls-on-marker-traits (unimplemented issue), all related and not in the reference.
#0736: privacy-respecting-fru- #0738: variance this is in the nomicon to some extent.
- #1014: stdout-existential-crisis requires documentation in std.
#1135: raw-pointer-comparisons existence is documented in std, semantics are not documented anywhere though.- #1184: stabilize-no_std 6.3.13 isn't enough and claims that
core
is unstable. - #1174: into-raw-fd-socket-handle-traits in unix::io::AsRawFd, std/os/windows/io/trait.AsRawSocket.html, std/os/windows/io/trait.AsRawHandle.html, last two are really minimal though (and need to use local copy of docs).
#1219: use-group-as 6.1.2.2 isn't clear enough here.#1229: compile-time-asserts.- #1492: dotdot-in-patterns tracking issue 7.2.22 needs examples and to say more.
#1506: adt-kinds#1535: stable-overflow-checks (Since I'm mentioning the debug-assertions flag for this in expressions chapter I should mention this as well)- #0213: defaulted-type-params
- #0459: disallow-shadowing
closures are documented in 8.1.10 Closure types and 7.2.15 Lambda expressions. It neads to cover all the changes in:
#0114: closures#0151: capture-by-value#0231: upvar-capture-inference more unboxed closures.#0968: closure-return-type-syntax
I've put these here as the macro documentation in the Reference isn't that great and probably needs a rewrite.
- #0085: pattern-macros
- #0378: expr-macros
- #0453: macro-reform
- #0550: macro-future-proofing wow, I don't get this one.
- #0873: type-macros
- #1681: macros-1.1 stable in 1.15
- #0195: associated-items
- #0517: io-os-reform is enormous, but it seems to be mostly libs stuff, here are most of the relevant sections:
- Ext traits no longer exist as
where Self: Sized
can be used instead. - io::Read and io::Write traits in
std
documentation - std::ffi is where OsString and OsStr live now.
core::io
doesn't exist- Free functions in
io
includes both helpers andstd*
functions - io::BufRead
- io::Cursor
- io::Error
ChanReader
andChanWriter
were removed at some point- "Windows and stdio" - I couldn't find this documented in the obvious places
_print
is indeed hidden and unstable.- std::env
- std::fs
- std::net
- std::process
- std::os
- std::io::prelude
- Ext traits no longer exist as
- #0243: trait-based-exception-handling The "?", not entirely implemented.
- #1257: drain-range-2 partially stabilized.
- Drain methods are stable e.g. VecDeque::drain, HashMap::drain
- RangeArgument is unstable
- #0212: restore-int-fallback in 3.5.1.4 subject to this issue
- #1291: promote-libc are the libc docs ok for this?
- #1415: trim-std-os stable in 1.8 in std::os::unix::raw and so on. Windows seems to have not been affected by this?
- #0235: collections-conventions "This is a combined conventions and library stabilization RFC." so I am also adding it to the conventions list. See also 509. Some useful links to check:
- #0458: send-improvements Send and Sync library docs cover some of this. Does the Refernce need to say more though?
- #1252: open-options partially stabilized. This RFC is documentation?
- #1717: dllimport partially insta-stable
- #0587: fn-return-should-be-an-associated-type FnOnce::Output covers this as far as it's a library issue.
- #0982: dst-coercion both lib and lang? ops::CoerceUnsized for libs, the Reference isn't clear here, and misses implementations for most std smart pointers.
- #0572: rustc-attribute - Probably not revelent on stable until attribute macros land?
- #0769: sound-generic-drop replaced by 1238
- #1240: repr-packed-unsafe-ref Tracking issue is open, but the segfalts are not seen on playpen.
- #1270: deprecation in 6.3.7, very minimal
- #1560: name-resolution first place to check is Visibility and privacy
- #0438: precedence-of-plus
- #0463: future-proof-literal-suffixes
- #0593: forbid-Self-definitions
- #0879: small-base-lexing
- #0087: trait-bounds-with-plus
- #0090: lexical-syntax-simplification
- #0404: change-prefer-dynamic
- #1193: cap-lints FCP in pr not issue. It is just a rustc flag.
- #1510: cdylib.md Rename 1510-rdylib.md to 1510-cdylib
- #1513: less-unwinding
Neither of theses are in the reference at all, so it's just a question of do they need docs.
- #0320: nonzeroing-dynamic-drop
- #1300: intrinsic-semantics (only mention in the reference is external blocks)
- #0201: error-chaining (lib docs: std::error::Error, std::try)
- #1044: io-fs-2.1 is long Maybe in std::io and std::fs.
- #1479: unix-socket in os::unix::net, but RFC is long.
- #1200: cargo-install
- #1241: no-wildcard-deps
- #1361: cargo-cfg-dependencies.md Add extension " cargo thing
- #1525: cargo-workspace
- #0086: plugin-registrar This is compiler plugins related.
- #0089: loadable-lints This is compiler plugins related.
- #0107: pattern-guards-with-bind-by-move
- #0469: feature-gate-box-patterns box patterns
- #0528: string-patterns
- #0639: discriminant-intrinsic
- #0809: box-and-in-for-stdlib
- #0888: compiler-fence-intrinsics all intrinsics are unstable
- #0911: const-fn
- #1183: swap-out-jemalloc
- #1192: inclusive-ranges Such bike sheding.
- #1201: naked-fns
- #1210: impl-specialization
- #1211: mir Mir is internal to rustc so may not nead eany docs, and the issue is open.
- out of order 1191-hir.md but hir needs the similar treatment as mir.
- #1216: bang-type is not yet stabilized.
- #1228: placement-left-arrow
- #1238: nonparametric-dropck
- #1298: incremental-compilation
- #1327: dropck-param-eyepatch
- #1399: repr-pack
- #1419: slice-copy
- #1422: pub-restricted
- #1434: contains-method-for-ranges
- #1440: drop-types-in-const
- #1444: union
- #1445: restrict-constants-in-patterns
- #1504: int128
- #1522: conservative-impl-trait
- #1542: try-from
- #1543: integer_atomics
- #1548: global-asm
- #1559: attributes-with-literals
- #1561: macro-naming
- #1581: fused-iterator
- #1696: discriminant
- #1682: field-init-shorthand is going to be covered by #38830
(new)
- #0202: subslice-syntax-change (in fact all of slice patterns)
- #0803: type-ascription
- #1845: shared-from-slice
- #1860: manually drop
- #1869: eprintln
- #1884: unstable-sort
[newer RFCs]
- #1558: closure to fn coercion
- #1695: add error macro
- #1733: trait alias
- #1845: shared from slice
- #1860: manually drop
- #1866: more readable assert eq
- #1868: portability lint
- #1869: eprintln
- #1884: unstable sort
- #0601: replace-be-with-become The grammar 3.5.1
- #0130: box-not-special removes a special case for
Box<T>
, although some of the other special cases need documenting.
- #0160: if-let documented at 7.2.23 if let expressions
- #0198: slice-notation documented at 8.1.3 Tuple types
- #0246: const-vs-static documented at 6.1.7 Constant items and 6.1.8 Static items
- #0418: struct-variants 6.1.6
(new)
- #0169: use-path-as-id documented in 6.2.1 Moudles (this includes
extern crate
as well) - #0534: deriving2derive 'derive' is used in all documentation as far as I can tell, see 6.1.2
- #0168 and #0532: self-in-use (formerly
mod
) documenented in 6.1.2.2 - #1623: static Now in beta reference 5.1
.
- #0194: cfg-syntax 6.3.8
- #0339: statically-sized-literals the part that's implemented (byte string literals) is documented in 3.5.1.3.2
- #0501: consistent_no_prelude_attributes unimplemented issue but current behaviour in 6.3.3
- #0522: self-impl in 6.1.9 could also be in 6.1.10, however.
- #0702: rangefull-expression in 7.2.10
This was misplaced, it's not documented
- #0326: restrict-xXX-to-ascii doc in 3.5.1.2.3 Character escapes
- #0100: partial-cmp doc in PartialOrd.partial_cmp
- #0111: index-traits doc in IndexMut and Index
- #0216: collection-views entry is docs at hash_map::Entry and btree_map::Entry
- #0580: rename-collections docs for std::collections use the new names.
- #1498: ipv6addr-octets docs at std::net::Ipv6Addr.octets
- #1521: copy-clone-semantics docs at std::clone::Clone, but dose it nead to be in the Reference?
- #1653: assert_ne in std std::assert_ne
(new)
- #0439: cmp-ops-reform mostly
std
in std::ops and std::cmp. Current expression section is fine for where this becomes a language issue. - #0574: drain-range std::vec::Vec std::string::String
- #0771: std-iter-once std::iter::once and std::iter::empty
- #1236: stabilize-catch-panic in std::panic
- #1152: slice-string-symmetry in str and std::string::String
- #1649: atomic-access stable in 1.15, documented in std::sync::atomic::AtomicUsize and similar.
- #1660: try-borrow in std::cell::RefCell
.
- #0221: panic in std::panic
- #0369: num-reform Almost everything here is gone now. Only ToString and FromStr remain.
- #0380: stabilize-std-fmt mostly in std:fmt, connection to std::panic, std::assert and std::debug_assert could be clearer, though.
- #0461: tls-overhaul and #0909: move-thread-local-to-std-thread in std::thread_local and std::thread
- #0474: path-reform in std::path
- #0486: std-ascii-reform in std::ascii::AsciiExt, subject to some slight changes in phrasing on nightly (2017-04-02)
- #0494: c_str-and-c_vec-stability in ffi::Cstring and ffi::Cstr
- #0503: prelude-stabilization in std::prelude (unless the exact motivation for each item needs to be documented)
- #0504: show-stabilization in std::fmt, fmt::Display and fmt::Debug
- #0509: collections-reform-part-2 in std::collections
- #0526: fmt-text-writer fmt::Write
- #0529: conversion-traits in std::convert
- #0592: c-str-deref in ffi::Cstring and ffi::Cstr only stage 1 is implemented
- #0640: debug-improvements in std::fmt, std::fmt::Debug and std::fmt::Formatter
- #0823: hash-simplification in std::hash
- #0832: from-elem-with-love in std::vec
- #0839: embrace-extend-extinguish in the docs of the various types in std::collections
- #0840: no-panic-in-c-string.md Update 0840-no-panic-in-c-string in std::CString::new
- #0921: entry_v3 in collects::hash_map::Entry and collects::btree_map::Entry
- #0979: align-splitn-with-other-languages in str::splitn and slice::splitn
- #0980: read-exact in io::Read
- #1011: process.exit std::process::exit
- #1030: prelude-additions in std::prelude
- #1040: duration-reform in time::Duration
- #1047: socket-timeouts in net::UdpSocket and net::TcpStream
- #1048: rename-soft-link-to-symlink in std::fs::soft_link, std::os::unix::fs and std/os/windows/fs/index.html on windows (online docs only show linux)
- #1194: set-recovery stable in 1.9 collectios::BTreeSet and collectios::HashSet, although they could do with some examples
- #1212: line-endings in str::lines, io::BufRead::lines and io::Stdin::read_line
- #1288: time-improvements in std::time (apart from a few methods that don't exist)
- #1307: osstring-methods ffi::OsString
- #1328: global-panic-handler in std::panic
- #1359: process-ext-unix in std::os::Unix::process::CommandExt
- #1443: extended-compare-and-swap in sync::atomic::Atomic*
- #1461: net2-mutators in net::TcpListener, net::TcpStream and net::UdpSocket (apart from deprecated, not intended to be removed methods)
- #1467: volatile ptr::read_volatile, ptr::write_volatile as well as the intrinsics: load and store
- #1552: contains-method-for-various-collections in collections::VecDeque collections::LinkedList
- #1679: panic-safe-slicing stable part in slice::get, unstable part in slice::SliceIndex
Thanks for working on this! Can you clarify what you mean by this?
Is that referring to Steve's work on the new book, or something else?