In 1.5.20 HostManager.host started to check host architecture and it
leads to regressing in case of os+arch combination that is not supported
by HostManager.
Before 1.5.20 HostManager.host was determined only by OS. It is
not correct, but Gradle plugin uses HostManager even if there are
no Native targets. We fallback to this behavior to workaround this
regression.
When typealias point to a number of different bit width on
certain platforms, this implementation will choose
the number type with higher bit width as commonization result
for typealias types and typealias underlying types.
This will effectively port the "analyse code for a single
selected platform" UX approach into HMPP (for numbers only)
^KT-48455 Verification Pending
Try substituting TypeAlias types that start with `__` in favour
of TypeAlias without the underscored prefix
^KT-48287 Verification Pending
^KT-48286 Verification Pending
CirProvided.ExportedForwardDeclarationClass will now correctly
report artificial superclasses.
The InlineTypeAliasCirNodeTransformer does not need to know anything
about artificial supertypes anymore. When inlining any
type alias, it is enough to resolve the type-alias's expansions
supertypes.
^KT-47430
This will make follow-up commits easier:
forward declarations are closer to dependencies than being part
of the library. They will be used in the module, bot not
directly provided.
This commit also enables tracking of provided dependency classifiers
in the CirTreeRoot and CirRootNode
^KT-47430
This commit still has some left-over todos that shall be done
in a separate commit.
TODOs:
- CirClassifierIndex is calculated once too often
- Reconsider position of classifierIndices in 'CirKnownClassifiers'
- Add documentation/description to complicated 'ClassSuperTypeCommonizer'
- Add documentation/description to CirSupertypesResolver
^KT-47430 Verification Pending
This implementation runs as regular part of the commonization.
Previous implementation inside the CommonizationVisitor was fully
replaced by it.
As a side effect: CirClass.supertypes was now marked immutable.
^KT-47430 In Progress
When inlining any TypeAlias pointing towards forward declarations,
the inlined class will respect implicit supertypes.
This logic is analog to
KlibResolvedModuleDescriptorsFactoryImpl.createForwardDeclarationsModule
^KT-47430 In Progress
^KT-47775 Verification Pending
This implementation will be lenient toward the common
*Test.dependsOn(*Main) mistake.
^KT-47053 Verification Pending
Support source sets that do not have a dedicated
shared native compilation. Also support additional visible source sets
coming from associate compilations.
Seperate checker for platforms that do not support this language feature yet
Synthetic implementations of annotations are generated on-demand with proper
equals, hashCode, and annotationType methods
#KT-47699 Fixed
This has the advantage, that the substitution only has to run on
functions or properties that are 'incomplete' (missing at least
one other target declaration)
^KT-47433 Verification Pending
This will substitute non-commonizable classifiers with known
type-aliases (which might be commonizable).
A simple example depending on this substitution comes from posix:
Most function and properties use the `FILE` typealias which
is available across all platforms.
Some linux platforms use `__IO_FILE` in their signature, which
is just linux specific. This type substitution will figure out, that
this type can be substituted with `FILE`.
^KT-47433 Verification Pending