types/dispatch: test against correct widths for integer dispatch

This commit is contained in:
Danny Robson 2019-05-30 13:17:10 +10:00
parent cc7d4eb0a9
commit 6a77ed074a

View File

@ -47,15 +47,15 @@ namespace cruft::types {
switch (descriminator.width) {
case 1: INVOKE(type_tag<unknown_enum_tag<i08>> { descriminator })
case 2: INVOKE(type_tag<unknown_enum_tag<i16>> { descriminator })
case 3: INVOKE(type_tag<unknown_enum_tag<i32>> { descriminator })
case 4: INVOKE(type_tag<unknown_enum_tag<i64>> { descriminator })
case 4: INVOKE(type_tag<unknown_enum_tag<i32>> { descriminator })
case 8: INVOKE(type_tag<unknown_enum_tag<i64>> { descriminator })
}
} else {
switch (descriminator.width) {
case 1: INVOKE(type_tag<unknown_enum_tag<u08>> { descriminator })
case 2: INVOKE(type_tag<unknown_enum_tag<u16>> { descriminator })
case 3: INVOKE(type_tag<unknown_enum_tag<u32>> { descriminator })
case 4: INVOKE(type_tag<unknown_enum_tag<u64>> { descriminator })
case 4: INVOKE(type_tag<unknown_enum_tag<u32>> { descriminator })
case 8: INVOKE(type_tag<unknown_enum_tag<u64>> { descriminator })
}
}
break;
@ -68,15 +68,15 @@ namespace cruft::types {
switch (descriminator.width) {
case 1: INVOKE(type_tag<i08> {})
case 2: INVOKE(type_tag<i16> {})
case 3: INVOKE(type_tag<i32> {})
case 4: INVOKE(type_tag<i64> {})
case 4: INVOKE(type_tag<i32> {})
case 8: INVOKE(type_tag<i64> {})
}
} else {
switch (descriminator.width) {
case 1: INVOKE(type_tag<u08> {})
case 2: INVOKE(type_tag<u16> {})
case 3: INVOKE(type_tag<u32> {})
case 4: INVOKE(type_tag<u64> {})
case 4: INVOKE(type_tag<u32> {})
case 8: INVOKE(type_tag<u64> {})
}
}