NativeScript / NativeScript/ios
Metadata-generator creates enums with incorrect values
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 150
- Forks
- 43
- Merge medio
- 3 d 10 h
- PR fusionados (30 d)
- 22
Descripción
There is the case of metadata-generator creating enums with wrong values if the original value is unsigned.
This became apparent with UIRectCornerAllCorners case where value is an unsigned long in obj-c.
UIRectCornerAllCorners = ~0UL
See: https://developer.apple.com/documentation/uikit/uirectcorner/uirectcornerallcorners?language=objc
Unfortunately, generator converts the value into a signed value resulting in -1 and when it's used as a function parameter, it brings unexpected results.
In JavaScript, the proper value would probably be 0xffffffff or 4294967295 to match the unsigned value.
I found this part of generator that looks suspicious: https://github.com/NativeScript/ios/blob/main/metadata-generator/src/Meta/MetaFactory.cpp#L321
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comience en metadata-generator/src/Meta/MetaFactory.cpp alrededor de la línea 321 e inspeccione cómo se convierte el valor unsigned de Objective-C UIRectCornerAllCorners = ~0UL. Verifique que el JavaScript generado conserve el valor unsigned como 0xffffffff o 4294967295, incluso cuando se pase como parámetro de una función.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp, javascript, objective-c
- Área
- mobile, tooling
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100