mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-26 04:53:34 +00:00
Parse default unsafe fn
This commit is contained in:
parent
3999bbba1b
commit
e38685cb48
3 changed files with 50 additions and 1 deletions
|
@ -121,7 +121,13 @@ pub(super) fn maybe_item(p: &mut Parser, m: Marker, flavor: ItemFlavor) -> Resul
|
||||||
T![unsafe] => {
|
T![unsafe] => {
|
||||||
// test default_unsafe_impl
|
// test default_unsafe_impl
|
||||||
// default unsafe impl Foo {}
|
// default unsafe impl Foo {}
|
||||||
if p.nth(2) == T![impl] {
|
|
||||||
|
// test default_unsafe_fn
|
||||||
|
// impl T for Foo {
|
||||||
|
// default unsafe fn foo() {}
|
||||||
|
// }
|
||||||
|
let sk = p.nth(2);
|
||||||
|
if sk == T![impl] || sk == T![fn] {
|
||||||
p.bump_remap(T![default]);
|
p.bump_remap(T![default]);
|
||||||
p.bump(T![unsafe]);
|
p.bump(T![unsafe]);
|
||||||
has_mods = true;
|
has_mods = true;
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
SOURCE_FILE@0..50
|
||||||
|
IMPL_DEF@0..49
|
||||||
|
IMPL_KW@0..4 "impl"
|
||||||
|
WHITESPACE@4..5 " "
|
||||||
|
PATH_TYPE@5..6
|
||||||
|
PATH@5..6
|
||||||
|
PATH_SEGMENT@5..6
|
||||||
|
NAME_REF@5..6
|
||||||
|
IDENT@5..6 "T"
|
||||||
|
WHITESPACE@6..7 " "
|
||||||
|
FOR_KW@7..10 "for"
|
||||||
|
WHITESPACE@10..11 " "
|
||||||
|
PATH_TYPE@11..14
|
||||||
|
PATH@11..14
|
||||||
|
PATH_SEGMENT@11..14
|
||||||
|
NAME_REF@11..14
|
||||||
|
IDENT@11..14 "Foo"
|
||||||
|
WHITESPACE@14..15 " "
|
||||||
|
ITEM_LIST@15..49
|
||||||
|
L_CURLY@15..16 "{"
|
||||||
|
WHITESPACE@16..21 "\n "
|
||||||
|
FN_DEF@21..47
|
||||||
|
DEFAULT_KW@21..28 "default"
|
||||||
|
WHITESPACE@28..29 " "
|
||||||
|
UNSAFE_KW@29..35 "unsafe"
|
||||||
|
WHITESPACE@35..36 " "
|
||||||
|
FN_KW@36..38 "fn"
|
||||||
|
WHITESPACE@38..39 " "
|
||||||
|
NAME@39..42
|
||||||
|
IDENT@39..42 "foo"
|
||||||
|
PARAM_LIST@42..44
|
||||||
|
L_PAREN@42..43 "("
|
||||||
|
R_PAREN@43..44 ")"
|
||||||
|
WHITESPACE@44..45 " "
|
||||||
|
BLOCK_EXPR@45..47
|
||||||
|
L_CURLY@45..46 "{"
|
||||||
|
R_CURLY@46..47 "}"
|
||||||
|
WHITESPACE@47..48 "\n"
|
||||||
|
R_CURLY@48..49 "}"
|
||||||
|
WHITESPACE@49..50 "\n"
|
|
@ -0,0 +1,3 @@
|
||||||
|
impl T for Foo {
|
||||||
|
default unsafe fn foo() {}
|
||||||
|
}
|
Loading…
Reference in a new issue