@@ -518,6 +518,29 @@ fn count_ty_params(@t ty) -> uint {
518
518
ret _vec. len[ ast. def_id] ( * param_ids) ;
519
519
}
520
520
521
+ // Type accessors for substructures of types
522
+
523
+ fn ty_fn_args( @t fty) -> vec[ arg] {
524
+ alt ( fty. struct ) {
525
+ case ( ty. ty_fn( ?a, _) ) { ret a; }
526
+ }
527
+ }
528
+
529
+ fn ty_fn_ret( @t fty) -> @t {
530
+ alt ( fty. struct ) {
531
+ case ( ty. ty_fn( _, ?r) ) { ret r; }
532
+ }
533
+ }
534
+
535
+ fn is_fn_ty( @t fty) -> bool {
536
+ alt ( fty. struct ) {
537
+ case ( ty. ty_fn( _, _) ) { ret true; }
538
+ case ( _) { ret false; }
539
+ }
540
+ ret false;
541
+ }
542
+
543
+
521
544
// Type accessors for AST nodes
522
545
523
546
fn stmt_ty( @ast. stmt s) -> @t {
@@ -552,6 +575,7 @@ fn expr_ty(@ast.expr expr) -> @t {
552
575
case ( ast. expr_vec( _, ?ann) ) { ret ann_to_type( ann) ; }
553
576
case ( ast. expr_tup( _, ?ann) ) { ret ann_to_type( ann) ; }
554
577
case ( ast. expr_rec( _, ?ann) ) { ret ann_to_type( ann) ; }
578
+ case ( ast. expr_bind( _, _, ?ann) ) { ret ann_to_type( ann) ; }
555
579
case ( ast. expr_call( _, _, ?ann) ) { ret ann_to_type( ann) ; }
556
580
case ( ast. expr_binary( _, _, _, ?ann) ) { ret ann_to_type( ann) ; }
557
581
case ( ast. expr_unary( _, _, ?ann) ) { ret ann_to_type( ann) ; }
0 commit comments