Avoid hardcoded type conversion for metadata

The engine uses the names `int` and `float` to refer to the 64-bit types, so in the bindings generator we have a hardcoded conversion for those types.

But this type conversion should not be used for metadata. Even though the underlying type should still be 64-bit for interop, metadata is meant to specify the correct type to expose. So if metadata says `float` it means the type is really meant to be a 32-bit `float` and not `double`. Other hardcoded type conversions (`int` and `Nil`) won't ever be metadata.

This change corrects the `float` type, to use the right type in the generated C++ code. Before we were always using `double` due to this type conversion.

(cherry picked from commit 4829199081)
pull/1569/head
Raul Santos 2024-08-20 14:53:22 +02:00 committed by David Snopek
parent fbbf9ec4ef
commit 150e45071b
1 changed files with 0 additions and 2 deletions

View File

@ -2719,8 +2719,6 @@ def correct_type(type_name, meta=None, use_alias=True):
if meta is not None: if meta is not None:
if "int" in meta: if "int" in meta:
return f"{meta}_t" return f"{meta}_t"
elif meta in type_conversion:
return type_conversion[type_name]
else: else:
return meta return meta
if type_name in type_conversion: if type_name in type_conversion: