@@ -453,12 +453,23 @@ impl Variant {
453
453
pub struct AssocItemList {
454
454
pub ( crate ) syntax : SyntaxNode ,
455
455
}
456
+ impl ast:: AttrsOwner for AssocItemList { }
456
457
impl AssocItemList {
457
458
pub fn l_curly_token ( & self ) -> Option < SyntaxToken > { support:: token ( & self . syntax , T ! [ '{' ] ) }
458
459
pub fn assoc_items ( & self ) -> AstChildren < AssocItem > { support:: children ( & self . syntax ) }
459
460
pub fn r_curly_token ( & self ) -> Option < SyntaxToken > { support:: token ( & self . syntax , T ! [ '}' ] ) }
460
461
}
461
462
#[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
463
+ pub struct ExternItemList {
464
+ pub ( crate ) syntax : SyntaxNode ,
465
+ }
466
+ impl ast:: AttrsOwner for ExternItemList { }
467
+ impl ExternItemList {
468
+ pub fn l_curly_token ( & self ) -> Option < SyntaxToken > { support:: token ( & self . syntax , T ! [ '{' ] ) }
469
+ pub fn extern_items ( & self ) -> AstChildren < ExternItem > { support:: children ( & self . syntax ) }
470
+ pub fn r_curly_token ( & self ) -> Option < SyntaxToken > { support:: token ( & self . syntax , T ! [ '}' ] ) }
471
+ }
472
+ #[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
462
473
pub struct ParenType {
463
474
pub ( crate ) syntax : SyntaxNode ,
464
475
}
@@ -1254,15 +1265,6 @@ impl ConstArg {
1254
1265
pub fn block_expr ( & self ) -> Option < BlockExpr > { support:: child ( & self . syntax ) }
1255
1266
}
1256
1267
#[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
1257
- pub struct ExternItemList {
1258
- pub ( crate ) syntax : SyntaxNode ,
1259
- }
1260
- impl ExternItemList {
1261
- pub fn l_curly_token ( & self ) -> Option < SyntaxToken > { support:: token ( & self . syntax , T ! [ '{' ] ) }
1262
- pub fn extern_items ( & self ) -> AstChildren < ExternItem > { support:: children ( & self . syntax ) }
1263
- pub fn r_curly_token ( & self ) -> Option < SyntaxToken > { support:: token ( & self . syntax , T ! [ '}' ] ) }
1264
- }
1265
- #[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
1266
1268
pub struct MetaItem {
1267
1269
pub ( crate ) syntax : SyntaxNode ,
1268
1270
}
@@ -1373,6 +1375,14 @@ pub enum AssocItem {
1373
1375
impl ast:: AttrsOwner for AssocItem { }
1374
1376
impl ast:: NameOwner for AssocItem { }
1375
1377
#[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
1378
+ pub enum ExternItem {
1379
+ Fn ( Fn ) ,
1380
+ Static ( Static ) ,
1381
+ MacroCall ( MacroCall ) ,
1382
+ }
1383
+ impl ast:: AttrsOwner for ExternItem { }
1384
+ impl ast:: NameOwner for ExternItem { }
1385
+ #[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
1376
1386
pub enum Stmt {
1377
1387
LetStmt ( LetStmt ) ,
1378
1388
ExprStmt ( ExprStmt ) ,
@@ -1384,14 +1394,6 @@ pub enum AttrInput {
1384
1394
TokenTree ( TokenTree ) ,
1385
1395
}
1386
1396
#[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
1387
- pub enum ExternItem {
1388
- Fn ( Fn ) ,
1389
- Static ( Static ) ,
1390
- }
1391
- impl ast:: AttrsOwner for ExternItem { }
1392
- impl ast:: NameOwner for ExternItem { }
1393
- impl ast:: VisibilityOwner for ExternItem { }
1394
- #[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
1395
1397
pub enum AdtDef {
1396
1398
Struct ( Struct ) ,
1397
1399
Enum ( Enum ) ,
@@ -1841,6 +1843,17 @@ impl AstNode for AssocItemList {
1841
1843
}
1842
1844
fn syntax ( & self ) -> & SyntaxNode { & self . syntax }
1843
1845
}
1846
+ impl AstNode for ExternItemList {
1847
+ fn can_cast ( kind : SyntaxKind ) -> bool { kind == EXTERN_ITEM_LIST }
1848
+ fn cast ( syntax : SyntaxNode ) -> Option < Self > {
1849
+ if Self :: can_cast ( syntax. kind ( ) ) {
1850
+ Some ( Self { syntax } )
1851
+ } else {
1852
+ None
1853
+ }
1854
+ }
1855
+ fn syntax ( & self ) -> & SyntaxNode { & self . syntax }
1856
+ }
1844
1857
impl AstNode for ParenType {
1845
1858
fn can_cast ( kind : SyntaxKind ) -> bool { kind == PAREN_TYPE }
1846
1859
fn cast ( syntax : SyntaxNode ) -> Option < Self > {
@@ -2754,17 +2767,6 @@ impl AstNode for ConstArg {
2754
2767
}
2755
2768
fn syntax ( & self ) -> & SyntaxNode { & self . syntax }
2756
2769
}
2757
- impl AstNode for ExternItemList {
2758
- fn can_cast ( kind : SyntaxKind ) -> bool { kind == EXTERN_ITEM_LIST }
2759
- fn cast ( syntax : SyntaxNode ) -> Option < Self > {
2760
- if Self :: can_cast ( syntax. kind ( ) ) {
2761
- Some ( Self { syntax } )
2762
- } else {
2763
- None
2764
- }
2765
- }
2766
- fn syntax ( & self ) -> & SyntaxNode { & self . syntax }
2767
- }
2768
2770
impl AstNode for MetaItem {
2769
2771
fn can_cast ( kind : SyntaxKind ) -> bool { kind == META_ITEM }
2770
2772
fn cast ( syntax : SyntaxNode ) -> Option < Self > {
@@ -3290,6 +3292,39 @@ impl AstNode for AssocItem {
3290
3292
}
3291
3293
}
3292
3294
}
3295
+ impl From < Fn > for ExternItem {
3296
+ fn from ( node : Fn ) -> ExternItem { ExternItem :: Fn ( node) }
3297
+ }
3298
+ impl From < Static > for ExternItem {
3299
+ fn from ( node : Static ) -> ExternItem { ExternItem :: Static ( node) }
3300
+ }
3301
+ impl From < MacroCall > for ExternItem {
3302
+ fn from ( node : MacroCall ) -> ExternItem { ExternItem :: MacroCall ( node) }
3303
+ }
3304
+ impl AstNode for ExternItem {
3305
+ fn can_cast ( kind : SyntaxKind ) -> bool {
3306
+ match kind {
3307
+ FN | STATIC | MACRO_CALL => true ,
3308
+ _ => false ,
3309
+ }
3310
+ }
3311
+ fn cast ( syntax : SyntaxNode ) -> Option < Self > {
3312
+ let res = match syntax. kind ( ) {
3313
+ FN => ExternItem :: Fn ( Fn { syntax } ) ,
3314
+ STATIC => ExternItem :: Static ( Static { syntax } ) ,
3315
+ MACRO_CALL => ExternItem :: MacroCall ( MacroCall { syntax } ) ,
3316
+ _ => return None ,
3317
+ } ;
3318
+ Some ( res)
3319
+ }
3320
+ fn syntax ( & self ) -> & SyntaxNode {
3321
+ match self {
3322
+ ExternItem :: Fn ( it) => & it. syntax ,
3323
+ ExternItem :: Static ( it) => & it. syntax ,
3324
+ ExternItem :: MacroCall ( it) => & it. syntax ,
3325
+ }
3326
+ }
3327
+ }
3293
3328
impl From < LetStmt > for Stmt {
3294
3329
fn from ( node : LetStmt ) -> Stmt { Stmt :: LetStmt ( node) }
3295
3330
}
@@ -3346,34 +3381,6 @@ impl AstNode for AttrInput {
3346
3381
}
3347
3382
}
3348
3383
}
3349
- impl From < Fn > for ExternItem {
3350
- fn from ( node : Fn ) -> ExternItem { ExternItem :: Fn ( node) }
3351
- }
3352
- impl From < Static > for ExternItem {
3353
- fn from ( node : Static ) -> ExternItem { ExternItem :: Static ( node) }
3354
- }
3355
- impl AstNode for ExternItem {
3356
- fn can_cast ( kind : SyntaxKind ) -> bool {
3357
- match kind {
3358
- FN | STATIC => true ,
3359
- _ => false ,
3360
- }
3361
- }
3362
- fn cast ( syntax : SyntaxNode ) -> Option < Self > {
3363
- let res = match syntax. kind ( ) {
3364
- FN => ExternItem :: Fn ( Fn { syntax } ) ,
3365
- STATIC => ExternItem :: Static ( Static { syntax } ) ,
3366
- _ => return None ,
3367
- } ;
3368
- Some ( res)
3369
- }
3370
- fn syntax ( & self ) -> & SyntaxNode {
3371
- match self {
3372
- ExternItem :: Fn ( it) => & it. syntax ,
3373
- ExternItem :: Static ( it) => & it. syntax ,
3374
- }
3375
- }
3376
- }
3377
3384
impl From < Struct > for AdtDef {
3378
3385
fn from ( node : Struct ) -> AdtDef { AdtDef :: Struct ( node) }
3379
3386
}
@@ -3437,17 +3444,17 @@ impl std::fmt::Display for AssocItem {
3437
3444
std:: fmt:: Display :: fmt ( self . syntax ( ) , f)
3438
3445
}
3439
3446
}
3440
- impl std:: fmt:: Display for Stmt {
3447
+ impl std:: fmt:: Display for ExternItem {
3441
3448
fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
3442
3449
std:: fmt:: Display :: fmt ( self . syntax ( ) , f)
3443
3450
}
3444
3451
}
3445
- impl std:: fmt:: Display for AttrInput {
3452
+ impl std:: fmt:: Display for Stmt {
3446
3453
fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
3447
3454
std:: fmt:: Display :: fmt ( self . syntax ( ) , f)
3448
3455
}
3449
3456
}
3450
- impl std:: fmt:: Display for ExternItem {
3457
+ impl std:: fmt:: Display for AttrInput {
3451
3458
fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
3452
3459
std:: fmt:: Display :: fmt ( self . syntax ( ) , f)
3453
3460
}
@@ -3657,6 +3664,11 @@ impl std::fmt::Display for AssocItemList {
3657
3664
std:: fmt:: Display :: fmt ( self . syntax ( ) , f)
3658
3665
}
3659
3666
}
3667
+ impl std:: fmt:: Display for ExternItemList {
3668
+ fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
3669
+ std:: fmt:: Display :: fmt ( self . syntax ( ) , f)
3670
+ }
3671
+ }
3660
3672
impl std:: fmt:: Display for ParenType {
3661
3673
fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
3662
3674
std:: fmt:: Display :: fmt ( self . syntax ( ) , f)
@@ -4072,11 +4084,6 @@ impl std::fmt::Display for ConstArg {
4072
4084
std:: fmt:: Display :: fmt ( self . syntax ( ) , f)
4073
4085
}
4074
4086
}
4075
- impl std:: fmt:: Display for ExternItemList {
4076
- fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
4077
- std:: fmt:: Display :: fmt ( self . syntax ( ) , f)
4078
- }
4079
- }
4080
4087
impl std:: fmt:: Display for MetaItem {
4081
4088
fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
4082
4089
std:: fmt:: Display :: fmt ( self . syntax ( ) , f)
0 commit comments