Commit Graph

86112 Commits

Author SHA1 Message Date
Pavel Kunyavskiy 773c82ae48 Refactor AnnotationImplementationLowering
- Replaced UNDEFINED_OFFSET with SYNTHETIC_OFFSET, it's required by
  Native backend codegen
- Fixed missing overridden symbols
- Enforce adding fakeoverrides for members not overridden by backend
- Support more points for platform customisation
2021-09-23 06:59:32 +00:00
Jinseong Jeon d9424fa092 FIR IDE/LC: rename origin of constant values 2021-09-23 00:11:26 +02:00
Jinseong Jeon d3d3aeacb4 FIR IDE: make compile-time constant evaluator an object
because it doesn't have any states.
2021-09-23 00:11:26 +02:00
Jinseong Jeon 414881403b FIR IDE: handle annotation array values properly 2021-09-23 00:11:26 +02:00
Jinseong Jeon ffd0a5ed14 FIR IDE: make constant values symbol-free 2021-09-23 00:11:26 +02:00
Jinseong Jeon f94dad7005 FIR IDE: migrate annotation parameter conversion util 2021-09-23 00:11:26 +02:00
Jinseong Jeon 0f16a2cb92 FIR IDE: rename some of constant values for consistency 2021-09-23 00:11:25 +02:00
Jinseong Jeon ce445700b8 FIR IDE: split conversion utils for KtConstantValue to its own object 2021-09-23 00:11:25 +02:00
Jinseong Jeon 4c8d975ae5 FIR LC: handle more kinds of annotation values 2021-09-23 00:11:25 +02:00
Jinseong Jeon 6ef2dad895 FIR IDE: more comprehensive abstractions of annotation values 2021-09-23 00:11:25 +02:00
Jinseong Jeon fe41c4513f LC: weaken condition to lookup nested annotation
FIR LC has a different abstraction, so using the specific class name is
literally too specific to FE 1.0 LC.

We could introduce a common interface for those, but checking
`kotlinOrigin` is good enough, and thus type-checking their common
ancestor is good enough too.
2021-09-23 00:11:25 +02:00
Jinseong Jeon 744961bd00 FIR IDE: test resolution of various annotation values 2021-09-23 00:11:25 +02:00
Jinseong Jeon 150f066254 FIR LC: use property modifiers for backing field if lateinit 2021-09-23 00:11:25 +02:00
Svyatoslav Kuzmich a2bfcfeae8 [Wasm] Do not erase interfaces down to Any type in Wasm signature.
This enables overloading virtual methods with different interface types
2021-09-22 19:49:44 +03:00
Svyatoslav Kuzmich 6db7154876 [Wasm] Build bridges for non-virtual functions that implement interfaces 2021-09-22 19:49:43 +03:00
Steven Schäfer 1eb9a5a86d JVM IR: Don't generate bridges for default argument stubs (KT-46389) 2021-09-22 18:45:54 +02:00
Ilya Gorbunov 40b5a7d449 Provide infix compareTo extension for Comparable<T> #KT-46423 2021-09-22 15:56:27 +00:00
Tianyu Geng 44e0efc23c FIR: fix run config after Analysis API refactoring 2021-09-22 15:47:13 +02:00
Abduqodiri Qurbonzoda eccd035881 Upgrade kotlinx-html-js version to 0.6.12 in gradle plugin tests because of #KT-24782 2021-09-22 12:56:12 +00: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
Leonid Startsev f033d3d5b7 Remove ignored dexing in tests after it was fixed
by rewriting IR codegen (https://github.com/JetBrains/kotlin/pull/3986/files#diff-9fe05d2f7c421d566cd1294a191d5a2e8f6e6f7a5f6b638542b79369caf91d4eR454)
2021-09-22 11:41:13 +00:00
Yahor Berdnikau 24d088242c Use JVM toolchain for buildSrc module.
Before this change buildSrc module was compiled with current user JDK.
For example on CI it is JDK 1.8. But when the user is using JDK
different from 1.8, buildSrc compilation misses remote build cache. This
may lead to full project recomplilation on the user side.
2021-09-22 11:35:07 +00:00
Ilya Kirillov d3dd9cd078 Analysis API: add KDoc to providers 2021-09-22 12:57:18 +02:00
Ilya Kirillov fb8044641b LL API: move DeclarationCopyBuilder out of public API 2021-09-22 12:57:16 +02:00
Ilya Kirillov 7c0a9230fd LL API: remove empty files 2021-09-22 12:57:16 +02:00
Ilya Kirillov 083dcc4ec6 Analysis API: refactoring, separate AbstractCompilerBasedTest.kt into multiple files 2021-09-22 12:57:15 +02:00
Ilya Kirillov 678b931ba3 Analysis API: introduce Project Structure 2021-09-22 12:57:14 +02:00
Svyatoslav Scherbina c9348b3512 Native: improve "could not build module" cinterop error message
Extract diagnostics from imported modules by instructing libclang to
serialize diagnostics to file. Then deserialize this file and use
first compilation errors in the error message.

^KT-35059 Fixed
2021-09-22 07:31:23 +00:00
Svyatoslav Scherbina 12f4cd5aa1 Native: add unit tests for modules support in Interop/Indexer 2021-09-22 07:31:22 +00:00
Svyatoslav Scherbina fb81ae0cd1 Native: fix deadlock in kotlinx.cinterop.typeOf impl for JVM
Don't use ConcurrentHashMap.computeIfAbsent for typeOf cache,
because the computation may call typeOf recursively for different type
(e.g. C enum var type computation calls typeOf for enum base integer type),
which might cause a deadlock in computeIfAbsent.
2021-09-22 07:31:22 +00:00
sebastian.sellmair a279f682bb [Commonizer] Add additional documentation to ClassOrTypeAliasTypeCommonizer
^KT-48288
2021-09-22 06:45:12 +00:00
sebastian.sellmair 6d17e4da57 [Commonizer] Implement disabled tests for ^KT-48288
^KT-48288
^KT-48850
2021-09-22 06:45:11 +00:00
sebastian.sellmair 104d2b347b [Commonizer] Minor: CirType: Use copyInterned over createInterned
^KT-48288
2021-09-22 06:45:11 +00:00
sebastian.sellmair 3b67bcbf4d [Commonizer] ClassOrTypeAliasTypeCommonizer: Remove faulty argument substitution
Underlying types from CirTypeAliasType do not require
parent argument replacement.

^KT-48288
2021-09-22 06:45:11 +00:00
sebastian.sellmair 7bf62ab159 [Commonizer] Implement tests for 'crossed' type aliases
^KT-48288
2021-09-22 06:45:10 +00:00
sebastian.sellmair 1fca19258d [Commonizer] ParameterizedTypesCommonizationTest: Remove unnecessary symbols
^KT-48288
2021-09-22 06:45:10 +00:00
sebastian.sellmair fa2577dda8 [Commonizer] Improve performance of deserialization
^KT-48288
2021-09-22 06:45:09 +00:00
sebastian.sellmair 16bf5f3df3 [Commonizer] Improve performance of ClassOrTypeAliasTypeCommonizer
Performance is improved by reducing calls to 'backwardsTypeDistance'

^KT-48288
2021-09-22 06:45:09 +00:00
sebastian.sellmair 64d2ba4029 [Commonizer] Improve performance of 'backwardsTypeDistance'
This commit also introduces common sealed interfaces to represent
classifiers and types coming form dependencies or 'sources'

^KT-48288
2021-09-22 06:45:09 +00:00
sebastian.sellmair fadb91fa35 [Commonizer] Rename CirCommonClassifierId to AssociatedClassifierIds
^KT-48288
2021-09-22 06:45:08 +00:00
sebastian.sellmair de1ae970d7 [Commonizer] ClassOrTypeAliasTypeCommonizer: Improve comments
^KT-48288
2021-09-22 06:45:08 +00:00
sebastian.sellmair 7485d2529b [Commonizer] Implement simple BackwardsTypeSubstitutionCommonizationTest
^KT-48288
2021-09-22 06:45:07 +00:00
sebastian.sellmair 38c7337b19 [Commonizer] Add tests to ParameterizedTypesCommonizationTest
^KT-48288
2021-09-22 06:45:07 +00:00
sebastian.sellmair e1bc6c54d7 [Commonizer] Simplify CirClassOrTypeAliasType.withParentArguments()
^KT-48288
2021-09-22 06:45:07 +00:00
sebastian.sellmair 459e01a729 [Commonizer] CirConversions: Ensure consistent function names
^KT-48288
2021-09-22 06:45:06 +00:00
sebastian.sellmair 892512cb67 [Commonizer] Remove unused/old typeAliasUtils
^KT-48288
2021-09-22 06:45:06 +00:00
sebastian.sellmair ba997905d9 [Commonizer] Remove CirClassType.visibility
^KT-48288
2021-09-22 06:45:05 +00:00
sebastian.sellmair da1eb5d96e [Commonizer] Implement CirTypeDistance.penalty
^KT-48288
2021-09-22 06:45:05 +00:00
sebastian.sellmair d0cd7c81ea [Commonizer] Minor: Change signature of CirConversions functions
^KT-48288
2021-09-22 06:45:05 +00:00