@@ -430,6 +430,13 @@ pub trait ImplicitPromote<RHS> {
430
430
type Output : HasAfEnum ;
431
431
}
432
432
433
+ impl < T > ImplicitPromote < T > for T
434
+ where
435
+ T : HasAfEnum ,
436
+ {
437
+ type Output = T ;
438
+ }
439
+
433
440
macro_rules! implicit {
434
441
[ $implType: ident, $rhsType: ident => $outType: ident] => (
435
442
impl ImplicitPromote < $rhsType > for $implType {
@@ -443,7 +450,6 @@ macro_rules! implicit {
443
450
//
444
451
445
452
//LHS is Complex double
446
- implicit ! ( c64, c64 => c64) ;
447
453
implicit ! ( c64, c32 => c64) ;
448
454
implicit ! ( c64, f64 => c64) ;
449
455
implicit ! ( c64, f32 => c64) ;
@@ -458,7 +464,6 @@ implicit!(c64, u8 => c64);
458
464
459
465
//LHS is Complex float
460
466
implicit ! ( c32, c64 => c64) ;
461
- implicit ! ( c32, c32 => c32) ;
462
467
implicit ! ( c32, f64 => c64) ;
463
468
implicit ! ( c32, f32 => c32) ;
464
469
implicit ! ( c32, i64 => c32) ;
@@ -473,7 +478,6 @@ implicit!(c32, u8 => c32);
473
478
//LHS is 64-bit floating point
474
479
implicit ! ( f64 , c64 => c64) ;
475
480
implicit ! ( f64 , c32 => c64) ;
476
- implicit ! ( f64 , f64 => f64 ) ;
477
481
implicit ! ( f64 , f32 => f64 ) ;
478
482
implicit ! ( f64 , i64 => f64 ) ;
479
483
implicit ! ( f64 , u64 => f64 ) ;
@@ -488,7 +492,6 @@ implicit!(f64, u8 => f64);
488
492
implicit ! ( f32 , c64 => c64) ;
489
493
implicit ! ( f32 , c32 => c32) ;
490
494
implicit ! ( f32 , f64 => f64 ) ;
491
- implicit ! ( f32 , f32 => f32 ) ;
492
495
implicit ! ( f32 , i64 => f32 ) ;
493
496
implicit ! ( f32 , u64 => f32 ) ;
494
497
implicit ! ( f32 , i32 => f32 ) ;
@@ -503,7 +506,6 @@ implicit!(i64, c64 => c64);
503
506
implicit ! ( i64 , c32 => c32) ;
504
507
implicit ! ( i64 , f64 => f64 ) ;
505
508
implicit ! ( i64 , f32 => f32 ) ;
506
- implicit ! ( i64 , i64 => i64 ) ;
507
509
implicit ! ( i64 , u64 => u64 ) ;
508
510
implicit ! ( i64 , i32 => i64 ) ;
509
511
implicit ! ( i64 , u32 => i64 ) ;
@@ -518,7 +520,6 @@ implicit!(u64, c32 => c32);
518
520
implicit ! ( u64 , f64 => f64 ) ;
519
521
implicit ! ( u64 , f32 => f32 ) ;
520
522
implicit ! ( u64 , i64 => u64 ) ;
521
- implicit ! ( u64 , u64 => u64 ) ;
522
523
implicit ! ( u64 , i32 => u64 ) ;
523
524
implicit ! ( u64 , u32 => u64 ) ;
524
525
implicit ! ( u64 , i16 => u64 ) ;
@@ -533,7 +534,6 @@ implicit!(i32, f64 => f64);
533
534
implicit ! ( i32 , f32 => f32 ) ;
534
535
implicit ! ( i32 , i64 => i64 ) ;
535
536
implicit ! ( i32 , u64 => u64 ) ;
536
- implicit ! ( i32 , i32 => i32 ) ;
537
537
implicit ! ( i32 , u32 => u32 ) ;
538
538
implicit ! ( i32 , i16 => i32 ) ;
539
539
implicit ! ( i32 , u16 => i32 ) ;
@@ -548,7 +548,6 @@ implicit!(u32, f32 => f32);
548
548
implicit ! ( u32 , i64 => i64 ) ;
549
549
implicit ! ( u32 , u64 => u64 ) ;
550
550
implicit ! ( u32 , i32 => u32 ) ;
551
- implicit ! ( u32 , u32 => u32 ) ;
552
551
implicit ! ( u32 , i16 => u32 ) ;
553
552
implicit ! ( u32 , u16 => u32 ) ;
554
553
implicit ! ( u32 , bool => u32 ) ;
@@ -563,7 +562,6 @@ implicit!(i16, i64 => i64);
563
562
implicit ! ( i16 , u64 => u64 ) ;
564
563
implicit ! ( i16 , i32 => i32 ) ;
565
564
implicit ! ( i16 , u32 => u32 ) ;
566
- implicit ! ( i16 , i16 => i16 ) ;
567
565
implicit ! ( i16 , u16 => u16 ) ;
568
566
implicit ! ( i16 , bool => u16 ) ;
569
567
implicit ! ( i16 , u8 => u16 ) ;
@@ -578,7 +576,6 @@ implicit!(u16, u64 => u64);
578
576
implicit ! ( u16 , i32 => i32 ) ;
579
577
implicit ! ( u16 , u32 => u32 ) ;
580
578
implicit ! ( u16 , i16 => u16 ) ;
581
- implicit ! ( u16 , u16 => u16 ) ;
582
579
implicit ! ( u16 , bool => u16 ) ;
583
580
implicit ! ( u16 , u8 => u16 ) ;
584
581
@@ -594,7 +591,6 @@ implicit!(u8, u32 => u32);
594
591
implicit ! ( u8 , i16 => i16 ) ;
595
592
implicit ! ( u8 , u16 => u16 ) ;
596
593
implicit ! ( u8 , bool => u8 ) ;
597
- implicit ! ( u8 , u8 => u8 ) ;
598
594
599
595
//LHS is bool(af::s8)
600
596
implicit ! ( bool , c64 => c64) ;
@@ -607,7 +603,6 @@ implicit!(bool, i32 => i32);
607
603
implicit ! ( bool , u32 => u32 ) ;
608
604
implicit ! ( bool , i16 => i16 ) ;
609
605
implicit ! ( bool , u16 => u16 ) ;
610
- implicit ! ( bool , bool => bool ) ;
611
606
implicit ! ( bool , u8 => u8 ) ;
612
607
613
608
///Trait qualifier to accept either real or complex typed data
0 commit comments