Open
Description
This is a tracking issue for unstable syntax that is currently not supported. I think it is OK to add support for some of these before it is stabilized, as long as the changes aren't too invasive (and can be easily backed out or changed if the feature changes before it is stabilized). This issue is mainly intended as a heads-up for things on the horizon.
- 1. Raw identifiers. RFC 2151, now stabilized (Updated section on identifiers for raw identifiers reference#395).
fn r#match() { }
- 2. Crate keyword in path. RFC 2126, currently up for debate (see issue 53130). I think it should be highlighted similar to super/self.
use crate::foo::bar;
- 3. Crate as visibility modifier. RFC 2126, currently up for debate (see issue 53120). Should use
storage.modifier
scope in thevisibility
context.crate struct S {}
- 4.
vis
macro designator. Issue 41022, now stabilized.macro_rules! foo{($vis:vis) => () }
- 5. Async/await syntax. RFC 2394 issue 50547. Looks like this is pretty far from being settled.
- 6. Throw/catch. Issue 31436. Still unsettled.
- 7. "default" keyword for specialization. RFC 1210 issue 31844. Still unsettled.
default fn f() {} default impl Trait for X {}
- 8. const generics (such as strings in generic args, etc.). (Syntax: Add support for const generics. #451)
This list is far from complete, but covers a few things I'm aware of and are under active development. If anyone knows of something to add, please add a comment.