Commit Graph

2866 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 7f836ee6c3 [FIR] Remove AllOpen prefixes from fir plugin prototype entities 2021-10-12 17:26:43 +03:00
Dmitriy Novozhilov 6712191538 [FIR] Update plugin prototype testdata 2021-10-12 17:26:41 +03:00
Dmitriy Novozhilov 9a802e7cd7 [FIR] Return symbols instead of FIR from FirPredicateBasedProvider 2021-10-12 17:26:40 +03:00
Dmitriy Novozhilov 6a14d91dbd [FIR] Change predicate providing API for FIR extensions
Predicate declaration was split into two parts:
- registering any number of predicates which are used in specific extension
- special checks for declaration applicability for each specific extension
2021-10-12 17:26:39 +03:00
Dmitriy Novozhilov 20e35167c8 [FIR] Add simple IR body generator to FIR plugin prototype 2021-10-12 17:26:39 +03:00
Dmitriy Novozhilov b3768a201f [FIR2IR] Create special IrDeclarationOrigin for generated declarations 2021-10-12 17:26:37 +03:00
Dmitriy Novozhilov 233b9f1242 [FIR] Generate IR for generated FIR declarations 2021-10-12 17:26:37 +03:00
Dmitriy Novozhilov e3579389ee [FIR] Create IR text tests for declarations generators 2021-10-12 17:26:36 +03:00
Dmitriy Novozhilov 0f076e16ed [FIR] Update plugin testdata 2021-10-12 17:26:35 +03:00
Dmitriy Novozhilov ea93d23dca [FIR] Move fir plugin tests to diagnostics sub directory 2021-10-12 17:26:34 +03:00
Dmitriy Novozhilov 79f1779d89 [FIR] Add methods to collect all class and callable ids from extensions
They will be needed for generating IR for all declarations from plugins
2021-10-12 17:26:33 +03:00
Dmitriy Novozhilov 38877ba842 [FIR] Implement extension for providing additional type attributes 2021-10-12 17:26:32 +03:00
Dmitriy Novozhilov e26cd74b16 [FIR] Fix applying generated supertypes for classes without explicit supertypes 2021-10-12 17:26:31 +03:00
Dmitriy Novozhilov 26fa772846 [FIR] Add ability to generate members and nested classifiers for existing classes 2021-10-12 17:26:30 +03:00
Dmitriy Novozhilov f3a9d70eb6 [FIR] Add ability to generate members and nested classifiers for generated classes 2021-10-12 17:26:29 +03:00
Dmitriy Novozhilov 15abd839ed [FIR] Rewrite algorithm of generating declarations by plugins
Before there was separate global stage which asks extensions
  to generate new declarations. Now it is changed to provider
  like requests, so extensions will decide do they have declarations
  with specific classId/callableId or not
2021-10-12 17:26:26 +03:00
Dmitriy Novozhilov e87f7c5cb4 [FIR] Update dummy checker in allopen plugin 2021-10-12 17:26:24 +03:00
Dmitriy Novozhilov 84dab9230e [FIR] Adapt AllOpenVisibilityTransformer to work with unresolved annotation arguments 2021-10-12 17:26:23 +03:00
Dmitriy Novozhilov 91624dd841 [FIR] Move call of status transform extensions to FirStatusResolver
It makes more sense to run status transformer extension
  right in status resolve stage, because it reduces
  number of compiler stages
2021-10-12 17:26:21 +03:00
Dmitriy Novozhilov 6d42914e56 [FIR] Migrate fir plugin prototype tests to new test infrastructure 2021-10-12 17:26:18 +03:00
Dmitriy Novozhilov e56c87a17a [Build] Move utils for generation JUnit 5 tests to :generators module 2021-10-12 17:26:18 +03:00
Dmitriy Novozhilov f0aba5e892 [Test] Update parcelize bytecode testdata 2021-10-12 10:30:13 +03:00
Alexey Subach ca2f37f6eb Add possibility to get location of the script.main.kts file
#KT-48414 fixed
2021-10-11 15:45:57 +02:00
Andrey Uskov 52e45062cf KAPT does not fail with default settings on JDK 16+
If KAPT process is executed on latest JDKs and module
'jdk.compiler' does not export required packages, KAPT will
configure this module to export required packages.

#KT-45545 Fixed
2021-10-10 16:40:34 +03:00
Ilya Muradyan 58831eacca [scripting] Make properties from destructing declarations available with reflection 2021-10-07 18:17:21 +03:00
Dmitriy Novozhilov df47bffabb [Test] Migrate Parcelize tests to new test infrastructure 2021-10-07 13:08:45 +03:00
Dmitriy Novozhilov a68c4ec7be [Test] Add ability to specify main class in Box tests
Also slightly refactor some existing services to make them more idiomatic
2021-10-07 13:08:45 +03:00
Dmitriy Novozhilov aab8870903 [Test] Migrate AbstractAsmLikeInstructionListingTest to new test infrastructure 2021-10-07 13:08:44 +03:00
Dmitriy Novozhilov bc7cc6b5a9 Move generated parcelize tests to tests-gen directory 2021-10-07 13:08:43 +03:00
Victor Petukhov 3530840da3 Don't report TAILREC_ON_VIRTUAL_MEMBER on private opened functions instead of leaving private members final by allopen plugin
^KT-48117 Fixed
2021-09-30 20:08:49 +03:00
Victor Petukhov c3773d14bb Revert "[all-open] Don't affect private declarations to change their modality to open"
This reverts commit baeee8988e.
2021-09-30 20:08:48 +03:00
Alexander Udalov aa247726b6 Prohibit using old JVM backend with LV >= 1.6
#KT-48928 Fixed
2021-09-30 13:56:34 +02:00
Dmitriy Novozhilov e933c7b6d9 [Build] Remove testApi(intellijDep()) dependencies from all modules
Since IDEA moved most of it's jars to java 11 it's illegal to use them
  in our dependencies, so all modules which use `intellijDep()` should
  carefully specify which jars they use
2021-09-30 14:41:31 +03:00
Leonid Startsev f4eaf611c8 Do not access serializable property IrField if it is unbound
Fixes https://github.com/Kotlin/kotlinx.serialization/issues/1698
2021-09-29 15:21:12 +00:00
Steven Schäfer 00134fddf9 Parcelize: Allow Parcelize annotation on sealed classes
See https://issuetracker.google.com/177856520
2021-09-28 22:16:33 +02:00
Dmitriy Novozhilov de7fb9606a Migrate all JDK 9 related tests to JDK 11 2021-09-28 13:01:47 +03:00
Victor Petukhov a264cbfe7d Move CallUtil.kt under the resolve.util package 2021-09-27 16:12:01 +03:00
Vyacheslav Gerasimov a5d31fe2e2 Build: Fix warnings in pill
Required for Gradle 7+ #KTI-559
2021-09-26 23:36:40 +03:00
Vyacheslav Gerasimov f91d6958a8 Build: Rework runtimeJar helper and drop redundant configuration
#KTI-559
2021-09-26 20:10:29 +03:00
Vyacheslav Gerasimov ab146bd6d4 Build: Fix deprecated Gradle configurations usages
for migration to Gradle 7+ #KTI-559
2021-09-26 18:28:44 +03:00
Steven Schäfer cb46a56815 Parcelize: Support unsigned array types
See https://issuetracker.google.com/200774823
2021-09-22 13:42:04 +02:00
Steven Schäfer 2501013012 Parcelize: Support ShortArray
ShortArrays are broken in the Parcelize JVM backend, which caused a
frontend error on the JVM IR backend.
2021-09-22 13:42:04 +02:00
Steven Schäfer fc013c6b9f Parcelize: Add an intrinsic to access Parcelable CREATOR fields
Fixes KT-19853.

The CREATOR field is a static field on a Parcelable class which is not
visible from Kotlin since the necessary metadata would have to be in a
Companion object which may not exist.

This commit adds a [parcelableCreator] function to kotlinx.parcelize,
which is optimized to a direct field access whenever possible.
2021-09-21 15:09:39 +02:00
Steven Schäfer 897c09bf8d Parcelize: Use the class loader of the Parcelable class for reading
In `readBundle`, `readPersistableBundle`, and `readValue`.
2021-09-21 15:09:04 +02:00
Steven Schäfer dc568426bd Parcelize: Allow IgnoredOnParcel annotations on object properties 2021-09-18 00:26:16 +02:00
Steven Schäfer ae27be16eb AsmLikeInstructionListingTest: Print owner for FieldInsnNode 2021-09-18 00:25:58 +02:00
Alexander Udalov 5d6ca27c93 JVM IR: introduce CodegenFactory.convertToIr
The steps of psi2ir and JVM backend need to be separated in the API
because in case of cyclic module dependencies (which are allowed in JPS)
psi2ir should be run first on all sources, and then JVM backend on each
module separately. `CodegenFactory.convertToIr` does nothing in the old
backend.

Also, move the ignoreErrors to GenerationState for simplicity.
2021-09-17 17:39:48 +02:00
Dmitriy Novozhilov 5c2a3bb78e [FIR] Move duplicating names and classIds to StandardClassIds 2021-09-15 17:11:29 +03:00
Alexander Udalov 5df316a129 Minor, rename module backend.jvm:backend.jvm.entrypoint -> backend.jvm.entrypoint 2021-09-14 22:29:13 +02:00
Alexander Udalov eee8b033a6 JVM IR: minimize usages of jvmPhases outside backend.jvm 2021-09-14 22:29:12 +02:00