mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-26 20:09:19 +00:00
⬆️ rust-analyzer
This commit is contained in:
parent
c1918fcb9a
commit
65e1dc4d9c
56 changed files with 2922 additions and 896 deletions
|
@ -118,6 +118,11 @@ fn opt_path_type_args(p: &mut Parser<'_>, mode: Mode) {
|
|||
match mode {
|
||||
Mode::Use => {}
|
||||
Mode::Type => {
|
||||
// test typepathfn_with_coloncolon
|
||||
// type F = Start::(Middle) -> (Middle)::End;
|
||||
if p.at(T![::]) && p.nth_at(2, T!['(']) {
|
||||
p.bump(T![::]);
|
||||
}
|
||||
// test path_fn_trait_args
|
||||
// type F = Box<Fn(i32) -> ()>;
|
||||
if p.at(T!['(']) {
|
||||
|
|
|
@ -262,33 +262,117 @@ pub enum SyntaxKind {
|
|||
use self::SyntaxKind::*;
|
||||
impl SyntaxKind {
|
||||
pub fn is_keyword(self) -> bool {
|
||||
match self {
|
||||
AS_KW | ASYNC_KW | AWAIT_KW | BOX_KW | BREAK_KW | CONST_KW | CONTINUE_KW | CRATE_KW
|
||||
| DYN_KW | ELSE_KW | ENUM_KW | EXTERN_KW | FALSE_KW | FN_KW | FOR_KW | IF_KW
|
||||
| IMPL_KW | IN_KW | LET_KW | LOOP_KW | MACRO_KW | MATCH_KW | MOD_KW | MOVE_KW
|
||||
| MUT_KW | PUB_KW | REF_KW | RETURN_KW | SELF_KW | SELF_TYPE_KW | STATIC_KW
|
||||
| STRUCT_KW | SUPER_KW | TRAIT_KW | TRUE_KW | TRY_KW | TYPE_KW | UNSAFE_KW | USE_KW
|
||||
| WHERE_KW | WHILE_KW | YIELD_KW | AUTO_KW | DEFAULT_KW | EXISTENTIAL_KW | UNION_KW
|
||||
| RAW_KW | MACRO_RULES_KW => true,
|
||||
_ => false,
|
||||
}
|
||||
matches!(
|
||||
self,
|
||||
AS_KW
|
||||
| ASYNC_KW
|
||||
| AWAIT_KW
|
||||
| BOX_KW
|
||||
| BREAK_KW
|
||||
| CONST_KW
|
||||
| CONTINUE_KW
|
||||
| CRATE_KW
|
||||
| DYN_KW
|
||||
| ELSE_KW
|
||||
| ENUM_KW
|
||||
| EXTERN_KW
|
||||
| FALSE_KW
|
||||
| FN_KW
|
||||
| FOR_KW
|
||||
| IF_KW
|
||||
| IMPL_KW
|
||||
| IN_KW
|
||||
| LET_KW
|
||||
| LOOP_KW
|
||||
| MACRO_KW
|
||||
| MATCH_KW
|
||||
| MOD_KW
|
||||
| MOVE_KW
|
||||
| MUT_KW
|
||||
| PUB_KW
|
||||
| REF_KW
|
||||
| RETURN_KW
|
||||
| SELF_KW
|
||||
| SELF_TYPE_KW
|
||||
| STATIC_KW
|
||||
| STRUCT_KW
|
||||
| SUPER_KW
|
||||
| TRAIT_KW
|
||||
| TRUE_KW
|
||||
| TRY_KW
|
||||
| TYPE_KW
|
||||
| UNSAFE_KW
|
||||
| USE_KW
|
||||
| WHERE_KW
|
||||
| WHILE_KW
|
||||
| YIELD_KW
|
||||
| AUTO_KW
|
||||
| DEFAULT_KW
|
||||
| EXISTENTIAL_KW
|
||||
| UNION_KW
|
||||
| RAW_KW
|
||||
| MACRO_RULES_KW
|
||||
)
|
||||
}
|
||||
pub fn is_punct(self) -> bool {
|
||||
match self {
|
||||
SEMICOLON | COMMA | L_PAREN | R_PAREN | L_CURLY | R_CURLY | L_BRACK | R_BRACK
|
||||
| L_ANGLE | R_ANGLE | AT | POUND | TILDE | QUESTION | DOLLAR | AMP | PIPE | PLUS
|
||||
| STAR | SLASH | CARET | PERCENT | UNDERSCORE | DOT | DOT2 | DOT3 | DOT2EQ | COLON
|
||||
| COLON2 | EQ | EQ2 | FAT_ARROW | BANG | NEQ | MINUS | THIN_ARROW | LTEQ | GTEQ
|
||||
| PLUSEQ | MINUSEQ | PIPEEQ | AMPEQ | CARETEQ | SLASHEQ | STAREQ | PERCENTEQ | AMP2
|
||||
| PIPE2 | SHL | SHR | SHLEQ | SHREQ => true,
|
||||
_ => false,
|
||||
}
|
||||
matches!(
|
||||
self,
|
||||
SEMICOLON
|
||||
| COMMA
|
||||
| L_PAREN
|
||||
| R_PAREN
|
||||
| L_CURLY
|
||||
| R_CURLY
|
||||
| L_BRACK
|
||||
| R_BRACK
|
||||
| L_ANGLE
|
||||
| R_ANGLE
|
||||
| AT
|
||||
| POUND
|
||||
| TILDE
|
||||
| QUESTION
|
||||
| DOLLAR
|
||||
| AMP
|
||||
| PIPE
|
||||
| PLUS
|
||||
| STAR
|
||||
| SLASH
|
||||
| CARET
|
||||
| PERCENT
|
||||
| UNDERSCORE
|
||||
| DOT
|
||||
| DOT2
|
||||
| DOT3
|
||||
| DOT2EQ
|
||||
| COLON
|
||||
| COLON2
|
||||
| EQ
|
||||
| EQ2
|
||||
| FAT_ARROW
|
||||
| BANG
|
||||
| NEQ
|
||||
| MINUS
|
||||
| THIN_ARROW
|
||||
| LTEQ
|
||||
| GTEQ
|
||||
| PLUSEQ
|
||||
| MINUSEQ
|
||||
| PIPEEQ
|
||||
| AMPEQ
|
||||
| CARETEQ
|
||||
| SLASHEQ
|
||||
| STAREQ
|
||||
| PERCENTEQ
|
||||
| AMP2
|
||||
| PIPE2
|
||||
| SHL
|
||||
| SHR
|
||||
| SHLEQ
|
||||
| SHREQ
|
||||
)
|
||||
}
|
||||
pub fn is_literal(self) -> bool {
|
||||
match self {
|
||||
INT_NUMBER | FLOAT_NUMBER | CHAR | BYTE | STRING | BYTE_STRING => true,
|
||||
_ => false,
|
||||
}
|
||||
matches!(self, INT_NUMBER | FLOAT_NUMBER | CHAR | BYTE | STRING | BYTE_STRING)
|
||||
}
|
||||
pub fn from_keyword(ident: &str) -> Option<SyntaxKind> {
|
||||
let kw = match ident {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue