| ... | @@ -1676,15 +1676,7 @@ fn transCCast( | ... | @@ -1676,15 +1676,7 @@ fn transCCast( |
| 1676 | builtin_node.rparen_token = try appendToken(rp.c, .RParen, ")"); | 1676 | builtin_node.rparen_token = try appendToken(rp.c, .RParen, ")"); |
| 1677 | return &builtin_node.base; | 1677 | return &builtin_node.base; |
| 1678 | } | 1678 | } |
| 1679 | if (ZigClangQualType_getTypeClass(src_type) == .Elaborated) { | 1679 | if (ZigClangQualType_getTypeClass(ZigClangQualType_getCanonicalType(dst_type)) == .Enum) { |
| 1680 | const elaborated_ty = @ptrCast(*const ZigClangElaboratedType, ZigClangQualType_getTypePtr(src_type)); | | |
| 1681 | return transCCast(rp, scope, loc, dst_type, ZigClangElaboratedType_getNamedType(elaborated_ty), expr); | | |
| 1682 | } | | |
| 1683 | if (ZigClangQualType_getTypeClass(dst_type) == .Elaborated) { | | |
| 1684 | const elaborated_ty = @ptrCast(*const ZigClangElaboratedType, ZigClangQualType_getTypePtr(dst_type)); | | |
| 1685 | return transCCast(rp, scope, loc, ZigClangElaboratedType_getNamedType(elaborated_ty), src_type, expr); | | |
| 1686 | } | | |
| 1687 | if (ZigClangQualType_getTypeClass(dst_type) == .Enum) { | | |
| 1688 | const builtin_node = try transCreateNodeBuiltinFnCall(rp.c, "@intToEnum"); | 1680 | const builtin_node = try transCreateNodeBuiltinFnCall(rp.c, "@intToEnum"); |
| 1689 | try builtin_node.params.push(try transQualType(rp, dst_type, loc)); | 1681 | try builtin_node.params.push(try transQualType(rp, dst_type, loc)); |
| 1690 | _ = try appendToken(rp.c, .Comma, ","); | 1682 | _ = try appendToken(rp.c, .Comma, ","); |
| ... | @@ -1692,8 +1684,8 @@ fn transCCast( | ... | @@ -1692,8 +1684,8 @@ fn transCCast( |
| 1692 | builtin_node.rparen_token = try appendToken(rp.c, .RParen, ")"); | 1684 | builtin_node.rparen_token = try appendToken(rp.c, .RParen, ")"); |
| 1693 | return &builtin_node.base; | 1685 | return &builtin_node.base; |
| 1694 | } | 1686 | } |
| 1695 | if (ZigClangQualType_getTypeClass(src_type) == .Enum and | 1687 | if (ZigClangQualType_getTypeClass(ZigClangQualType_getCanonicalType(src_type)) == .Enum and |
| 1696 | ZigClangQualType_getTypeClass(dst_type) != .Enum) | 1688 | ZigClangQualType_getTypeClass(ZigClangQualType_getCanonicalType(dst_type)) != .Enum) |
| 1697 | { | 1689 | { |
| 1698 | const builtin_node = try transCreateNodeBuiltinFnCall(rp.c, "@enumToInt"); | 1690 | const builtin_node = try transCreateNodeBuiltinFnCall(rp.c, "@enumToInt"); |
| 1699 | try builtin_node.params.push(expr); | 1691 | try builtin_node.params.push(expr); |