Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matthewjasper/e9246d2fc6b8d874fd989870a2bd9610 to your computer and use it in GitHub Desktop.
Save matthewjasper/e9246d2fc6b8d874fd989870a2bd9610 to your computer and use it in GitHub Desktop.
Status (as best it is known) of RFCs not yet documented or tracked in https://github.com/rust-lang-nursery/reference/issues/9

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.

Need documentation

  • #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 and semantics 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

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

Macros

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

It's complicated...

Reviewed with no conclusion

Still need review

Misc

Language and library

  • #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.

Language

  • #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

Grammar

  • #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

Compiler

  • #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

Compiler internals or language specification details

Neither of theses are in the reference at all, so it's just a question of do they need docs.

Libraries

Cargo Things

Reviewed

Not yet stabilized

  • #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]

Documentation Not Required

Grammar

Removal

  • #0130: box-not-special removes a special case for Box<T>, although some of the other special cases need documenting.

Already documented in reference

(new)

.

  • #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

Already documented in std

(new)

.

@chriskrycho
Copy link

Thanks for working on this! Can you clarify what you mean by this?

* means this is (should be) in the expressions chapter rewrite

Is that referring to Steve's work on the new book, or something else?

@matthewjasper
Copy link
Author

matthewjasper commented Apr 1, 2017

I'm referring to the PR I have open to update chapter 6.2 of the reference (To keep track of them)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment