Commit Graph

80243 Commits

Author SHA1 Message Date
Mikhael Bogdanov f648d86d2b Generate stubs for private function with default arguments as public in interfaces 2021-03-10 09:09:08 +00:00
Andrey Zinovyev 7edbf79b4b [KAPT] Don't fail on empty InsnList
Fix failing on empty methods inline methods (after light generation)

#KT-45032 Fixed
2021-03-10 10:58:35 +03:00
Dmitry Petrov 02b5b931d4 Revert "JVM_IR indy-SAM: use '-Xsam-conversions=indy' if JVM 1.8+, LV 1.5+"
This reverts commit 679756ad
2021-03-10 07:39:29 +03:00
Vasily Levchenko ba3f27b5ce [performance] performace includes kotlinx.cli compositelly 2021-03-09 20:21:25 +00:00
Vasily Levchenko 8f97ba97f2 [kotlinx.cli] dually depends on kotlin artifacts
- in kotlin build this is project dependency
- in performace build this is artifact dependency
2021-03-09 20:21:25 +00:00
Vasily Levchenko f159a424f5 [build][plugin] kotlin native benchmarking plugin adds dependency kotlinx.cli as project dependency 2021-03-09 20:21:24 +00:00
Vasily Levchenko 0858a92b12 [build-tools] util to substitute dependency notation as artifact or project dependency 2021-03-09 20:21:23 +00:00
Vasily Levchenko 3935c290a9 [performance] prerequisite checks added 2021-03-09 20:21:23 +00:00
Vasily Levchenko 72bb1f5b30 [kotlin-native][performance][plugin] clean up 2021-03-09 20:21:22 +00:00
Sergey Bogolepov eb54689801 Update coverage sample documentation.
We need to invoke `llvm-profdata` tool from
the same toolchain as Clang (on macOS we use the one from Xcode).

(cherry picked from commit 91665b36af68b7fb3a56c0e7ed7ebb7d819adfb2)
2021-03-09 20:19:37 +00:00
Alexander Shabalin e53c8ba6ca Add FinalizerQueue to ObjectFactory (#4725)
(cherry picked from commit af70866594c31c81dfcc41b2e8b33c7a0cdc38f5)
2021-03-09 20:19:36 +00:00
Sergey Bogolepov f840b45ae1 Add hack for kotlinx-datetime:0.1.1 linkage
Provide a `std::system_category` wrapper with
the same mangling as in GCC 4.8.5

(cherry picked from commit ec5828a1f375a74a09aa49182571201e1f67b4fa)
2021-03-09 20:19:35 +00:00
LepilkinaElena fcbb921194 [LEGACY MM] Escape making extra increments and decrements during coping to the same array (#4731)
(cherry picked from commit 8b601d8e2c6bc772386ebd88d303a032a6f54237)
2021-03-09 20:19:34 +00:00
Igor Chevdar f9f948fea6 [IR] Fixed problems with nested inline classes
Fixes https://youtrack.jetbrains.com/issue/KT-45139 as well

(cherry picked from commit 44916e39bfa69325a9ab73cb4533bd2612fb4e56)
2021-03-09 20:19:34 +00:00
Sergey Bogolepov f5f7e976f6 Fix #KT-45094
Rebuild linux toolchains with an older OS.

(cherry picked from commit 1d249ad7b592573dc4478f0f6cefe2766c323e12)
2021-03-09 20:19:33 +00:00
Sergey Bogolepov 357f2be14e [Toolchain] Archive versioning
Allow toolchain builder to add a suffix to toolchain name.
It is useful for rebuilding the same toolchain in different environment.

(cherry picked from commit 83148fc5bb4e8bcc5afcf119df53ec1bc854be17)
2021-03-09 20:19:32 +00:00
Florian Kistner bd614aba0b Retain typed generics in ObjC export stubs (#4727)
* Add ObjC export test with disabled generics
* Retain typed generics in ObjC export stubs
* Introduce ObjC variance enum to decouple stubs from Kotlin variance

(cherry picked from commit 4d7c78b952a467ca3318c8c49d36b768fdc1ef9c)
2021-03-09 20:19:31 +00:00
LepilkinaElena 6641b4f029 [LEGACY MM] Fixed types in messages for tracing GC (#4729)
(cherry picked from commit 2f34b0f98e77226f02809a685a96ebb683a69e9d)
2021-03-09 20:19:30 +00:00
Dmitry Petrov 679756ad07 JVM_IR indy-SAM: use '-Xsam-conversions=indy' if JVM 1.8+, LV 1.5+ 2021-03-09 23:16:11 +03:00
Alexander Udalov 8294aed40c IR: add descriptor to "unbound symbols not allowed" message
This will help in diagnosing problems such as KT-45236.
2021-03-09 21:07:53 +01:00
Alexander Udalov e3dc112c5f Add original KotlinType to rendered IrErrorType
Also improve an error message in `IrType.erasedUpperBound`, which seems
like a frequent first place where the JVM IR backend crashes in case an
error type has made it past psi2ir.

This will help in diagnosing problems such as KT-45016.
2021-03-09 21:07:53 +01:00
Alexander Udalov cd9463ae8d Minor, add toString for GeneratedFile 2021-03-09 21:07:53 +01:00
Alexander Udalov bdaeaca5ae Psi2ir: do not generate default accessor body for expect properties
Because generateDefaultGetterBody/generateDefaultSetterBody reference
the property's backing field, which in case of extension properties
leads to an error "Unbound symbols not allowed" because extension
property cannot have a backing field.

In some way, this check is similar to the `isExpect` check in
`generatePrimaryConstructor`.
2021-03-09 20:51:02 +01:00
Alexander Udalov 5fc9f3bc17 Minor, add box test for unreachable uninitialized property
#KT-44496
2021-03-09 20:50:39 +01:00
Alexander Udalov 247efb220c Do not require backing fields for extension properties
This has no effect on correct code because extension properties cannot
have a backing field anyway and that is checked separately. But this
function is used in psi2ir to determine whether or not to create a
backing field for a property, and in case the code where the property is
declared is unreachable like in KT-44496 and has no explicit getter or
setter, it would previously return true for extension properties, which
on JVM would result in an actual field in the class file, which made no
sense.

After this change, the compiler will actually crash with an exception in
the IR validaton step because the symbol for the field is unbound. That
is a bit better than proceeding to generate potentially invalid
bytecode, but of course a proper fix would be to report an error in the
frontend.

 #KT-44496
2021-03-09 20:50:39 +01:00
Ilya Kirillov 81baf4fae5 FIR IDE: collect diagnostics under read lock 2021-03-09 18:30:35 +01:00
Ilya Kirillov 770468c78e FIR IDE: refactor designated lazy transformers 2021-03-09 18:30:35 +01:00
Pavel Kirpichenkov 4bc019736b [MPP] Add KotlinSDK to the set of predefined test SDKs
^KT-45145 Fixed
2021-03-09 20:05:32 +03:00
Ilya Kirillov d8a3dacdc5 FIR: return back supertypeRefs list recreation 2021-03-09 15:41:42 +01:00
Pavel Punegov efa43052db Fix Kotlin/Native dist path setting in Klib tests 2021-03-09 14:38:59 +00:00
Vladimir Ivanov fd02802028 [Native] Export KDoc into generated native header 2021-03-09 16:50:23 +03:00
Jinseong Jeon 6427117a35 FIR CFG: correct edge label from a node that returns Nothing
If it's not within a try/catch/finally, that should be an uncaught
exception path.

^KT-45327 Fixed
2021-03-09 14:44:42 +03:00
Jinseong Jeon d8fb54c6bd Reproduce KT-45327: false positive MUST_INITIALIZED_OR_BE_ABSTRACT after conditional exitProcess 2021-03-09 14:44:42 +03:00
Alexander Udalov 628d75c7cd JVM: fix EnclosingMethod information for SAMs in inline lambdas
Pass parentContext to SamWrapperCodegen from the outside instead of
using the one from parentCodegen. The difference is that in case of an
inline lambda, we're creating an InlineLambdaContext whose parent is a
ClosureContext, but the codegen for that lambda has that latter
ClosureContext as its context. So the getNonInlineOuterContext call in
SamWrapperCodegen.generateInnerClassInformation wasn't able to identify
that this is a context of a lambda that needs to be skipped, and
generated it as EnclosingMethod, which caused Java reflection to fail
because once that lambda was inlined, it was removed and thus didn't
make it to runtime.

 #KT-44827 Fixed
2021-03-09 11:43:11 +01:00
Nikolay Krasko 9e5bf7e05c Increase amount of memory for Gradle Importing Tests
We have OOM in recent tests executions
2021-03-09 13:32:27 +03:00
Dmitriy Dolovov 1a3515dbab [Commonizer] Use Flag.Class.IS_VALUE instead of Flag.Class.IS_INLINE
Also: Rename CirClass.isInline to CirClass.isValue
2021-03-09 13:13:30 +03:00
Dmitriy Dolovov 0fb99f1bf2 [Commonizer] Rename: entityBuilders.kt to CirSerializers.kt 2021-03-09 13:13:24 +03:00
Dmitriy Dolovov b41cc57ff7 [Commonizer] Rename: Cir<Entity>.build<Entity> to Cir<Entity>.serialize<Entity> 2021-03-09 13:13:18 +03:00
Dmitriy Dolovov 010ea39417 [Commonizer] Rename: MetadataBuilder -> CirTreeSeralizer 2021-03-09 13:13:13 +03:00
Dmitriy Dolovov 4f33abf5e4 [Commonizer] Minor. Rename: CirTypeProjectionImpl -> CirRegularTypeProjection 2021-03-09 13:13:06 +03:00
Dmitriy Dolovov 6b0f080ed8 [Commonizer] Rename: TypeParameterResolver -> CirTypeParameterResolver 2021-03-09 13:12:59 +03:00
Dmitriy Dolovov d07ede7305 [Commonizer] Move all CIR deserialization logic to CirDeserializers.kt 2021-03-09 13:12:53 +03:00
Dmitriy Dolovov 1737bdd4d4 [Commonizer] Extract CirTypeResolver to a separate file 2021-03-09 13:12:47 +03:00
Dmitriy Dolovov 6697c4d197 [Commonizer] Put all CIR utils to a single file 2021-03-09 13:12:42 +03:00
Dmitriy Dolovov 20ab88c001 [Commonizer] Extract CirStandardTypes from CirTypeFactory 2021-03-09 13:12:37 +03:00
Dmitriy Dolovov 298b595826 [Commonizer] Move TA expander to 'commonizer.metadata' package 2021-03-09 13:12:32 +03:00
Dmitriy Dolovov 82589c0898 [Commonizer] Move recursion markers to 'commonizer.cir' package 2021-03-09 13:12:26 +03:00
Dmitriy Dolovov f0669c752f [Commonizer] Extract creation of CirProperty from CirPropertyFactory 2021-03-09 13:12:21 +03:00
Dmitriy Dolovov 3778d1d631 [Commonizer] Extract creation of CirFunction from CirFunctionFactory 2021-03-09 13:12:15 +03:00
Dmitriy Dolovov d3c60ab72e [Commonizer] Extract creation of CirClass from CirClassFactory 2021-03-09 13:12:09 +03:00