Remove traits depending on deprecated complex
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				test Test.
				
					
					
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	test Test.
				This commit is contained in:
		| @@ -1,6 +1,5 @@ | |||||||
| # Tanya | # Tanya | ||||||
|  |  | ||||||
| [](https://build.caraus.tech/go/pipelines) |  | ||||||
| [](https://code.dlang.org/packages/tanya) | [](https://code.dlang.org/packages/tanya) | ||||||
| [](https://code.dlang.org/packages/tanya) | [](https://code.dlang.org/packages/tanya) | ||||||
| [](https://opensource.org/licenses/MPL-2.0) | [](https://opensource.org/licenses/MPL-2.0) | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								dub.json
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								dub.json
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | |||||||
| 	"name": "tanya", | 	"name": "tanya", | ||||||
| 	"description": "@nogc library. Containers, networking, metaprogramming, memory management, utilities", | 	"description": "@nogc library. Containers, networking, metaprogramming, memory management, utilities", | ||||||
| 	"license": "MPL-2.0", | 	"license": "MPL-2.0", | ||||||
| 	"copyright": "© Eugene Wissner <info@caraus.de>", | 	"copyright": "© Eugene Wissner <belka@caraus.de>", | ||||||
| 	"authors": [ | 	"authors": [ | ||||||
| 		"Eugene Wissner" | 		"Eugene Wissner" | ||||||
| 	], | 	], | ||||||
|   | |||||||
| @@ -70,47 +70,6 @@ enum bool isWideString(T) = is(T : const dchar[]) && !isStaticArray!T; | |||||||
|     static assert(!isWideString!(dchar[10])); |     static assert(!isWideString!(dchar[10])); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Determines whether $(D_PARAM T) is a complex type. |  | ||||||
|  * |  | ||||||
|  * Complex types are: |  | ||||||
|  * $(UL |  | ||||||
|  *  $(LI cfloat) |  | ||||||
|  *  $(LI ifloat) |  | ||||||
|  *  $(LI cdouble) |  | ||||||
|  *  $(LI idouble) |  | ||||||
|  *  $(LI creal) |  | ||||||
|  *  $(LI ireal) |  | ||||||
|  * ) |  | ||||||
|  * |  | ||||||
|  * Params: |  | ||||||
|  *  T = A type. |  | ||||||
|  * |  | ||||||
|  * Returns: $(D_KEYWORD true) if $(D_PARAM T) is a complex type, |  | ||||||
|  *          $(D_KEYWORD false) otherwise. |  | ||||||
|  */ |  | ||||||
| enum bool isComplex(T) = is(Unqual!(OriginalType!T) == cfloat) |  | ||||||
|                       || is(Unqual!(OriginalType!T) == ifloat) |  | ||||||
|                       || is(Unqual!(OriginalType!T) == cdouble) |  | ||||||
|                       || is(Unqual!(OriginalType!T) == idouble) |  | ||||||
|                       || is(Unqual!(OriginalType!T) == creal) |  | ||||||
|                       || is(Unqual!(OriginalType!T) == ireal); |  | ||||||
|  |  | ||||||
| /// |  | ||||||
| @nogc nothrow pure @safe unittest |  | ||||||
| { |  | ||||||
|     static assert(isComplex!cfloat); |  | ||||||
|     static assert(isComplex!ifloat); |  | ||||||
|     static assert(isComplex!cdouble); |  | ||||||
|     static assert(isComplex!idouble); |  | ||||||
|     static assert(isComplex!creal); |  | ||||||
|     static assert(isComplex!ireal); |  | ||||||
|  |  | ||||||
|     static assert(!isComplex!float); |  | ||||||
|     static assert(!isComplex!double); |  | ||||||
|     static assert(!isComplex!real); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Tests whether $(D_PARAM T) is an interface. |  * Tests whether $(D_PARAM T) is an interface. | ||||||
|  * |  * | ||||||
| @@ -353,32 +312,6 @@ enum bool isIntegral(T) = isUnsigned!T | |||||||
|     static assert(!isIntegral!float); |     static assert(!isIntegral!float); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Determines whether $(D_PARAM T) is a numeric (floating point, integral or |  | ||||||
|  * complex) type. |  | ||||||
| * |  | ||||||
|  * Params: |  | ||||||
|  *  T = A type. |  | ||||||
|  * |  | ||||||
|  * Returns: $(D_KEYWORD true) if $(D_PARAM T) is a numeric type, |  | ||||||
|  *          $(D_KEYWORD false) otherwise. |  | ||||||
|  * |  | ||||||
|  * See_Also: $(D_PSYMBOL isIntegral!T), |  | ||||||
|  *           $(D_PSYMBOL isFloatingPoint), |  | ||||||
|  *           $(D_PSYMBOL isComplex). |  | ||||||
|  */ |  | ||||||
| enum bool isNumeric(T) = isIntegral!T || isFloatingPoint!T || isComplex!T; |  | ||||||
|  |  | ||||||
| /// |  | ||||||
| @nogc nothrow pure @safe unittest |  | ||||||
| { |  | ||||||
|     alias F = float; |  | ||||||
|     static assert(isNumeric!F); |  | ||||||
|     static assert(!isNumeric!bool); |  | ||||||
|     static assert(!isNumeric!char); |  | ||||||
|     static assert(!isNumeric!wchar); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Determines whether $(D_PARAM T) is a boolean type, i.e. $(D_KEYWORD bool). |  * Determines whether $(D_PARAM T) is a boolean type, i.e. $(D_KEYWORD bool). | ||||||
|  * |  * | ||||||
| @@ -458,67 +391,6 @@ enum bool isSomeChar(T) = is(Unqual!(OriginalType!T) == char) | |||||||
|     static assert(!isSomeChar!uint); |     static assert(!isSomeChar!uint); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Determines whether $(D_PARAM T) is a scalar type. |  | ||||||
|  * |  | ||||||
|  * Scalar types are numbers, booleans and characters. |  | ||||||
|  * |  | ||||||
|  * Params: |  | ||||||
|  *  T = A type. |  | ||||||
|  * |  | ||||||
|  * Returns: $(D_KEYWORD true) if $(D_PARAM T) is a scalar type, |  | ||||||
|  *          $(D_KEYWORD false) otherwise. |  | ||||||
|  * |  | ||||||
|  * See_Also: $(D_PSYMBOL isNumeric), |  | ||||||
|  *           $(D_PSYMBOL isBoolean), |  | ||||||
|  *           $(D_PSYMBOL isSomeChar). |  | ||||||
|  */ |  | ||||||
| enum bool isScalarType(T) = isNumeric!T || isBoolean!T || isSomeChar!T; |  | ||||||
|  |  | ||||||
| /// |  | ||||||
| @nogc nothrow pure @safe unittest |  | ||||||
| { |  | ||||||
|     static assert(isScalarType!int); |  | ||||||
|     static assert(!isScalarType!(int[])); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Determines whether $(D_PARAM T) is a basic type. |  | ||||||
|  * |  | ||||||
|  * Basic types are scalar types and $(D_KEYWORD void). |  | ||||||
|  * |  | ||||||
|  * Params: |  | ||||||
|  *  T = A type. |  | ||||||
|  * |  | ||||||
|  * Returns: $(D_KEYWORD true) if $(D_PARAM T) is a basic type, |  | ||||||
|  *          $(D_KEYWORD false) otherwise. |  | ||||||
|  * |  | ||||||
|  * See_Also: $(D_PSYMBOL isScalarType). |  | ||||||
|  */ |  | ||||||
| enum bool isBasicType(T) = isScalarType!T || is(T : void); |  | ||||||
|  |  | ||||||
| /// |  | ||||||
| @nogc nothrow pure @safe unittest |  | ||||||
| { |  | ||||||
|     static struct S |  | ||||||
|     { |  | ||||||
|     } |  | ||||||
|     class C |  | ||||||
|     { |  | ||||||
|     } |  | ||||||
|     enum E : int |  | ||||||
|     { |  | ||||||
|         i = 0, |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     static assert(isBasicType!void); |  | ||||||
|     static assert(isBasicType!(shared void)); |  | ||||||
|     static assert(isBasicType!E); |  | ||||||
|     static assert(!isBasicType!(int*)); |  | ||||||
|     static assert(!isBasicType!(void function())); |  | ||||||
|     static assert(!isBasicType!C); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Determines whether $(D_PARAM T) is a pointer type. |  * Determines whether $(D_PARAM T) is a pointer type. | ||||||
|  * |  * | ||||||
| @@ -676,34 +548,6 @@ template isAssociativeArray(T) | |||||||
|     static assert(!isAssociativeArray!bool); |     static assert(!isAssociativeArray!bool); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Determines whether $(D_PARAM T) is a built-in type. |  | ||||||
|  * |  | ||||||
|  * Built-in types are all basic types and arrays. |  | ||||||
|  * |  | ||||||
|  * Params: |  | ||||||
|  *  T = A type. |  | ||||||
|  * |  | ||||||
|  * Returns: $(D_KEYWORD true) if $(D_PARAM T) is a built-in type, |  | ||||||
|  *          $(D_KEYWORD false) otherwise. |  | ||||||
|  * |  | ||||||
|  * See_Also: $(D_PSYMBOL isBasicType!T), |  | ||||||
|  *           $(D_PSYMBOL isArray), |  | ||||||
|  *           $(D_PSYMBOL isAssociativeArray). |  | ||||||
|  */ |  | ||||||
| enum bool isBuiltinType(T) = isBasicType!T |  | ||||||
|                           || isArray!T |  | ||||||
|                           || isAssociativeArray!T; |  | ||||||
|  |  | ||||||
| /// |  | ||||||
| @nogc nothrow pure @safe unittest |  | ||||||
| { |  | ||||||
|     static assert(isBuiltinType!int); |  | ||||||
|     static assert(isBuiltinType!(int[])); |  | ||||||
|     static assert(isBuiltinType!(int[int])); |  | ||||||
|     static assert(!isBuiltinType!(int*)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Determines whether $(D_PARAM T) is an aggregate type. |  * Determines whether $(D_PARAM T) is an aggregate type. | ||||||
|  * |  * | ||||||
| @@ -844,57 +688,6 @@ enum bool isSomeString(T) = isNarrowString!T || isWideString!T; | |||||||
|     static assert(!isSomeString!(char[10])); |     static assert(!isSomeString!(char[10])); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Returns the minimum value of type $(D_PARAM T). In contrast to |  | ||||||
|  * $(D_INLINECODE T.min) this template works with floating point and complex |  | ||||||
|  * types as well. |  | ||||||
|  * |  | ||||||
|  * Params: |  | ||||||
|  *  T = Integral, boolean, floating point, complex or character type. |  | ||||||
|  * |  | ||||||
|  * Returns: The minimum value of $(D_PARAM T). |  | ||||||
|  * |  | ||||||
|  * See_Also: $(D_PSYMBOL isIntegral), |  | ||||||
|  *           $(D_PSYMBOL isBoolean), |  | ||||||
|  *           $(D_PSYMBOL isSomeChar), |  | ||||||
|  *           $(D_PSYMBOL isFloatingPoint), |  | ||||||
|  *           $(D_PSYMBOL isComplex). |  | ||||||
|  */ |  | ||||||
| template mostNegative(T) |  | ||||||
| { |  | ||||||
|     static if (isIntegral!T || isBoolean!T || isSomeChar!T) |  | ||||||
|     { |  | ||||||
|         enum T mostNegative = T.min; |  | ||||||
|     } |  | ||||||
|     else static if (isFloatingPoint!T || isComplex!T) |  | ||||||
|     { |  | ||||||
|         enum T mostNegative = -T.max; |  | ||||||
|     } |  | ||||||
|     else |  | ||||||
|     { |  | ||||||
|         static assert(false, T.stringof ~ " doesn't have the minimum value"); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /// |  | ||||||
| @nogc nothrow pure @safe unittest |  | ||||||
| { |  | ||||||
|     static assert(mostNegative!char == char.min); |  | ||||||
|     static assert(mostNegative!wchar == wchar.min); |  | ||||||
|     static assert(mostNegative!dchar == dchar.min); |  | ||||||
|  |  | ||||||
|     static assert(mostNegative!byte == byte.min); |  | ||||||
|     static assert(mostNegative!ubyte == ubyte.min); |  | ||||||
|     static assert(mostNegative!bool == bool.min); |  | ||||||
|  |  | ||||||
|     static assert(mostNegative!float == -float.max); |  | ||||||
|     static assert(mostNegative!double == -double.max); |  | ||||||
|     static assert(mostNegative!real == -real.max); |  | ||||||
|  |  | ||||||
|     static assert(mostNegative!ifloat == -ifloat.max); |  | ||||||
|     static assert(mostNegative!cfloat == -cfloat.max); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Determines whether the type $(D_PARAM T) is copyable. |  * Determines whether the type $(D_PARAM T) is copyable. | ||||||
|  * |  * | ||||||
|   | |||||||
| @@ -14,6 +14,7 @@ | |||||||
|  */ |  */ | ||||||
| module tanya.container.buffer; | module tanya.container.buffer; | ||||||
|  |  | ||||||
|  | import std.traits : isScalarType; | ||||||
| import tanya.memory.allocator; | import tanya.memory.allocator; | ||||||
| import tanya.meta.trait; | import tanya.meta.trait; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ | |||||||
|  */ |  */ | ||||||
| module tanya.conv; | module tanya.conv; | ||||||
|  |  | ||||||
| import std.traits : Unsigned; | import std.traits : Unsigned, isNumeric; | ||||||
| import tanya.container.string; | import tanya.container.string; | ||||||
| import tanya.memory.allocator; | import tanya.memory.allocator; | ||||||
| import tanya.meta.trait; | import tanya.meta.trait; | ||||||
|   | |||||||
| @@ -14,6 +14,7 @@ | |||||||
|  */ |  */ | ||||||
| module tanya.hash.lookup; | module tanya.hash.lookup; | ||||||
|  |  | ||||||
|  | import std.traits : isScalarType; | ||||||
| import tanya.meta.trait; | import tanya.meta.trait; | ||||||
| import tanya.range.primitive; | import tanya.range.primitive; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user