Commit Graph

48821 Commits

Author SHA1 Message Date
Dmitriy Dolovov f663c0ea87 Rename "Konan" -> "KotlinNative" in class and function names (part 3) 2018-09-08 12:16:25 +03:00
Dmitriy Dolovov cb7009ace8 K/N: Rename "kotlin-native-serializer" to "kotlin-native-library-reader" 2018-09-08 12:16:24 +03:00
Dmitriy Dolovov 6701dbb220 K/N: Clean-up unused K/N stuff 2018-09-08 12:16:24 +03:00
Dmitriy Dolovov 88638ef655 K/N: Clean-up logic for import of K/N projects from Gradle 2018-09-08 12:16:23 +03:00
Dmitriy Dolovov dd203830a8 K/N: Refactor KotlinNativePluginSearchPathResolver
Get rid of dependency on KonanPaths project component
2018-09-08 12:16:23 +03:00
Dmitriy Dolovov b157e9d5a1 Rename "Konan" -> "KotlinNative" in class and function names (part 2) 2018-09-08 12:16:23 +03:00
Dmitriy Dolovov 07a1d683ed MPP: Better detection of KLIB library kind 2018-09-08 12:16:23 +03:00
Dmitriy Dolovov 9b92d38917 K/N: Move classes and functions we don't want to expose
These classes we don't want to expose to Gradle DSL users
from "kotlin-native-utils" to "kotlin-native-serializer" module.
Reason: "kotlin-gradle-plugin-api" depends on "kotlin-native-utils",
while "kotlin-native-serializer" is used only inside of IDEA plugin.
2018-09-08 12:16:22 +03:00
Mikhail Glukhikh a4daf9f1ff More precise libraryMap in createResolvedModuleDescriptors 2018-09-08 12:16:22 +03:00
Dmitriy Dolovov 2ff538fc87 K/N: Correct creation of module descriptors for K/N module 2018-09-08 12:16:22 +03:00
Dmitriy Dolovov fbeff9245e More correct detection of Kotlin/Native stdlib by open IDEA projects 2018-09-08 12:16:21 +03:00
Alexander Gorshenev e8f238d53c Make sure zip filesystems are closed on exit 2018-09-08 12:16:21 +03:00
Dmitriy Dolovov 46a697db82 Rename "Konan" -> "KotlinNative" in class and function names 2018-09-08 12:16:21 +03:00
Dmitriy Dolovov 337100edc3 Rename "konan" modules to "kotlin-native" modules 2018-09-08 12:16:20 +03:00
Dmitriy Dolovov 4cedbe5f39 Disable mandatory adding of KLIBs into the root IDEA module 2018-09-08 12:16:20 +03:00
Ilya Matveev 299e508204 Add libraries provided by the K/N compiler in dependencies 2018-09-08 12:16:20 +03:00
Simon Ogorodnik c4a33e0a2f [CHECKME] Support non-convention KotlinNativeCompile task in IDEA import 2018-09-08 12:16:19 +03:00
Dmitriy Dolovov 04fca2ac0d [IDEA plugin for K/N] Source code reorganization
Move Gradle part of plugin from 'idea-gradle/native' to
'idea-gradle-native' module
2018-09-08 12:16:19 +03:00
Dmitriy Dolovov f6c61fbe30 Remove useless TODOs 2018-09-08 12:16:19 +03:00
Dmitriy Dolovov beb12b693f MPP: Keep original capabilities in descriptors created for all KLIBs 2018-09-08 12:16:19 +03:00
Dmitriy Dolovov 7623169130 MPP: implement IdePlatformKind, its resolution and tooling for K/N 2018-09-08 12:16:18 +03:00
Svyatoslav Scherbina b86afb0bab Enable implicit integer coercion for Kotlin/Native interop libraries 2018-09-08 12:16:18 +03:00
Dmitriy Dolovov 2161451482 [K/N lib] Implement multiple fixes:
- source code simplifications
- more correct work with paths
- builtIns module requires dependency on itself
2018-09-08 12:16:17 +03:00
Dmitriy Dolovov 3c5c21256f [K/N lib] fix in POM dependencies for konan-serializer module 2018-09-08 12:16:17 +03:00
Ilya Matveev d49ff1aa2c [K/N lib] Add timeout for native dependency extraction 2018-09-08 12:16:17 +03:00
Dmitriy Dolovov db29d12c60 [K/N lib] merge metadata & serializer, publish the result to Maven 2018-09-08 12:16:17 +03:00
Dmitriy Dolovov eda29a48a4 [K/N lib] IDEA plugin for K/N + missed items in konan-serializer module 2018-09-08 12:16:16 +03:00
Dmitriy Dolovov 51bb408c56 [K/N lib] add Kotlin/Native deserializer and library reader 2018-09-08 12:16:16 +03:00
Dmitriy Dolovov fade311b92 [K/N lib] add Kotlin/Native metadata 2018-09-08 12:16:15 +03:00
Vyacheslav Gerasimov 114b5288b0 Set until-build for Idea 182 plugin to 182.* 2018-09-08 12:06:30 +03:00
Ilya Gorbunov 53334664c7 Advance bootstrap to 1.3.0-dev-322 2018-09-07 21:28:12 +03:00
Leonid Startsev 9aba3b6c72 Add forgotten kotlinx-maven-serialization 2018-09-07 21:17:08 +03:00
Leonid Startsev dea69e4469 Integrate serialization plugin into big Kotlin plugin
Split import handlers into multiple files
Add empty Maven handler for Android Studio

Add testRuntime dependency on kx-serialization-plugin for all modules which require compiler
plugins in test classpath
2018-09-07 21:17:07 +03:00
Leonid Startsev 087f60389a Migrating to 1.3 preview API 2018-09-07 21:17:06 +03:00
Leonid Startsev 359a37c9c3 Fix after rebase 2018-09-07 21:17:05 +03:00
Leonid Startsev 090f7e67eb Separate module for unshaded version 2018-09-07 21:17:04 +03:00
Leonid Startsev 6770cccd61 [IR-plugin] New symbol tables 2018-09-07 21:17:04 +03:00
Leonid Startsev 566e5ce603 Updates for new API 2018-09-07 21:17:03 +03:00
Leonid Startsev 2e50e4e816 Extract naming conventions 2018-09-07 21:17:02 +03:00
Leonid Startsev 8cd5966c4a IR-plugin
[IR-plugin] Synthetic property declaration in $serializer

[IR-plugin] Saving most of simple cases

[IP-plugin] Some refactoring and start of work on load func

[IP-plugin] Loading simple case without validation

[IP-plugin] Rebase to IR types and Native-enabled

[IP-plugin] Generating .serializer() accessor in companion

[IP-plugin] Basic synthetic deserializing constructor, fixed some todos

[IR-plugin] Remove reference to SerialDescriptor.init() since K/N now has freeze-aware lazy
2018-09-07 21:17:01 +03:00
Leonid Startsev edcac21723 Names from new runtime 2018-09-07 21:17:00 +03:00
Leonid Startsev 223733558c Use new approach to resolve compiler plugin classpaths in gradle 2018-09-07 21:16:59 +03:00
Leonid Startsev 9ad3922c7d Fix 1.2.50 compatibility
Updated version to 0.5.1

Fix resolving serializers for classes from other modules
(Kotlin/kotlinx.serialization/153)

Respect @SerialName on classes

Add support for @SerialInfo on class-level
2018-09-07 21:16:58 +03:00
Leonid Startsev 26ac6bd887 While creating descriptors, add type arguments not from serializable class definition
but from actual KSerializer implementation.
This provides better support for user-defined or external generic serializers

Fix order of resolving serializers: user-overriden should go before polymorphic and default

Don't generate additional constructor if @SerialInfo has no properties

Workaround for recursive resolve
on @Serializable(with) and @Serializer(for) pair annotations

Don't trigger the whole resolve if we need just to check that there is
an argument on the annotation; check PSI instead.

Also, return back check on serializable annotation constructor arguments
2018-09-07 21:16:57 +03:00
Leonid Startsev 572e8873ca Respect @Serializable(with) on properties on JS too.
Don't generate constructor for passing generic serializers if user already defined proper one.
2018-09-07 21:16:56 +03:00
Paul de Vrieze 365a183d01 Fix for Kotlin/kotlinx.serialization/136
Create a version that actually passes a type parameter in write$Self.
This version should take the correct type parameters from the class
rather than adding a function type parameter shared with all
serializers.
2018-09-07 21:16:56 +03:00
Leonid Startsev 114fb5790a Fix for Kotlin/kotlinx.serialization/118
Fix for Kotlin/kotlinx.serialization/123: resolve annotation parameters in-place
Fix for Kotlin/kotlinx.serialization/125
Now polymorphic serializer required by all modalities expect final
2018-09-07 21:16:55 +03:00
Leonid Startsev 97694e65aa Update version to 0.4
Optimize references in generated code. Also fixes Kotlin/kotlinx.serialization/issues/65

Fix (again) broken char boxing

Rebased on 1.2.40 and fixed broken compatibility

Fix https://github.com/Kotlin/kotlinx.serialization/issues/107 and code reformatting

(cherry picked from commit d4c307d)

Add correct type parameter information to synthetic declarations

Needed by kapt due to https://github.com/Kotlin/kotlinx.serialization/issues/76

Make correct call to sealed class constructor

Fixes https://github.com/Kotlin/kotlinx.serialization/issues/112

Bump version

1.2.50-eap-1 compatible
2018-09-07 21:16:54 +03:00
Leonid Startsev 5e19e89dda Enhanced support for custom serializers definition
kotlin.Triple serializer

Resolving serializers for mutable collection interfaces on JS

Remove idea-related source files form maven compilation

Serialization url in plugin.xml

Removed note about JPS incompatibility

Don't use serial names in produced JS code (https://github.com/Kotlin/kotlinx.serialization/issues/43)

Generator for calling `update` functions

Fix synthetic serialinfo implementations for 2-slots vars (double and long) (https://github.com/Kotlin/kotlinx.serialization/issues/60)

Prohibit usage of nullable serializers for non-null fields (https://github.com/Kotlin/kotlinx.serialization/issues/59)

Fix incorrect `this` referencing after update to 1.2.20 compiler
2018-09-07 21:16:53 +03:00
Leonid Startsev 8c4daef969 Maven and Gradle project import handlers 2018-09-07 21:16:52 +03:00