From 85bccdb9ab572416bff3b5d9bcc1a2e50175f6e7 Mon Sep 17 00:00:00 2001 From: MetaLang Date: Thu, 31 Jul 2014 03:54:08 -0300 Subject: [PATCH] Replace use of T.min to determine signedness with std.traits.isUnsigned. --- std/variant.d | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/std/variant.d b/std/variant.d index 3da81ace9..9adc1f3fb 100644 --- a/std/variant.d +++ b/std/variant.d @@ -935,14 +935,14 @@ public: } else { - if (is(typeof(T.max) : uint) && T.min == 0 && convertsTo!(uint)) + if (is(typeof(T.max) : uint) && isUnsigned!T && convertsTo!(uint)) result = mixin("get!(uint) " ~ op ~ " other"); - else if (is(typeof(T.max) : int) && T.min < 0 && convertsTo!(int)) + else if (is(typeof(T.max) : int) && !isUnsigned!T && convertsTo!(int)) result = mixin("get!(int) " ~ op ~ " other"); - else if (is(typeof(T.max) : ulong) && T.min == 0 + else if (is(typeof(T.max) : ulong) && isUnsigned!T && convertsTo!(ulong)) result = mixin("get!(ulong) " ~ op ~ " other"); - else if (is(typeof(T.max) : long) && T.min < 0 && convertsTo!(long)) + else if (is(typeof(T.max) : long) && !isUnsigned!T && convertsTo!(long)) result = mixin("get!(long) " ~ op ~ " other"); else if (is(T : float) && convertsTo!(float)) result = mixin("get!(float) " ~ op ~ " other");