compiler bug fixes have simplified this

This commit is contained in:
Adam D. Ruppe 2015-08-04 21:06:28 -04:00
parent 40fbab4e1f
commit baa5926a62
1 changed files with 7 additions and 20 deletions

27
web.d
View File

@ -844,49 +844,36 @@ template isEnum(alias T) if(is(T)) {
enum bool isEnum = false; enum bool isEnum = false;
} }
template isEnum(alias T) if(!is(T)) {
enum bool isEnum = false;
}
// WTF, shouldn't is(T == xxx) already do this? // WTF, shouldn't is(T == xxx) already do this?
template isEnum(T) if(!is(T)) { template isEnum(T) if(!is(T)) {
enum bool isEnum = false; enum bool isEnum = false;
} }
template isStruct(alias T) if(is(T)) { template isStruct(alias T) {
static if (is(T == struct)) static if (is(T == struct))
enum bool isStruct = true; enum bool isStruct = true;
else else
enum bool isStruct = false; enum bool isStruct = false;
} }
// WTF template isApiObject(alias T) {
template isStruct(T) if(!is(T)) {
enum bool isStruct = false;
}
template isApiObject(alias T) if(is(T)) {
static if (is(T : ApiObject)) static if (is(T : ApiObject))
enum bool isApiObject = true; enum bool isApiObject = true;
else else
enum bool isApiObject = false; enum bool isApiObject = false;
} }
// WTF template isApiProvider(alias T) {
template isApiObject(T) if(!is(T)) {
enum bool isApiObject = false;
}
template isApiProvider(alias T) if(is(T)) {
static if (is(T : ApiProvider)) static if (is(T : ApiProvider))
enum bool isApiProvider = true; enum bool isApiProvider = true;
else else
enum bool isApiProvider = false; enum bool isApiProvider = false;
} }
// WTF
template isApiProvider(T) if(!is(T)) {
enum bool isApiProvider = false;
}
template Passthrough(T) { template Passthrough(T) {
T Passthrough; T Passthrough;
} }