Sebastian Sellmair
a13756cfe9
[aa-klib-reader] Move aa-klib-reader to pkg 'o.j.k.native.analysis.api'
...
To clearly distinguish this modules API from the Analysis API
^KT-66695 Fixed
2024-03-19 12:35:52 +00:00
Sebastian Sellmair
426d71b088
[aa-klib-reader] Only resolve symbols from the associated library/sourceFile
...
Previously the addresses were resolved by only respecting
CallableId or ClassId. This however, could lead to
resolving symbols that were not defined in the klib which
initially provided the declaration address.
E.g. this commit adds a test in `GetSymbolsTest`, where
```
// A.kt
private fun foo() = 42
// B.kt
private fun foo() = 42
```
In this case the two source files (A.kt and B.kt) defined
two distinct addresses for `foo`. However: Resolving
any of those two addresses would resolve both functions (A&B), which
is not expected.
^KT-66271 Fixed
2024-03-18 10:13:57 +00:00
Sebastian Sellmair
6b98602afc
[Analysis Api] Expose klibSourceFile via KtKlibSourceFileProviderMixIn
...
This `klibSourceFile` information is deserialized from klibs
to retain the information of the original SourceFile location
of a declaration.
^KT-66271 Fixed
2024-03-18 10:13:57 +00:00
Sebastian Sellmair
6d8a4a28af
[FIR] Deserialize Klib KlibMetadataProtoBuf. classFile, functionFile & propertyFile
...
klibs provide information about the container source file
in the KlibMetadataProtoBuf extensions for functions,
properties and classes.
This information is deserialized and attached to the
`klibSourceFile` extension (stored in FirDeclarationDataRegistry)
^KT-66271 Fixed
2024-03-18 10:13:57 +00:00
Sebastian Sellmair
10cf97f05b
[ObjCExport] Support exported library modules
...
This new module gives the ability to resolve symbols
from provided klib KtLibraryModules withing a Analysis Session.
^KT-65327 Fixed
2024-03-07 09:23:37 +00:00
Sebastian Sellmair
b5b7e5f262
[aa-klib-reader] Implement 'analysis-api-klib-reader' for swift- and objc export
...
This new module gives the ability to resolve symbols
from provided klib KtLibraryModules withing a Analysis Session.
^KT-65327 Fixed
2024-03-07 09:23:37 +00:00
Sebastian Sellmair
b7de3709e4
[ObjCExport] Document getObjCClassOrProtocolName
...
^KT-65670 Fixed
2024-03-01 09:45:12 +00:00
Sebastian Sellmair
436e16efd8
[ObjCExport] AA: Support additional module name prefixes
...
^KT-65670 Fixed
2024-03-01 09:45:12 +00:00
Sebastian Sellmair
7ee2903e15
[ObjCExport] ObjCExportDependenciesHeaderGeneratorTest: Add tests for exported / non exported dependencies
...
KT-65670
2024-03-01 09:45:12 +00:00
Sebastian Sellmair
64503d9217
[ObjCExport] AA: AnalysisApiHeaderGenerator: Implement support for klib dependencies
...
KT-65670
2024-03-01 09:45:12 +00:00
Sebastian Sellmair
e377a98815
[ObjCExport] Fe10: Implement test with exported and non exported klib dependencies
...
KT-65670
2024-03-01 09:45:12 +00:00
Sebastian Sellmair
b26f9cb274
[ObjCExport] Remove 'Enum.clone' method special case (AA)
...
This clone method showed up in K1 because of the test setup
being not close enough to production.
KT-65670
2024-03-01 09:45:12 +00:00
Sebastian Sellmair
19698bf6fa
[ObjCExport] Minor: Add '--continue' to Readme.md test invocations
...
KT-65670
2024-03-01 09:45:12 +00:00
Sebastian Sellmair
152aa24c53
[ObjCExport] K1 header generator test setup: Use native compiler/native builtIns and production namer configuration
...
To keep the tests closer to 'real life'/'production.'
KT-65670
2024-03-01 09:45:12 +00:00
Sebastian Sellmair
85cfa252c3
[CODEOWNERS] Add 'Kotlin in Fleet' as codeowner for ':kotlin-tooling-core'
2024-02-23 15:48:47 +00:00
Sebastian Sellmair
d80e6f8d66
[kotlin-tooling-core] Implement 'closure' sequence APIs
2024-02-23 15:48:47 +00:00
Sebastian Sellmair
6b6808d87c
[ObjCExport] ObjCType: Implement HasExtras instead of HasMutableExtras
...
... to enforce the immutability concept of this entities.
KT-65891 Fixed
2024-02-23 07:31:32 +00:00
Sebastian Sellmair
704379934e
[kotlin-tooling-core] Allow nullable extra values
...
The change is binary compatible, but not source compatible.
Potential clients like Google might need to adapt
a potential `IdeaKotlinExtrasSerializationExtension` implementaiton.
Right now, no such implementation is known
2024-02-23 07:31:32 +00:00
Sebastian Sellmair
622a88ff26
[ObjCExport] Translate ObjCObject types, respecting the @ExternalObjCClass annotation
...
KT-65891 Fixed
2024-02-23 07:31:32 +00:00
Sebastian Sellmair
a5baf42422
[ObjCExport] KtObjCExportHeaderGenerator: Separate 'requiresClassForwardDeclaration' from ObjCType.classId
...
There are two different objectives associated with this newly
introduced extras:
- originClassId: Used to track where a type came from; Will
ensure that the translation queue will be populated to also
translate potential dependency classes
- requiresForwardDeclaration: Used to track if a certain
type requires rendering as forward declaration
KT-65891
2024-02-23 07:31:32 +00:00
Sebastian Sellmair
98eca9058b
[ObjCExport][Minor] Add breadcrumb for KT-65891
2024-02-19 14:24:37 +00:00
Sebastian Sellmair
d0e67ff336
[ObjCExport] Restructure ObjC export symbol queue to replicate order of K1
...
The previous implementation used a two-stage process:
1) Processing of declared symbols
2) Analysis and processing of referenced dependency symbols
However, to replicate the exact same order as in K1
those two steps need to be done together.
^KT-64953 Fixed
2024-02-19 14:24:37 +00:00
Sebastian Sellmair
a2d76d739c
[ObjCExport] Support translation of enum classes
...
^KT-64953 Fixed
2024-02-19 14:24:37 +00:00
Sebastian Sellmair
ef232ebec7
[ObjCExport] ObjCDependenciesTypesTest.test - arrayList: Remove TodoAnalysisApi
...
This test is now expected to pass successfully and was
introduced in one MR (muted), but fixed at the same time
in another MR
2024-02-13 10:12:18 +00:00
Sebastian Sellmair
7cf6a86083
[ObjCExport] translateToObjCType: Filter konan primitives and include supertypes for mapped types
...
^KT-65348 Fixed
2024-02-12 16:14:38 +00:00
Sebastian Sellmair
fd33249c47
[ObjCExport] Add tests for Char type translation
...
^KT-65348 Fixed
2024-02-12 16:14:38 +00:00
Sebastian Sellmair
e53e94516f
[ObjCExport] AA: Enable generation of base declarations
...
^KT-65738 Fixed
2024-02-12 16:13:50 +00:00
Sebastian Sellmair
4b6624c920
[ObjCExport] Support naming of nested classes
...
^KT-65204 Fixed
2024-02-09 08:48:16 +00:00
Sebastian Sellmair
5b11308d1b
[ObjCExport] Translate superClass and superClass generics for class and objects
...
^KT-65384 Verification Pending
2024-02-08 12:43:48 +00:00
Sebastian Sellmair
c22149c642
[ObjCExport] Properly detect Array constructors
...
^KT-65225 Fixed
2024-02-08 12:41:37 +00:00
Sebastian Sellmair
32da1b70f5
[ObjCExport] Implement initial sorting and ordering for ObjC translation
...
^KT-65237
2024-02-07 20:29:08 +00:00
Sebastian Sellmair
0db8931026
[ObjCExport] Implement 'TodoAnalysisApi' annotation and run AA based tests as part of ':native:objcexport-header-generator:check'
...
^KT-65281 Fixed
^KT-65108 Fixed
2024-01-26 16:19:20 +00:00
Sebastian Sellmair
c958aef679
[ObjCExport] Initial implementation of function type translation
...
^KT-65167
2024-01-26 10:11:48 +00:00
Sebastian Sellmair
3766a5f2ad
[ObjCExport][Minor] Move 'isBinaryRepresentationNullable' utility to bottom of translateToObjCType.kt
...
^KT-65167
2024-01-26 10:11:48 +00:00
Sebastian Sellmair
9f0aa7d30c
[ObjCExport] Use K1 convention and do not mark KtErrorType as nullable
...
^KT-65167
2024-01-26 10:11:48 +00:00
Sebastian Sellmair
2bf7bbb6c1
[ObjCExport] Support mapping of ObjCObject types to id
...
^KT-65167
2024-01-26 10:11:48 +00:00
Sebastian Sellmair
3cd20bd7b0
[ObjCExport] Support generic type parameters for ObjC translation
...
^KT-65167
2024-01-26 10:11:48 +00:00
Sebastian Sellmair
3111678f8b
[ObjCExport] Support nullable type arguments in translating known Collection types
...
^KT-65167
2024-01-26 10:11:48 +00:00
Sebastian Sellmair
858af02a24
[ObjCExport] Initial support for inline classes in type mapping
...
^KT-65167
2024-01-26 10:11:48 +00:00
Sebastian Sellmair
262bfb18cc
[ObjCExport] Initial support for ObjCClassType type arguments
...
^KT-65167
2024-01-26 08:19:05 +01:00
Sebastian Sellmair
a6a27466fc
[ObjCExport] Fix emission of 'ValueTypeBridge' for 'non primitive' types
...
^KT-65167
2024-01-26 08:19:05 +01:00
Sebastian Sellmair
8fbf0f21c8
[ObjCExport] Implement ObjCExportHeaderGeneratorTesttest - topLevelFunctionWithNumberReturn
...
^KT-65167
2024-01-26 08:19:05 +01:00
Sebastian Sellmair
1912ffded6
[ObjCExport] Implement ObjCExportTypeTranslationTest
...
^KT-65167
2024-01-26 08:19:05 +01:00
Sebastian Sellmair
de4380cd4e
[CODEOWNERS] 'objcexport-header-generator' Share ownership between K/N and KiF teams
2024-01-26 07:01:58 +00:00
Sebastian Sellmair
2708c74d9c
[ObjCExport] Fix KT-64952 HasErrorTypesTest
2024-01-23 10:03:15 +00:00
Sebastian Sellmair
a713d66b7b
[ObjCExport] Analysis Api: Ensure KDocs being exported by providing ObjCExportStubOrigin
...
^KT-64888 Fixed
Co-authored-by: Sebastian Sellmair <Sebastian.sellmair@jetbrains.com >
Merge-request: KT-MR-13854
Merged-by: Eugene Levenetc <Eugene.Levenetc@jetbrains.com >
2024-01-14 01:13:58 +00:00
Sebastian Sellmair
9c3de4332f
[ObjCExport] Run new ObjCExport tests as native tests on CI
...
^KT-64839 Fixed
2024-01-12 15:37:41 +00:00
Sebastian Sellmair
809b278a7b
[Minor] Remove unnecessary backend.native/functionalTest/.editorconfig
2024-01-12 15:37:41 +00:00
Sebastian Sellmair
80d9933543
[ObjCExport] Analysis Api: Implement initial support for exporting 'MustBeDocumented' annotations
...
^KT-64869 Fixed
2024-01-12 09:41:46 +00:00
Sebastian Sellmair
198ebe9a39
[Code Owners] Make "Kotlin in Fleet" owner of objcexport-header-generator-analysis-api
2024-01-08 18:13:12 +00:00
Sebastian Sellmair
ad8d4051b8
[ObjCExport] Fix tests with missing 'MustBeDocumented' annotations missing
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
7dbd5cd57f
[ObjCExport] Implement 'test - dispatchAndExtensionReceiverWithMustBeDocumentedAnnotation'
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
90632ad746
[ObjCExport] Implement isObjCObjectType util
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
e0383282b5
[ObjCExport] Implement isObjCBaseCallable util
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
b5bcfaa2e3
[ObjCExport] translateToObjCProtocol: Support building members
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
47273a3d58
[ObjCExport] Move MethodBridge to shared module (2/2)
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
8f7e409bd7
[ObjCExport] Move MethodBridge to shared module (1/2)
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
b78f185299
[ObjCExport] Remove unnecessary instances in favor of static methods
...
All state will later be stored inside the KtObjCExportSession
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
2f759243ba
[ObjCExport] Implement isVisibleInObjC util
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
66533141b8
[ObjCExport] Implement getSuperClassSymbolNotAny util
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
9909940b24
[ObjCExport] Implement rudimentary interface to ObjCProtocol translation
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
aa3fa9e8c5
[ObjCExport] Implement 'findKdocString' utility for Analysis Api
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
72f135396c
[ObjCExport] Extract generation of ObjC base declarations into shared code
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
aab9a606ce
[ObjCExport] Split ObjCExportHeaderGenerator and ObjCExportTranslator
...
KT-64226
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
74c39b149f
[ObjCExport] ObjCExportLazy: Get 'comment' from 'realStub'
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
1cb60a53d9
[ObjCExport] Cleanup misleading test name for 'functionWithMustBeDocumentedAnnotation'
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
7944a3dc4b
[ObjCExport] Document 'ObjCExportStubOrigin' factory special case
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
7ef62d1779
[ObjCExport] KtResolvedObjCNameAnnotation: Return null if ObjCName annotation is absent
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
98fda13523
[ObjCExport] Extract header generation to shared module
...
^KT-64227 Fixed
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
1440e66519
[ObjCExport] Fix 'MustBeDocumented' annotation missing on non value parameters
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
885a7dcd8f
[ObjCExport] Implement test - kdocWithBlockTags
...
FL-23390
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
e409c60780
[ObjCExport] Split ObjCExport into K1 and Analysis Api implementation
...
FL-23390
^KT-64168 Fixed
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
3e57265fcb
[ObjCExport] ObjCExportStub: Do not retain reference to descriptor
...
FL-23390
^KT-64076 Fixed
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
e97463afb3
[ObjCExport][Minor] Reformat Code after move into newly created modules
...
FL-23390
2024-01-08 15:25:19 +00:00
Sebastian Sellmair
4c7ad7eeb5
[Gradle] Add IdeMultiplatformImportAction API
...
This API can be used to schedule actions/setup code that is only
relevant for IDE sync.
^KT-56440 Verification Pending
2023-12-12 14:52:04 +00:00
Sebastian Sellmair
0713866c1e
[K/N] Modularise :kotlin-native:native.backend to extract objc header generation (2/2)
...
^KT-63905 Fixed
2023-12-04 18:52:08 +00:00
Sebastian Sellmair
ae9f3d66c2
[K/N] Modularise :kotlin-native:native.backend to extract objc header generation (1/2)
...
^KT-63905
2023-12-04 18:52:08 +00:00
Sebastian Sellmair
977d1c0e41
[K/N] Implement objc export header test: functionWithErrorType
2023-11-27 16:39:15 +00:00
Sebastian Sellmair
04df33eec1
[K/N] Implement ObjCExportNamerTest and ObjCExportMapperTest
...
... to provide simple and quick validation
for their corresponding entities.
Those tests can also act as convenient entry points
for debugging.
2023-11-27 16:39:15 +00:00
Sebastian Sellmair
ddd97e84b9
[K/N] Implement lightweight tests for ObjC header generation
2023-11-27 09:08:54 +00:00
Sebastian Sellmair
59c4c83ed5
[K/N] Samples: Update samples default Kotlin version to 1.9.20
2023-11-23 13:19:04 +00:00
Sebastian Sellmair
359f5fe7b3
[K/N] Samples: Migrate 'echoServer' to modern multiplatform
...
^KT-50547 Fixed
2023-11-23 13:19:04 +00:00
Sebastian Sellmair
5506384cc9
[Gradle] Remove unused KotlinTargetConfigurator.configurePlatformSpecificModel
...
KT-61634
2023-11-07 12:29:31 +00:00
Sebastian Sellmair
b347ff2c53
[Gradle] Migrate KotlinNativeTargetConfigurator.warnAboutIncorrectDependencies to KotlinGradleProjectChecker
...
KT-61634
2023-11-07 12:29:31 +00:00
Sebastian Sellmair
faecd7f772
[Gradle] Implement KotlinNativeTargetConfigurator.registerEmbedAndSignAppleFrameworkTasks as EP as side effects
...
KT-61634
2023-11-07 12:29:31 +00:00
Sebastian Sellmair
9b47c98ce9
[Gradle] Implement KotlinNativeTargetConfigurator.createCInteropTasks as EP based side effects
...
KT-61634
2023-11-07 12:29:31 +00:00
Sebastian Sellmair
8651d67aeb
[Gradle] Implement ConfigureFrameworkExportSideEffect
...
KT-61634
2023-11-07 12:29:31 +00:00
Sebastian Sellmair
3fb415d966
[Gradle] Replace KotlinTargetWithTestsConfigurator with KotlinTestRunFactory
...
KT-61634
2023-11-02 13:20:38 +00:00
Sebastian Sellmair
40820e42a6
[Gradle] Implement ConfigureBuildSideEffect (replacing 'configureBuild')
...
KT-61634
2023-11-02 13:20:38 +00:00
Sebastian Sellmair
36d1622276
[Gradle] Mute IdeNativeStdlibDependencyResolver in case of missing stdlib
2023-10-30 10:40:34 +00:00
Sebastian Sellmair
ded5cf2caa
[Gradle] Replace 'configureArchivesAndComponent' with KotlinTargetArtifact
...
KT-61634
2023-10-25 08:34:48 +00:00
Sebastian Sellmair
eb4daa4482
[Gradle] Implement CreateTargetConfigurationsSideEffect and NativeForwardImplementationToApiElementsSideEffect
...
KT-61634
2023-10-25 08:34:48 +00:00
Sebastian Sellmair
787420cc21
[Gradle] Introduce KotlinTargetSideEffect and KotlinCompilationSideEffect
...
KT-61634
2023-10-25 08:34:48 +00:00
Sebastian Sellmair
f89a46710a
[Gradle] Implement KotlinTargetSideEffect.extensionPoint
...
KT-61634
2023-10-25 08:34:47 +00:00
Sebastian Sellmair
f2a2c28ac9
[Gradle] Deprecate org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
...
... in favor of using Kotlin Gradle Plugin Extension Points
KT-61634
2023-10-19 15:54:35 +00:00
Sebastian Sellmair
7650264de3
[Gradle] Move KotlinMultiplatformPlugin.METADATA_TARGET_NAME to KotlinMetadataTarget
...
KT-61634
2023-10-19 15:54:35 +00:00
Sebastian Sellmair
d5be59a8ec
[Gradle] Implement ApplyJavaBasePluginSetupAction
...
KT-61634
2023-10-19 15:54:35 +00:00
Sebastian Sellmair
c47db02d30
[Gradle] Move 'checkGradleCompatibility' to a single, very early invocation
...
This shall ensure that the compatibility with Gradle
- is always checked for all plugins we ship
- is checked as early as possible
KT-61634
2023-10-19 15:54:35 +00:00
Sebastian Sellmair
a15c068471
[Gradle] Implement DeprecatedMppGradlePropertiesMigrationSetupAction
...
KT-61634
2023-10-19 15:54:35 +00:00
Sebastian Sellmair
3210fdfec4
[Gradle] Inline 'sourceSetFreeCompilerArgsPropertyName' to its use site
...
KT-61634
2023-10-19 15:54:35 +00:00