Nikolay Krasko
48a4d7d418
Build: drop maven publication for Kotlin plugin artifacts
2021-06-09 17:43:54 +03:00
Leonid Startsev
dd21326425
Create a copy of incorrectly deserialized parent's writeSelf function
...
To avoid problems during code generation when INVOKEDYNAMIC
is used instead of static
#KT-47161 Fixed
2021-06-08 11:53:47 +00:00
Mikhail Glukhikh
0a670bf055
Report EXPERIMENTAL_API diagnostics on various implicit usages
...
#KT-32443 Fixed
#KT-22852 Fixed
2021-06-08 11:37:28 +03:00
Sergey Shanshin
71c9e62d64
Added support serialization of local classes in IR backend
...
Resolves Kotlin/kotlinx.serialization#1427
2021-06-02 16:43:31 +00:00
Leonid Startsev
1f837134bb
Support for @EncodeDefault annotation
2021-06-02 13:43:39 +00:00
Leonid Startsev
b43e5a5e7d
fixup! Fix tests and review notes
2021-06-01 16:41:56 +00:00
Leonid Startsev
6a5cf00d7a
Optimize serializer instantiation: use Companion.serializer() when possible
...
Add test for sealed hierarchy
2021-06-01 16:41:55 +00:00
Leonid Startsev
b61277df97
Support annotations in constructor signatures of special serializers
2021-06-01 16:41:55 +00:00
Leonid Startsev
229085f3d1
Support default parameter values in @SerialInfo annotations
...
#KT-46739 Fixed
Fixes https://github.com/Kotlin/kotlinx.serialization/issues/1461
2021-06-01 16:41:54 +00:00
Sergey Shanshin
961ee92c15
Fix bytecode for serializable enums in generated tests
2021-05-27 15:35:12 +03:00
Sergey Shanshin
16dbafced1
Add .serializer() to enum companion and object with custom serializer
...
Fixes Kotlin/kotlinx.serialization#1386
2021-05-26 16:07:59 +03:00
Dmitriy Novozhilov
d114913cd2
Replace usages of addToStdlib.firstNotNullResult with firstNotNullOfOrNull
2021-05-14 14:30:19 +03:00
Leonid Startsev
d60a8f9baa
Use correct type in KClassReference
...
Make sure that writeSelf function remains static
2021-05-06 19:53:21 +00:00
Leonid Startsev
a58f29aa06
Remove unnecessary ignoreIndexTo outside writeSelf
...
It never worked: descriptor.declaresDefaultValue used by property.isOptional
works only for current module
(since it looks up psi), so we never access default value initializers
outside current module
2021-05-06 19:53:21 +00:00
Leonid Startsev
66f39ca185
Use SerializerFactory interface and generate function
...
for sealed and abstract serializable classes.
Fixes https://github.com/Kotlin/kotlinx.serialization/issues/1116
Fixes https://github.com/Kotlin/kotlinx.serialization/issues/1078
2021-05-06 19:53:20 +00:00
Sergey Shanshin
8dd307573a
Fix IR compilation of external serializers in native
2021-04-30 18:17:08 +03:00
Andrey Zinovyev
e4a5775570
Remove duplicated code in annotation-based-compiler-plugins-ide-support
2021-04-29 23:14:16 +03:00
Andrey Zinovyev
8afb6d2761
[lombok] Support import from gradle to IDE
...
Introduce base module for ide compiler plugins
2021-04-29 23:14:15 +03:00
Sergey Shanshin
5f9fe8e5de
Fix IR compilation of kotlix.serialization runtime in native
2021-04-12 17:08:08 +03:00
Leonid Startsev
f94e8f95d1
Support new inline(value) class syntax in serialization plugin
...
Use .isInlineClass() instead of .isInline + .isValue
#KT-45783 Fixed
2021-04-08 11:52:18 +00:00
Abduqodiri Qurbonzoda
19116e5623
Migrate compiler and others from sumBy to sumOf
2021-04-08 03:48:02 +03:00
Leonid Startsev
70fa6d50d3
Prohibit serializable inner classes
...
Fixes https://github.com/Kotlin/kotlinx.serialization/issues/1101
2021-04-05 18:26:25 +03:00
Leonid Startsev
c66cddc442
Prohibit serializable annotation on local classes and anonymous objects
...
#KT-45541 Fixed
2021-04-05 18:26:24 +03:00
Leonid Startsev
3b789448a3
Support static final write$Self method inside serializable classes on IR
...
to properly serialize class hierarchies with/or private fields.
JVM only for now, because Native/JS do not have private fields.
Update tests and test data and rebase fix.
Unify formEncodeDecodePropertyCall functions.
Fix incorrect reference to object in writeSelf,
so properties dependent on other properties would be correctly compared
with defaults.
2021-04-05 18:25:46 +03:00
Leonid Startsev
9be5421e7c
Use .nullable extension instead of NullableSerializer() constructor
...
Use correct projection in createClassReference()
so primitive-boxes arrays behave correctly on JVM
2021-04-05 18:25:45 +03:00
Vyacheslav Gerasimov
f2a892a972
Cleanup 201 and as41 bunch files
2021-03-30 14:23:43 +03:00
Nikolay Krasko
b903f87704
Drop kotin/kotlinx and kotlin/kotlinx.html bintray usages (KTI-528)
2021-03-26 21:08:45 +03:00
Sergey Shanshin
cfca7183e5
Add inspections and quickfixes of redundant Json format instantiation
...
Resolves KT-45075
2021-03-18 05:44:03 +03:00
Sergey Shanshin
bf6dda2d99
Lazy delegate for serializer in objects, sealed and abstract classes
...
Fixes Kotlin/kotlinx.serialization#585
2021-03-03 21:41:37 +03:00
Anton Bannykh
b0e0e62c0b
Propagate isExternal flag in Psi2Ir and deserializer
2021-03-02 14:30:16 +03:00
Alexander Udalov
0ebdf7c3c4
IR: add getPrimitiveType, optimize some usages of isInt/isByte/...
2021-02-25 21:00:09 +01:00
Alexander Udalov
7e149a3a44
IR: remove unneeded dependencies on psi2ir
2021-02-24 19:07:38 +01:00
Sergey Shanshin
8c20c655fe
Updated bytecode of serialization for IR
...
`shouldEncodeElementDefault` now checked before evaluating default value
2021-02-18 15:03:35 +03:00
Sergey Shanshin
91f1cb88c1
Support serialization of java enum classes in IR
...
Fixes Kotlin/kotlinx.serialization#1334
2021-02-17 20:24:31 +03:00
Sergey Shanshin
de06a69b12
Added external serializers in serialization plugin for IR backend
...
- added fallback support of external serializers in IR
- implemented calculations of properties default values in IR
- swapped check of shouldEncodeElementDefault and comparing the property with default value in IR. Now default value calculated only of shouldEncodeElementDefault returns false
2021-02-17 20:16:34 +03:00
Sergey Shanshin
122d04b9fa
Returned support for generic serializers in @UseSerializers ( #4055 )
...
Fixes Kotlin/kotlinx.serialization#1305
2021-01-26 14:57:40 +03:00
Sergey Shanshin
10d9259df5
Returned support for nullable types by not null serializers
...
Fixes Kotlin/kotlinx.serialization#1265
2021-01-19 20:44:47 +03:00
Alexander Udalov
d101f1b3a6
Minor, fix compiler warnings in kotlin-serialization-compiler
2021-01-13 19:17:21 +01:00
Dmitriy Novozhilov
1e67702128
[Test] Introduce opt in @ObsoleteTestInfrastructure for migrating tests to new infrastructure
2021-01-11 14:19:10 +03:00
Alexander Udalov
ed9a0e514d
Regenerate tests and fir-tree
2021-01-03 14:53:41 +01:00
Georgy Bronnikov
d714adacae
IR: removing WrappedDescriptors from symbols
2020-12-23 18:50:51 +03:00
Leonid Startsev
a5ddb1fdf1
Update error about unsupported inline classes
...
Remove unused declarations
2020-12-19 20:34:45 +03:00
Leonid Startsev
272273baed
Support serializable inline classes in IR plugin
...
as well as standard unsigned types.
2020-12-19 20:34:45 +03:00
Leonid Startsev
631a72d14a
Support old serialization runtime versions
...
(where exception signatures weren't changed)
after f671c27f27
2020-12-19 20:34:11 +03:00
Leonid Startsev
f671c27f27
Adapt serialization exceptions constructor calls in legacy JS
...
to signature change
(see https://github.com/Kotlin/kotlinx.serialization/pull/1054
and commit eea4ff33a0 )
2020-12-19 19:18:15 +03:00
Leonid Startsev
18e7a1485c
Additional fix for Compose:
...
directly search for fields in IR class w/o using the symbol table.
Because Compose copies whole IR, fields got referenced incorrectly.
In the end, bytecode generator thinks that this is a field from other
class and creates a synthetic setter, which is prohibited in Java 9+
(Update to non-static final field ... attempted from a different method than <init>)
2020-12-19 19:18:14 +03:00
Dmitriy Novozhilov
bc7e18fb8a
[TEST] Regenerate tests after previous commit
2020-12-16 19:52:28 +03:00
Mads Ager
5d9e86863a
[IR] Make isHidden and isAssignable explicit on IrValueParameter.
...
There were a couple of places where they were confused and
isAssignable was passed as a positional parameter in the position
of isHidden.
2020-12-04 17:04:45 +01:00
Dmitriy Novozhilov
986ab9cb54
Build: remove useless .as40 files
2020-11-28 14:25:54 +03:00
Ilmir Usmanov
92f1681de0
Value classes: treat @JvmInline value classes as inline classes
...
Report error on value classes without @JvmInline annotation.
Do not check for @JvmInline annotation in value classes since
it breaks reflection.
2020-11-27 23:52:06 +01:00