Only generate @kotlin.ExperimentalUnsigned annotation on create*Vector methods having an unsigned array type parameter. #7881
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #7862
From this reference: https://kotlinlang.org/docs/unsigned-integer-types.html
In Kotlin unsigned integer types are stable (
UByte
/UShort
/UInt
/ULong
) and unsigned array types are experimental (UByteArray
/UShortArray
/UIntArray
/ULongArray
).This PR makes these changes:
Remove
@kotlin.ExperimentalUnsignedTypes
generation from enumerations. Even if enum has an unsigned integral type, I do not think it is possible for the enum class generated to contain an unsigned array type. See for example:tests/MyGame/Example/Color.kt
Remove
@kotlin.ExperimentalUnsignedTypes
from other class generations.Add
@kotlin.ExperimentalUnsignedTypes
to method generation forcreate*Vector
methods only where the data parameter type is an unsigned array. See for exampletests/MyGame/Example/Monster.kt
I ran
scripts/generate_code.py
to regenerate test code.I think this simple change might work to make the
@kotlin.ExperimentalUnsignedTypes
opt-in so that this annotation is only generated if the user's schema uses unsigned array types to generate kotlin code.Am I missing things here?
Thanks!