Commit Graph

109399 Commits

Author SHA1 Message Date
Dmitrii Gridin f246d1c037 [LL FIR] introduce NonLocalAnnotationVisitor
- Unified and optimized visitor instead of transformer with many
  redundant operations.
- `LLFirAnnotationArgumentsTargetResolver` now has the correct state
  keeper for nested declarations – e.g., property accessors or value
  parameters.
- `FirAllLazyAnnotationCalculatorVisitor` in tests now almost the same
  as in the production as now it uses the same visitor without recursive
  visiting

^KT-63606 Fixed
^KT-64000 Fixed
^KT-64579 Fixed
2024-02-28 17:10:33 +00:00
Dmitrii Gridin 410dbcb4cf [LL FIR] LLFirTypeLazyResolver: add missed type checks for context receivers 2024-02-28 17:10:33 +00:00
Dmitrii Gridin 7048184acf [LL FIR] LLFirAnnotationArgumentsLazyResolver: add missed checks for context receivers 2024-02-28 17:10:33 +00:00
Dmitrii Gridin fe4ead751f [LL FIR] LLFirTargetResolver: do not resolve file annotation container before each declaration
We don't have to resolve `FirFileAnnotationsContainer` before each
declaration.
This became possible after KT-65345 as now `FirDesignation` has `FirFile`
in its path so, `PersistenceContextCollector#collectContext` resolves
it as well as we don't have problems with unresolved annotations
during diagnostics processing

^KT-65876
2024-02-28 17:10:32 +00:00
Dmitrii Gridin dc898fdf5c [LL FIR] LLFirTargetResolver: add missed checkThatResolvedAtLeastToPreviousPhase check for jumping phase 2024-02-28 17:10:32 +00:00
Artem Kobzar 6a2e785abd [K/JS, TEST] Enable TS export tests for FIR ^KT-64421 Fixed 2024-02-28 16:52:27 +00:00
Timofey Solonin 55e61f6631 [Native] Support Xcode 15.3 — add back the TargetConditional.h macros
^KT-65542
2024-02-28 16:38:37 +00:00
Roman Golyshev 69426e2129 [kotlin] Add a small KDoc to getAllSuperClassifiers function 2024-02-28 16:16:40 +00:00
Igor Yakovlev a5ef668e3c [Wasm] Boolean boxed instances are the same
Fixed #KT-65411
2024-02-28 15:23:21 +00:00
Timofey Solonin a171f774be Validate that resources from new source sets are published 2024-02-28 15:22:58 +00:00
Timofey Solonin 01ff4a597a Validate consuming a project with multiplatform resources
^KT-65540
2024-02-28 15:22:58 +00:00
Timofey Solonin 0f20e39475 Add an IT for publication of multiplatform resources in wasm target
^KT-65540
2024-02-28 15:22:58 +00:00
Timofey Solonin e35e2eaa48 Add an IT for publication of multiplatform resources in a native target
^KT-65540
2024-02-28 15:22:58 +00:00
Timofey Solonin b145796e14 Publish multiplatform resources as variants for wasm, js and native targets
^KT-65540
2024-02-28 15:22:58 +00:00
Kirill Rakhman 5bbec23123 [Test gen] Consolidate file reads for checking directives 2024-02-28 15:20:30 +00:00
Kirill Rakhman 3c23319f70 [Test gen] Remove duplicate checks if file is equal to some string 2024-02-28 15:20:30 +00:00
Kirill Rakhman cba65d7186 [Test gen] Reduce string copying 2024-02-28 15:20:30 +00:00
Kirill Rakhman 7ca6624af4 [Test gen] Reduce Kotlin reflection usage 2024-02-28 15:20:30 +00:00
Dmitriy Novozhilov 6cfe81de50 [FIR] Properly reports about conflicts in MPP setup
Checker for conflicting declarations will now check for the following
  scenarios too
- two expect declarations in different modules
- actual and non-expect declarations in different modules

^KT-63826 Fixed
2024-02-28 13:45:29 +00:00
Dmitriy Novozhilov 2febc807a1 Revert "[FIR2IR] Remove non-existent accessors from property references on Java fields"
This reverts commit 1e388ad7dc.
2024-02-28 13:26:25 +00:00
Dmitriy Novozhilov d899618f9a Advance bootstrap to 2.0.0-dev-17175 2024-02-28 13:02:11 +00:00
Roman Efremov 18176cb5ee Fix crash when compiler plugin generates top-level private suspend
...function.

^KT-61993 Fixed
2024-02-28 12:25:12 +00:00
Roman Efremov b2a2d32d70 [Test] Reproduce crash when plugin generates top-level private suspend
...function.

^KT-61993
2024-02-28 12:25:12 +00:00
Timofey Solonin bba39dd4fe Add an IT for publication of multiplatform resources in Android target
^KT-65540
2024-02-28 10:37:16 +00:00
Timofey Solonin a2989a3711 Publish multiplatform resources and assets for Android target
^KT-65540
2024-02-28 10:37:16 +00:00
Timofey Solonin 43a4fd5ddf Add an API for KotlinAndroidTarget to publish assets
^KT-65540
2024-02-28 10:37:16 +00:00
Timofey Solonin bf6a82fdc1 Bump AGP compile-time dependency to 7.3.0
In this version addGeneratedSourceDirectory API used available to
publish assets in the aar

^KT-65540
2024-02-28 10:37:16 +00:00
Artem Olkov ff5098d716 Refactor sir from psi builder, in order to check transatability of psi element
Merge-request: KT-MR-14555
Merged-by: Artem Olkov <artem.olkov@jetbrains.com>
2024-02-28 10:32:11 +00:00
Alexander Udalov 9d1d01d1eb jvm-abi-gen: Minor, deduplicate newField/newMethod calls 2024-02-28 10:19:45 +00:00
Vladimir Tagakov d2792533b8 jvm-abi-gen: Remove internal declarations from ABI
#KT-65690 Fixed
2024-02-28 10:19:45 +00:00
Alexander Udalov ebc2a18da5 IR: do not build fake overrides for code fragments
Code fragment is a class that extends from Any, so technically it can
have fake overrides for equals/hashCode/toString. However, K1 does not
build them, and it's already checked in IR text tests in
`analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments`,
so don't build them in K2 as well. Also, the code in
`KtFirCompilerFacility.createJvmIrCodegenFactory` looks for a single
function defined in the code fragment.
2024-02-28 09:32:34 +00:00
Alexander Udalov b88ce50500 IR: do not visit function body at all in IrFakeOverrideBuilder
This change fixes FIR tests with JVM IR serialization enabled, some of
which start to fail after enabling IR fake override builder mode by
default.

In this case, even accessing the function body with `IrFunction.body`
does not work in some cases because it tries to load IR and ends up with
unbound symbols for some reason (most likely related to KT-63509). So we
avoid accessing the body by copying the `IrFunction.acceptChildren`
implementation and removing the `body.accept` call.

Using deep-copy to create a fake override is questionable here, but it
will need to be refactored separately.
2024-02-28 09:32:34 +00:00
Wojciech Litewka 0b78cf9aa3 [IR] Autogenerate IrTypeAliasImpl
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka 1008fa566f [IR] Autogenerate IrModuleFragmentImpl
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka 97e2dab9f0 [IR] Autogenerate IrScriptImpl
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka f30f2216cc [IR] Autogenerate IrEnumEntryImpl
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka 401113cc27 [IR] Autogenerate IrClassImpl
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka fde3ea14ae [IR] Autogenerate IrVariableImpl
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka 222268b6f9 [IR] Autogenerate IrValueParameterImpl
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka e23aff7256 [IR] Autogenerate IrTypeParameterImpl
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka 6de200dea1 [IR] Autogenerate IrPropertyWithLateBindingImpl
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka 5aedc24f00 [IR] Autogenerate IrLocalDelegatedProperty
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka 87f5d3901c [IR] Autogenerate IrPropertyImpl
^KT-65773 In Progress
2024-02-28 09:29:57 +00:00
Wojciech Litewka 541a0f4bec [IR] Autogenerate IrFieldImpl
^KT-65773 In Progress
2024-02-28 09:29:56 +00:00
Wojciech Litewka f2af1bc04a [IR] Autogenerate IrConstructorImpl
^KT-65773 In Progress
2024-02-28 09:29:56 +00:00
Wojciech Litewka d97681f2a9 [IR] Autogenerate IrFunctionWithLateBindingImpl
^KT-65773 In Progress
2024-02-28 09:29:56 +00:00
Wojciech Litewka d5b78c0cdc [IR] Autogenerate IrFunctionImpl
^KT-65773 In Progress
2024-02-28 09:29:56 +00:00
Wojciech Litewka 518aee693e [IR] Autogenerate IrAnonymousInitializerImpl
^KT-65773 In Progress
2024-02-28 09:29:56 +00:00
Wojciech Litewka 6cdddaacb0 [IR] Final preparation to autogenerate IR declaration implementations
IR expressions are left out for now, because unlike declarations,
which are mostly created via IrFactory, expressions' constructors are
widely used, and it's hard to replicate the exact signatures of those
constructors with the tree generator.

Therefore, some other approach is expected to be taken when generating
them in the future.

^KT-65773 In Progress
2024-02-28 09:29:56 +00:00
Wojciech Litewka 451c51c849 [IR] Temporarily move to-be-autogenerated files under gen directory
so that git recognizes them as moved.
2024-02-28 09:29:56 +00:00