@@ -346,12 +346,9 @@ fn emit_function(
346
346
trap : & mut TrapFile ,
347
347
function : ra_ap_hir_def:: FunctionId ,
348
348
visibility : Visibility ,
349
- ) -> Vec < trap:: Label < generated:: Item > > {
350
- let mut items = Vec :: new ( ) ;
351
- if let Some ( type_) = db. value_ty ( function. into ( ) ) {
352
- items. push ( const_or_function ( db, name, trap, type_, visibility) ) ;
353
- }
354
- items
349
+ ) -> Option < trap:: Label < generated:: Item > > {
350
+ db. value_ty ( function. into ( ) )
351
+ . map ( |type_| const_or_function ( db, name, trap, type_, visibility) )
355
352
}
356
353
357
354
fn emit_const (
@@ -360,8 +357,7 @@ fn emit_const(
360
357
trap : & mut TrapFile ,
361
358
konst : ra_ap_hir_def:: ConstId ,
362
359
visibility : Visibility ,
363
- ) -> Vec < trap:: Label < generated:: Item > > {
364
- let mut items = Vec :: new ( ) ;
360
+ ) -> Option < trap:: Label < generated:: Item > > {
365
361
let type_ = db. value_ty ( konst. into ( ) ) ;
366
362
let type_repr = type_. and_then ( |type_| emit_hir_ty ( trap, db, type_. skip_binders ( ) ) ) ;
367
363
let name = Some ( trap. emit ( generated:: Name {
@@ -370,7 +366,7 @@ fn emit_const(
370
366
} ) ) ;
371
367
let konst = db. const_data ( konst) ;
372
368
let visibility = emit_visibility ( db, trap, visibility) ;
373
- items . push (
369
+ Some (
374
370
trap. emit ( generated:: Const {
375
371
id : trap:: TrapId :: Star ,
376
372
name,
@@ -382,8 +378,7 @@ fn emit_const(
382
378
visibility,
383
379
} )
384
380
. into ( ) ,
385
- ) ;
386
- items
381
+ )
387
382
}
388
383
389
384
fn emit_static (
@@ -392,8 +387,7 @@ fn emit_static(
392
387
trap : & mut TrapFile ,
393
388
statik : ra_ap_hir_def:: StaticId ,
394
389
visibility : Visibility ,
395
- ) -> Vec < trap:: Label < generated:: Item > > {
396
- let mut items = Vec :: new ( ) ;
390
+ ) -> Option < trap:: Label < generated:: Item > > {
397
391
let type_ = db. value_ty ( statik. into ( ) ) ;
398
392
let type_repr = type_. and_then ( |type_| emit_hir_ty ( trap, db, type_. skip_binders ( ) ) ) ;
399
393
let name = Some ( trap. emit ( generated:: Name {
@@ -402,7 +396,7 @@ fn emit_static(
402
396
} ) ) ;
403
397
let statik = db. static_data ( statik) ;
404
398
let visibility = emit_visibility ( db, trap, visibility) ;
405
- items . push (
399
+ Some (
406
400
trap. emit ( generated:: Static {
407
401
id : trap:: TrapId :: Star ,
408
402
name,
@@ -415,8 +409,7 @@ fn emit_static(
415
409
is_unsafe : statik. has_unsafe_kw ( ) ,
416
410
} )
417
411
. into ( ) ,
418
- ) ;
419
- items
412
+ )
420
413
}
421
414
422
415
fn emit_generic_param_list (
@@ -517,9 +510,7 @@ fn emit_adt(
517
510
trap : & mut TrapFile ,
518
511
adt_id : ra_ap_hir_def:: AdtId ,
519
512
visibility : Visibility ,
520
- ) -> Vec < trap:: Label < generated:: Item > > {
521
- let mut items = Vec :: new ( ) ;
522
-
513
+ ) -> Option < trap:: Label < generated:: Item > > {
523
514
match adt_id {
524
515
ra_ap_hir_def:: AdtId :: StructId ( struct_id) => {
525
516
let name = Some ( trap. emit ( generated:: Name {
@@ -529,7 +520,7 @@ fn emit_adt(
529
520
let field_list = emit_variant_data ( trap, db, struct_id. into ( ) ) . into ( ) ;
530
521
let visibility = emit_visibility ( db, trap, visibility) ;
531
522
let generic_param_list = emit_generic_param_list ( trap, db, adt_id. into ( ) ) ;
532
- items . push (
523
+ Some (
533
524
trap. emit ( generated:: Struct {
534
525
id : trap:: TrapId :: Star ,
535
526
name,
@@ -540,7 +531,7 @@ fn emit_adt(
540
531
where_clause : None ,
541
532
} )
542
533
. into ( ) ,
543
- ) ;
534
+ )
544
535
}
545
536
ra_ap_hir_def:: AdtId :: EnumId ( enum_id) => {
546
537
let data = db. enum_variants ( enum_id) ;
@@ -574,7 +565,7 @@ fn emit_adt(
574
565
} ) ) ;
575
566
let visibility = emit_visibility ( db, trap, visibility) ;
576
567
let generic_param_list = emit_generic_param_list ( trap, db, adt_id. into ( ) ) ;
577
- items . push (
568
+ Some (
578
569
trap. emit ( generated:: Enum {
579
570
id : trap:: TrapId :: Star ,
580
571
name,
@@ -585,7 +576,7 @@ fn emit_adt(
585
576
where_clause : None ,
586
577
} )
587
578
. into ( ) ,
588
- ) ;
579
+ )
589
580
}
590
581
ra_ap_hir_def:: AdtId :: UnionId ( union_id) => {
591
582
let name = Some ( trap. emit ( generated:: Name {
@@ -595,7 +586,7 @@ fn emit_adt(
595
586
let struct_field_list = emit_variant_data ( trap, db, union_id. into ( ) ) . into ( ) ;
596
587
let visibility = emit_visibility ( db, trap, visibility) ;
597
588
let generic_param_list = emit_generic_param_list ( trap, db, adt_id. into ( ) ) ;
598
- items . push (
589
+ Some (
599
590
trap. emit ( generated:: Union {
600
591
id : trap:: TrapId :: Star ,
601
592
name,
@@ -606,10 +597,9 @@ fn emit_adt(
606
597
where_clause : None ,
607
598
} )
608
599
. into ( ) ,
609
- ) ;
600
+ )
610
601
}
611
602
}
612
- items
613
603
}
614
604
615
605
fn emit_trait (
@@ -618,8 +608,7 @@ fn emit_trait(
618
608
trap : & mut TrapFile ,
619
609
trait_id : ra_ap_hir_def:: TraitId ,
620
610
visibility : Visibility ,
621
- ) -> Vec < trap:: Label < generated:: Item > > {
622
- let mut items = Vec :: new ( ) ;
611
+ ) -> Option < trap:: Label < generated:: Item > > {
623
612
let trait_items = db. trait_items ( trait_id) ;
624
613
let assoc_items: Vec < trap:: Label < generated:: AssocItem > > = trait_items
625
614
. items
@@ -696,7 +685,7 @@ fn emit_trait(
696
685
} ) ) ;
697
686
let visibility = emit_visibility ( db, trap, visibility) ;
698
687
let generic_param_list = emit_generic_param_list ( trap, db, trait_id. into ( ) ) ;
699
- items . push (
688
+ Some (
700
689
trap. emit ( generated:: Trait {
701
690
id : trap:: TrapId :: Star ,
702
691
name,
@@ -710,8 +699,7 @@ fn emit_trait(
710
699
where_clause : None ,
711
700
} )
712
701
. into ( ) ,
713
- ) ;
714
- items
702
+ )
715
703
}
716
704
717
705
fn emit_module_impls (
0 commit comments