@@ -15,11 +15,10 @@ pub struct Error {
15
15
}
16
16
17
17
impl Builtin {
18
- pub fn check_arguments < ' a , I > ( & self , actuals : I ) -> Result < ( ) , Error >
19
- where I : Iterator < Item = & ' a crate :: TypeInner > + Clone ,
18
+ pub fn check_arguments ( & self , actuals : & [ & crate :: TypeInner ] ) -> Result < ( ) , Error >
20
19
{
21
20
eprintln ! ( "JIMB: check_arguments" ) ;
22
- let actuals = actuals. into_iter ( ) ;
21
+ let actuals = actuals. iter ( ) . cloned ( ) ;
23
22
24
23
// First, make our own copy of the type variables, with their
25
24
// initial, unconstrained type sets.
@@ -475,10 +474,10 @@ fn unary_vec_or_scalar_numeric_scalar() {
475
474
use crate :: { Scalar , TypeInner } ;
476
475
let builtin = b ! ( ( T ) -> T where ( T : ( vecN or scalar<numeric>) ) ) ;
477
476
478
- let ok = builtin. check_arguments ( [ TypeInner :: Scalar ( Scalar :: U32 ) ] . iter ( ) ) ;
477
+ let ok = builtin. check_arguments ( & [ & TypeInner :: Scalar ( Scalar :: U32 ) ] ) ;
479
478
assert ! ( ok. is_ok( ) ) ;
480
479
481
- let err = builtin. check_arguments ( [ TypeInner :: Scalar ( Scalar :: BOOL ) ] . iter ( ) ) ;
480
+ let err = builtin. check_arguments ( & [ & TypeInner :: Scalar ( Scalar :: BOOL ) ] ) ;
482
481
assert ! ( err. is_err( ) ) ;
483
482
}
484
483
@@ -487,10 +486,10 @@ fn unary_vec_or_scalar_numeric_vector() {
487
486
use crate :: { Scalar , TypeInner , VectorSize } ;
488
487
let builtin = b ! ( ( T ) -> T where ( T : ( vecN or scalar<numeric>) ) ) ;
489
488
490
- let ok = builtin. check_arguments ( [ TypeInner :: Vector { size : VectorSize :: Tri , scalar : Scalar :: F64 } ] . iter ( ) ) ;
489
+ let ok = builtin. check_arguments ( & [ & TypeInner :: Vector { size : VectorSize :: Tri , scalar : Scalar :: F64 } ] ) ;
491
490
assert ! ( ok. is_ok( ) ) ;
492
491
493
- let err = builtin. check_arguments ( [ TypeInner :: Vector { size : VectorSize :: Tri , scalar : Scalar :: BOOL } ] . iter ( ) ) ;
492
+ let err = builtin. check_arguments ( & [ & TypeInner :: Vector { size : VectorSize :: Tri , scalar : Scalar :: BOOL } ] ) ;
494
493
assert ! ( err. is_err( ) ) ;
495
494
}
496
495
@@ -499,11 +498,11 @@ fn unary_vec_or_scalar_numeric_matrix() {
499
498
use crate :: { Scalar , TypeInner , VectorSize } ;
500
499
let builtin = b ! ( ( T ) -> T where ( T : ( vecN or scalar<numeric>) ) ) ;
501
500
502
- let err = builtin. check_arguments ( [ TypeInner :: Matrix {
501
+ let err = builtin. check_arguments ( & [ & TypeInner :: Matrix {
503
502
columns : VectorSize :: Tri ,
504
503
rows : VectorSize :: Tri ,
505
504
scalar : Scalar :: F32 ,
506
- } ] . iter ( ) ) ;
505
+ } ] ) ;
507
506
assert ! ( err. is_err( ) ) ;
508
507
}
509
508
@@ -515,61 +514,61 @@ fn binary_vec_or_scalar_numeric_scalar() {
515
514
516
515
let builtin = b ! ( ( T , T ) -> T where ( T : ( vecN or scalar<numeric>) ) ) ;
517
516
518
- let ok = builtin. check_arguments ( [
519
- TypeInner :: Scalar ( Scalar :: F32 ) ,
520
- TypeInner :: Scalar ( Scalar :: F32 ) ,
521
- ] . iter ( ) ) ;
517
+ let ok = builtin. check_arguments ( & [
518
+ & TypeInner :: Scalar ( Scalar :: F32 ) ,
519
+ & TypeInner :: Scalar ( Scalar :: F32 ) ,
520
+ ] ) ;
522
521
assert ! ( ok. is_ok( ) ) ;
523
522
524
- let ok = builtin. check_arguments ( [
525
- TypeInner :: Scalar ( Scalar :: ABSTRACT_FLOAT ) ,
526
- TypeInner :: Scalar ( Scalar :: F32 ) ,
527
- ] . iter ( ) ) ;
523
+ let ok = builtin. check_arguments ( & [
524
+ & TypeInner :: Scalar ( Scalar :: ABSTRACT_FLOAT ) ,
525
+ & TypeInner :: Scalar ( Scalar :: F32 ) ,
526
+ ] ) ;
528
527
assert ! ( ok. is_ok( ) ) ;
529
528
530
- let ok = builtin. check_arguments ( [
531
- TypeInner :: Scalar ( Scalar :: F32 ) ,
532
- TypeInner :: Scalar ( Scalar :: ABSTRACT_INT ) ,
533
- ] . iter ( ) ) ;
529
+ let ok = builtin. check_arguments ( & [
530
+ & TypeInner :: Scalar ( Scalar :: F32 ) ,
531
+ & TypeInner :: Scalar ( Scalar :: ABSTRACT_INT ) ,
532
+ ] ) ;
534
533
assert ! ( ok. is_ok( ) ) ;
535
534
536
- let ok = builtin. check_arguments ( [
537
- TypeInner :: Scalar ( Scalar :: U32 ) ,
538
- TypeInner :: Scalar ( Scalar :: U32 ) ,
539
- ] . iter ( ) ) ;
535
+ let ok = builtin. check_arguments ( & [
536
+ & TypeInner :: Scalar ( Scalar :: U32 ) ,
537
+ & TypeInner :: Scalar ( Scalar :: U32 ) ,
538
+ ] ) ;
540
539
assert ! ( ok. is_ok( ) ) ;
541
540
542
- let ok = builtin. check_arguments ( [
543
- TypeInner :: Scalar ( Scalar :: U32 ) ,
544
- TypeInner :: Scalar ( Scalar :: ABSTRACT_INT ) ,
545
- ] . iter ( ) ) ;
541
+ let ok = builtin. check_arguments ( & [
542
+ & TypeInner :: Scalar ( Scalar :: U32 ) ,
543
+ & TypeInner :: Scalar ( Scalar :: ABSTRACT_INT ) ,
544
+ ] ) ;
546
545
assert ! ( ok. is_ok( ) ) ;
547
546
548
- let ok = builtin. check_arguments ( [
549
- TypeInner :: Scalar ( Scalar :: ABSTRACT_INT ) ,
550
- TypeInner :: Scalar ( Scalar :: U32 ) ,
551
- ] . iter ( ) ) ;
547
+ let ok = builtin. check_arguments ( & [
548
+ & TypeInner :: Scalar ( Scalar :: ABSTRACT_INT ) ,
549
+ & TypeInner :: Scalar ( Scalar :: U32 ) ,
550
+ ] ) ;
552
551
assert ! ( ok. is_ok( ) ) ;
553
552
554
553
// Not numeric.
555
- let err = builtin. check_arguments ( [
556
- TypeInner :: Scalar ( Scalar :: BOOL ) ,
557
- TypeInner :: Scalar ( Scalar :: BOOL ) ,
558
- ] . iter ( ) ) ;
554
+ let err = builtin. check_arguments ( & [
555
+ & TypeInner :: Scalar ( Scalar :: BOOL ) ,
556
+ & TypeInner :: Scalar ( Scalar :: BOOL ) ,
557
+ ] ) ;
559
558
assert ! ( err. is_err( ) ) ;
560
559
561
560
// Different floating-point types.
562
- let err = builtin. check_arguments ( [
563
- TypeInner :: Scalar ( Scalar :: F32 ) ,
564
- TypeInner :: Scalar ( Scalar :: F64 ) ,
565
- ] . iter ( ) ) ;
561
+ let err = builtin. check_arguments ( & [
562
+ & TypeInner :: Scalar ( Scalar :: F32 ) ,
563
+ & TypeInner :: Scalar ( Scalar :: F64 ) ,
564
+ ] ) ;
566
565
assert ! ( err. is_err( ) ) ;
567
566
568
567
// Different constructor.
569
- let err = builtin. check_arguments ( [
570
- TypeInner :: Scalar ( Scalar :: F32 ) ,
571
- TypeInner :: Vector { size : Vs :: Bi , scalar : Scalar :: F32 } ,
572
- ] . iter ( ) ) ;
568
+ let err = builtin. check_arguments ( & [
569
+ & TypeInner :: Scalar ( Scalar :: F32 ) ,
570
+ & TypeInner :: Vector { size : Vs :: Bi , scalar : Scalar :: F32 } ,
571
+ ] ) ;
573
572
assert ! ( err. is_err( ) ) ;
574
573
}
575
574
@@ -580,30 +579,30 @@ fn binary_vec_or_scalar_numeric_vector() {
580
579
581
580
let builtin = b ! ( ( T , T ) -> T where ( T : ( vecN or scalar<numeric>) ) ) ;
582
581
583
- let ok = builtin. check_arguments ( [
584
- TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F32 } ,
585
- TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F32 } ,
586
- ] . iter ( ) ) ;
582
+ let ok = builtin. check_arguments ( & [ &
583
+ & TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F32 } ,
584
+ & TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F32 } ,
585
+ ] ) ;
587
586
assert ! ( ok. is_ok( ) ) ;
588
587
589
588
// Different vector sizes.
590
- let err = builtin. check_arguments ( [
591
- TypeInner :: Vector { size : Vs :: Bi , scalar : Scalar :: F32 } ,
592
- TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F32 } ,
593
- ] . iter ( ) ) ;
589
+ let err = builtin. check_arguments ( & [ &
590
+ & TypeInner :: Vector { size : Vs :: Bi , scalar : Scalar :: F32 } ,
591
+ & TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F32 } ,
592
+ ] ) ;
594
593
assert ! ( err. is_err( ) ) ;
595
594
596
595
// Different vector scalars.
597
- let err = builtin. check_arguments ( [
598
- TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F32 } ,
599
- TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F64 } ,
600
- ] . iter ( ) ) ;
596
+ let err = builtin. check_arguments ( & [ &
597
+ & TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F32 } ,
598
+ & TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F64 } ,
599
+ ] ) ;
601
600
assert ! ( err. is_err( ) ) ;
602
601
603
602
// Mix of vectors and scalars.
604
- let err = builtin. check_arguments ( [
605
- TypeInner :: Scalar ( Scalar :: F32 ) ,
606
- TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F32 } ,
607
- ] . iter ( ) ) ;
603
+ let err = builtin. check_arguments ( & [ &
604
+ & TypeInner :: Scalar ( Scalar :: F32 ) ,
605
+ & TypeInner :: Vector { size : Vs :: Tri , scalar : Scalar :: F32 } ,
606
+ ] ) ;
608
607
assert ! ( err. is_err( ) ) ;
609
608
}
0 commit comments