diff --git a/lib/pure/bitops.nim b/lib/pure/bitops.nim index 0d3351ee51..3ba110d392 100644 --- a/lib/pure/bitops.nim +++ b/lib/pure/bitops.nim @@ -27,7 +27,7 @@ import std/macros import std/private/since -from std/private/bitops_utils import forwardImpl, castToUnsigned +include std/private/bitops_utils func bitnot*[T: SomeInteger](x: T): T {.magic: "BitnotI".} ## Computes the `bitwise complement` of the integer `x`. diff --git a/lib/std/private/bitops_utils.nim b/lib/std/private/bitops_utils.nim index 0b94844167..980333dc3d 100644 --- a/lib/std/private/bitops_utils.nim +++ b/lib/std/private/bitops_utils.nim @@ -1,4 +1,4 @@ -template forwardImpl*(impl, arg) {.dirty.} = +template forwardImpl(impl, arg) {.dirty.} = when sizeof(x) <= 4: when x is SomeSignedInt: impl(cast[uint32](x.int32)) @@ -14,9 +14,9 @@ template forwardImpl*(impl, arg) {.dirty.} = # import std/typetraits # template castToUnsigned*(x: SomeInteger): auto = cast[toUnsigned(typeof(x))](x) -template castToUnsigned*(x: int8): uint8 = cast[uint8](x) -template castToUnsigned*(x: int16): uint16 = cast[uint16](x) -template castToUnsigned*(x: int32): uint32 = cast[uint32](x) -template castToUnsigned*(x: int64): uint64 = cast[uint64](x) -template castToUnsigned*(x: int): uint = cast[uint](x) -template castToUnsigned*[T: SomeUnsignedInt](x: T): T = x +template castToUnsigned(x: int8): uint8 = cast[uint8](x) +template castToUnsigned(x: int16): uint16 = cast[uint16](x) +template castToUnsigned(x: int32): uint32 = cast[uint32](x) +template castToUnsigned(x: int64): uint64 = cast[uint64](x) +template castToUnsigned(x: int): uint = cast[uint](x) +template castToUnsigned[T: SomeUnsignedInt](x: T): T = x diff --git a/lib/system/countbits_impl.nim b/lib/system/countbits_impl.nim index d16f06ae79..976e6b3762 100644 --- a/lib/system/countbits_impl.nim +++ b/lib/system/countbits_impl.nim @@ -9,7 +9,7 @@ ## Contains the used algorithms for counting bits. -from std/private/bitops_utils import forwardImpl, castToUnsigned +include std/private/bitops_utils const useBuiltins* = not defined(noIntrinsicsBitOpts) const noUndefined* = defined(noUndefinedBitOpts)