Commit 4354ddb
authored
Release version 14.1.0 (#1802)
All changes are related to Kotlin generator.
(1) Use `@JvmSynthetic` annotation for Kotlin internal
elements whenever possible to hide them from Java code.
(2) Allow the usage of 'RequiresOptIn' and 'OptIn' annotations
for internal API via CLI parameters. This way error is
generated when the code, which is not intended to access
the internal API uses it. Three new CLI parameters are available:
(a) 'androidrequiresoptinannotation'
(b) 'androidoptinannotation'
(c) 'androidinternalapiannotationname'
(3) For external types usage in Kotlin, use 'internal' keyword for the types,
which are generated by Gluecodium as their 'internal' representation.
(4) Minimize the usage of 'JvmSuppressWildcards' annotation for collection parameters.
This annotation was used for all generated collection types. It needs to be used
only when collection type holds enumeration or open type e.g.: 'open class', 'interface'
or 'fun interface'.
(5) Raise error when '@internal' elements are defined in interfaces. Kotlin language does not
allow usage of 'internal' keyword in interfaces. We need to raise an error, because there
is no valid way of generating such code.
(6) Make the 'Impl' classes private. Such classes are used to represent C++ implementation of
interface/lambda in Kotlin and they should not be accessed by the users. Only JNI layer
should access such types.
(7) Always handle static properties as get/set pair. Moreover, disallow internal static
properties/functions in LimeInterface elements.
Signed-off-by: Patryk Wrobel <183546751+pwrobeldev@users.noreply.github.com>1 parent e1a418b commit 4354ddb
2 files changed
Lines changed: 3 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
0 commit comments