Previously @EnhancedNullability for IR type was added if only there wasn't
an @FlexibleNullability annotation, which is inconsistent with K1
behavior
^KT-65302 Fixed
In some cases we transform flexible type into non-flexible during
enhancement, but don't add `@EnhancedNullability` attribute to them,
which breaks consistency with K1 on IR level
This commit fixes it
^KT-65302
Fix some unresolved supertypes. This is necessary to be able to enable
IR fake override builder by default (KT-61514), because it traverses all
supertypes and asserts that they're classes, so that it can build fake
overrides for declarations from there. Without this change, for example
`IrFakeOverrideBuilder.buildFakeOverridesForClass` would crash.
based on the regular compiler tests infrastructure, but adding
directives that can customize the definition from testdata.
So far only default imports and provided properties are supported, but
the infrastructure is easily extendable to other customizations.
Another limitations that provided properties are not supported for
the black box tests - the constructor parameters computing code
should be adapted to support it.
Note: in order to pick up the customized definition, the script files
should have an extension .test.kts
1. Unify BinaryLibraryKind type and move it to TestSettings
2. Pass it via ClassSettings instead of constructor parameters.
3. Update GenerateNativeTests.kt to generate CExport tests as a matrix.
There are few reasons why fake overrides should not be printed:
1. Fake overrides are not serialized in metadata. So, if one will run
"dump-metadata" they won't see there any fake overrides. Neither
their signatures. It would be inconsistent if
"dump-metadata-signatures" command would show them.
2. In order to properly build fake overrides the KLIB tool needs
the dependency library with the super class or interface, which
is not available unless this is stdlib or one of the built-in
Kotlin/Native platform libraries. KLIB tool does not support any
reasonable means for passing dependencies through CLI arguments.
If such possibility is added in the future, it would be the
right time to support printing fake overrides (probably under
a separate CLI option).
^KT-62340
Don't print signatures computed for private declarations. This
effectively means that only signatures for `public`, `protected`,
and `internal` declarations will be printed.
Note: This new behavior is intact with `dump-ir-signatures` command.
^KT-62340