Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2f8df56

Browse files
atomicky9prady9
authored andcommitted
Change trivial implementation of ImplicitPromote
Avoiding macro provides better usability for library users.
1 parent 967ffe3 commit 2f8df56

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

‎src/core/util.rs‎

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,13 @@ pub trait ImplicitPromote<RHS> {
430430
type Output: HasAfEnum;
431431
}
432432

433+
impl<T> ImplicitPromote<T> for T
434+
where
435+
T: HasAfEnum,
436+
{
437+
type Output = T;
438+
}
439+
433440
macro_rules! implicit {
434441
[$implType: ident, $rhsType: ident => $outType: ident] => (
435442
impl ImplicitPromote< $rhsType > for $implType {
@@ -443,7 +450,6 @@ macro_rules! implicit {
443450
//
444451

445452
//LHS is Complex double
446-
implicit!(c64, c64 => c64);
447453
implicit!(c64, c32 => c64);
448454
implicit!(c64, f64 => c64);
449455
implicit!(c64, f32 => c64);
@@ -458,7 +464,6 @@ implicit!(c64, u8 => c64);
458464

459465
//LHS is Complex float
460466
implicit!(c32, c64 => c64);
461-
implicit!(c32, c32 => c32);
462467
implicit!(c32, f64 => c64);
463468
implicit!(c32, f32 => c32);
464469
implicit!(c32, i64 => c32);
@@ -473,7 +478,6 @@ implicit!(c32, u8 => c32);
473478
//LHS is 64-bit floating point
474479
implicit!(f64, c64 => c64);
475480
implicit!(f64, c32 => c64);
476-
implicit!(f64, f64 => f64);
477481
implicit!(f64, f32 => f64);
478482
implicit!(f64, i64 => f64);
479483
implicit!(f64, u64 => f64);
@@ -488,7 +492,6 @@ implicit!(f64, u8 => f64);
488492
implicit!(f32, c64 => c64);
489493
implicit!(f32, c32 => c32);
490494
implicit!(f32, f64 => f64);
491-
implicit!(f32, f32 => f32);
492495
implicit!(f32, i64 => f32);
493496
implicit!(f32, u64 => f32);
494497
implicit!(f32, i32 => f32);
@@ -503,7 +506,6 @@ implicit!(i64, c64 => c64);
503506
implicit!(i64, c32 => c32);
504507
implicit!(i64, f64 => f64);
505508
implicit!(i64, f32 => f32);
506-
implicit!(i64, i64 => i64);
507509
implicit!(i64, u64 => u64);
508510
implicit!(i64, i32 => i64);
509511
implicit!(i64, u32 => i64);
@@ -518,7 +520,6 @@ implicit!(u64, c32 => c32);
518520
implicit!(u64, f64 => f64);
519521
implicit!(u64, f32 => f32);
520522
implicit!(u64, i64 => u64);
521-
implicit!(u64, u64 => u64);
522523
implicit!(u64, i32 => u64);
523524
implicit!(u64, u32 => u64);
524525
implicit!(u64, i16 => u64);
@@ -533,7 +534,6 @@ implicit!(i32, f64 => f64);
533534
implicit!(i32, f32 => f32);
534535
implicit!(i32, i64 => i64);
535536
implicit!(i32, u64 => u64);
536-
implicit!(i32, i32 => i32);
537537
implicit!(i32, u32 => u32);
538538
implicit!(i32, i16 => i32);
539539
implicit!(i32, u16 => i32);
@@ -548,7 +548,6 @@ implicit!(u32, f32 => f32);
548548
implicit!(u32, i64 => i64);
549549
implicit!(u32, u64 => u64);
550550
implicit!(u32, i32 => u32);
551-
implicit!(u32, u32 => u32);
552551
implicit!(u32, i16 => u32);
553552
implicit!(u32, u16 => u32);
554553
implicit!(u32, bool => u32);
@@ -563,7 +562,6 @@ implicit!(i16, i64 => i64);
563562
implicit!(i16, u64 => u64);
564563
implicit!(i16, i32 => i32);
565564
implicit!(i16, u32 => u32);
566-
implicit!(i16, i16 => i16);
567565
implicit!(i16, u16 => u16);
568566
implicit!(i16, bool => u16);
569567
implicit!(i16, u8 => u16);
@@ -578,7 +576,6 @@ implicit!(u16, u64 => u64);
578576
implicit!(u16, i32 => i32);
579577
implicit!(u16, u32 => u32);
580578
implicit!(u16, i16 => u16);
581-
implicit!(u16, u16 => u16);
582579
implicit!(u16, bool => u16);
583580
implicit!(u16, u8 => u16);
584581

@@ -594,7 +591,6 @@ implicit!(u8, u32 => u32);
594591
implicit!(u8, i16 => i16);
595592
implicit!(u8, u16 => u16);
596593
implicit!(u8, bool => u8);
597-
implicit!(u8, u8 => u8);
598594

599595
//LHS is bool(af::s8)
600596
implicit!(bool, c64 => c64);
@@ -607,7 +603,6 @@ implicit!(bool, i32 => i32);
607603
implicit!(bool, u32 => u32);
608604
implicit!(bool, i16 => i16);
609605
implicit!(bool, u16 => u16);
610-
implicit!(bool, bool => bool);
611606
implicit!(bool, u8 => u8);
612607

613608
///Trait qualifier to accept either real or complex typed data

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /