Roman Golyshev
ffcbc583d0
FIR: Split EnvironmentConfigurator to an interface and abstract class
...
It is needed to make it easier to write wrappers for configurators
2022-02-25 23:08:26 +03:00
Dmitriy Novozhilov
b47cc86c57
[FIR] Fix incorrect context usages with withSuppressedDiagnostics call
2022-02-18 17:44:40 +03:00
Dmitriy Novozhilov
0bd3e8f418
[FIR] Rename ConeClassErrorType to ConeErrorType, drop ConeKotlinErrorType alias
2022-02-07 13:36:33 +03:00
Dmitriy Novozhilov
bea2bc3980
[Parcelize] Move FIR related parts of parcelize to separate module
...
This is needed to avoid bundling of FIR classes to IDE plugin for
parcelize, because it can cause compatibility issues, because
IDE plugin does not contain FIR compiler
2022-01-21 10:22:39 +03:00
Evgeniy.Zhelenskiy
e97ca2ada4
[Psi2Ir, Fir2Ir] Generate toString, hashCode, equals methods for MF VC
2022-01-14 13:51:57 +00:00
Vyacheslav Gerasimov
944c7990a1
Build: Use fake ideaHome for tests with intellij build number only
...
#KTI-82
2021-12-16 21:48:24 +03:00
Vyacheslav Gerasimov
f7a9065b75
Build: Use intellij maven repo instead of downloaded IDEA
...
#KTI-82
2021-12-16 21:48:23 +03:00
Vyacheslav Gerasimov
318e001d1b
Fix parcelize test dependencies on android plugin layoutlib
...
#KTI-82
2021-12-16 21:48:22 +03:00
Vyacheslav Gerasimov
bc2f0936bd
Build: Rename commonDep -> commonDependency
2021-12-16 21:48:19 +03:00
Dmitriy Novozhilov
23f5c22684
[Test] Update testdata of parcelize
2021-12-15 21:37:32 +03:00
Dmitry Petrov
df460a842b
JVM_IR KT-50076 avoid CHECKCAST on moved dispatch receiver parameter
2021-12-13 14:13:34 +00:00
Dmitry Petrov
6f148c594f
Revert "JVM_IR KT-50076 avoid CHECKCAST on moved dispatch receiver parameter"
...
This reverts commit 627d838343 .
2021-12-13 14:13:33 +00:00
Dmitry Petrov
627d838343
JVM_IR KT-50076 avoid CHECKCAST on moved dispatch receiver parameter
2021-12-11 08:04:26 +00:00
Alexander Udalov
3c9e3b7ed4
JVM IR: remove most dependencies of common backend.jvm code on codegen
2021-12-09 21:05:48 +01:00
Alexander Udalov
b0c5ea4717
JVM IR: remove dependencies of lowerings on codegen
...
Move out utilities which are used both in lowerings and codegen to
JvmIrUtils and JvmIrTypeUtils, and introduce new JvmIrCoroutineUtils and
JvmIrInlineUtils (probably can be renamed or moved somewhere more
appropriate in the future).
2021-12-09 19:59:42 +01:00
Mikhael Bogdanov
c599b58eb3
Remove obsolete options
2021-12-08 12:25:02 +01:00
Steven Schäfer
16a2aec296
Parcelize: Skip constructor checks when used with custom Parceler
...
See https://issuetracker.google.com/177850558
2021-12-08 11:07:10 +01:00
Steven Schäfer
58c687e42d
Parcelize: Support @IgnoreOnParcel primary constructor parameters...
...
...with default values.
See https://issuetracker.google.com/177850560
2021-12-08 11:07:10 +01:00
Mikhael Bogdanov
0997207c7c
Apply -Xjvm-default for specific modules only
2021-12-03 06:39:38 +01:00
Anastasiya Shadrina
a39fbd3822
[FE] Add getContextReceivers to CallableDescriptor interface
2021-12-02 20:23:17 +03:00
Dmitriy Novozhilov
c46e9943cc
[FIR] Get rid of FirExtension.key
...
In reality plugin key was used only in two ways:
- found corresponding generator for member scope of generated class
- pass it to declaration origin so it can be read in backend IR plugin
Because of first usage plugin key was required to be an object, which
reduces functionality of second usage, because there was no way to
pass any additional info via key to IR (in future this usecase will be
covered with IR declaration attributes, but right now we don't have
them)
So now generator which created some class is now saved in its attributes
and plugins can use any keys they want. And since there is no other
usages of `FirExtension.key` it removed from FirExtension API at all
2021-11-30 12:57:53 +03:00
Dmitriy Novozhilov
ce218b8a0b
[FIR] Make FirExtensionRegistrar a proper extension point
...
After that commit it's allowed to register any FIR plugin using
existing extension infrastructure (`-Xplugin` CLI argument,
plugin.xml for IDE plugins, etc)
2021-11-30 12:57:50 +03:00
Dmitriy Novozhilov
409f96678a
[Parcelize] Extract common names, class ids and FQNs into separate object
2021-11-23 15:01:33 +03:00
Dmitriy Novozhilov
edc74b8838
[Parcelize] Add test for Parcelable implementation with overriden describeContents
2021-11-23 15:01:33 +03:00
Dmitriy Novozhilov
8cdddbfd9d
[FIR] Implement checkers for FIR parcelize plugin
...
There is one of checks left unimplemented (FirParcelizePropertyChecker.checkParcelableClassProperty)
because it requires huge commonization of detecting which type can be
serialized and which not, which is not prioritized job for now
2021-11-23 15:01:31 +03:00
Dmitriy Novozhilov
eac9a9fc79
[FIR] Implement FIR version of parcelize plugin
...
This commit includes only generation of declarations and
ir backend part, checkers are added in separate commit
2021-11-23 15:01:29 +03:00
Dmitriy Novozhilov
40d8451698
Add compiler diagnostic tests for parcelize checkers
2021-11-23 15:01:26 +03:00
Dmitriy Novozhilov
b84ee64994
Move parcelize checkers testdata to :parcelize-compiler module
2021-11-23 15:01:23 +03:00
Dmitriy Novozhilov
a093052b77
Delete sources of parcelize IDE plugin
...
They are moved to intellij community repo, so those sources in kotlin
repository are actually redundant
2021-11-23 15:01:22 +03:00
Ivan Kylchik
c7435ba760
Replace all occurrences of WITH_RUNTIME with WITH_STDLIB
...
We are going to deprecate `WITH_RUNTIME` directive. The main reason
behind this change is that `WITH_STDLIB` directive better describes
its meaning, specifically it will add kotlin stdlib to test's classpath.
2021-11-17 15:26:38 +03:00
Steven Schäfer
05da65654e
Parcelize: Enable warnings in tests
2021-10-26 17:06:18 +02:00
Steven Schäfer
ca74b7becc
AsmLikeInstructionListingTest: Handle remaining instructions
...
Adds argument printing for TypeInsnNode, IincInsnNode,
MultiANewArrayInsnNode, InvokeDynamicInsnNode,
TableSwitchInsnNode, and LookupSwitchInsnNode.
2021-10-26 16:50:12 +02:00
Dmitriy Novozhilov
af0e40a0d2
[JS Test] Support RECOMPILE directive in js box tests in new infrastructure
2021-10-25 00:14:21 +03:00
Ivan Kylchik
225b064470
Implement new 'mix' test mode
...
This mode must be used when one configuration will run several tests
for different JUnit versions.
2021-10-25 00:14:20 +03:00
Dmitriy Novozhilov
f0aba5e892
[Test] Update parcelize bytecode testdata
2021-10-12 10:30:13 +03:00
Dmitriy Novozhilov
df47bffabb
[Test] Migrate Parcelize tests to new test infrastructure
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
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
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
Dmitry Petrov
bcafece28e
Minor: update testData
2021-09-03 15:54:19 +03:00
Steven Schäfer
b2e6e075ab
Parcelize: Fix diagnostics for parcelable value classes
2021-08-31 02:48:03 +02:00
Steven Schäfer
9fd777cb7d
Parcelize: Add support for unsigned types on the IR backend
2021-08-27 21:28:31 +02:00
Steven Schäfer
34a200bf09
Parcelize: Refactor AndroidSymbols
2021-08-27 21:28:31 +02:00