Commit Graph

87184 Commits

Author SHA1 Message Date
Ivan Gavrilovic 0ee4e386be KGP - Fix flaky tests invoking javac through JDK APIs
Tests invoking javac APIs were flaky because ClasspathAnalyzerTest
was using Gradle's ProjectBuilder, which appends tools.jar to
the system class loader. Other tests do not do that, and they
invoke javac APIs directly.

In some executions, this causes some javac classes to be loaded
from the system class loader (the one patched by Gradle), while
some of them will be loaded by UrlClassLoader which points to tools.jar
in java.home. Having javac classes from different class loaders causes
java.lang.IllegalAccessError as package private access across class loaders
is not allowed. https://bugs.openjdk.java.net/browse/JDK-8068152 has more
information on this issue.

This change fixes the issue by fully removing usage of ProjectBuilder.

Test: ClasspathAnalyzerTest
2021-11-02 18:03:34 +01:00
Ivan Gavrilovic 4d208b529d Kotlin Gradle plugin - Remove assertions from integration tests
This is because AGP 3.4 and 3.6 have version of R8 that is unable
to handle kotlin-stdlib 1.6+. Issue https://issuetracker.google.com/148661132
has more details on this.

Instead of adding logic to remove assertions based on the AGP version,
this change fully removes them to keep things simple. Also, running with
assertions enabled may be too much for the integration tests.
2021-11-02 17:53:30 +01:00
Denis.Zharkov 360d67410d FIR: Fix overridability rule for Java declarations with different return type kinds
See the class at org/jmock/Expectations
public <T> T with(Matcher<T> matcher);
public boolean with(Matcher<Boolean> matcher);

When we extending such class it we start assuming
that fake generic override overrides both of the overridden that is wrong
from POV of Java and it fails at FIR ultimate build

NB: It's hard to write a test because such Expectation-like
class is impossible to write in pure Java
2021-11-02 19:08:28 +03:00
Denis.Zharkov 2e37ec6f0c FIR: Fix false-positive ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL on invokeExtension calls 2021-11-02 19:08:27 +03:00
Denis.Zharkov 37b5237e97 FIR: Fix type alias case for callable reference resolution type 2021-11-02 19:08:26 +03:00
Yahor Berdnikau a29dfb3b48 Disable finalizing by 'cleanTestKitDir' for 'kgpDaemonTests' task.
Seems jna dependency file descriptor is leaking on Windows agents,
leading to '.testKitDir' directory remove error.
2021-11-02 15:13:26 +01:00
Mads Ager 6622846bc1 [JVM IR] Do not put destructuring params or underscores in LVT.
Putting them in the local variable table means that the debugger
needs to have special handling for parameters with specific names.
That forces us to generate mangled names for these.

Instead of also implementing the name mangling for FIR, this
change gets rid of the parameters from the LVT instead.
2021-11-02 15:13:14 +03:00
Elena Lepilkina 1b4ee63f30 [K/N] Deprecate and remove from supported list relaxed memory model 2021-11-02 12:04:46 +00:00
Elena Lepilkina f67941e244 [K/N] Replaced safe points to prologue 2021-11-02 12:04:45 +00:00
Elena Lepilkina 15dcfa2837 [K/N] Fix new FileCheck tests after rebase 2021-11-02 12:04:45 +00:00
Elena Lepilkina d8c9536edd [K/N] Fixes in tests and check function in optimized mode 2021-11-02 12:04:44 +00:00
Elena Lepilkina 4d1c2c90d6 [K/N] Assertion for checking frame in LeaveFrame for old MM 2021-11-02 12:04:44 +00:00
Elena Lepilkina a878b2e530 [K/N] Changed condition for adding EnterFrame/LeaveFrame 2021-11-02 12:04:43 +00:00
Elena Lepilkina 27490ca7ce [K/N] Removed extra consition for C to Kotlin bridges because they have already needed annotation 2021-11-02 12:04:43 +00:00
Elena Lepilkina 23e5079391 [K/N] Added test for checking C callback set with Kotlin function throwing exception 2021-11-02 12:04:43 +00:00
Elena Lepilkina 751f1a3b91 [K/N] Added FileCheck for noreturn attribute absence for suspend functions 2021-11-02 12:04:42 +00:00
Elena Lepilkina 48e3df5224 [K/N] Small refactoring (review fixes) 2021-11-02 12:04:42 +00:00
Elena Lepilkina 778bbaf5b0 [K/N] Added frame check in LeaveFrame 2021-11-02 12:04:41 +00:00
Elena Lepilkina b716872988 [K/N] All bridges should have cleanup landingpad block (BB with return can be called before setting terminated function used as reason to add Enter/Leave frame functions) 2021-11-02 12:04:41 +00:00
Elena Lepilkina 2d72f4d5a9 [K/N] Added checks for tests that current frame after catch is right 2021-11-02 12:04:40 +00:00
Elena Lepilkina ccddf5b2d5 [K/N] Don't add safe point and state switching after setCurrentFrame in cleanup landingpad 2021-11-02 12:04:40 +00:00
Elena Lepilkina 28e30f7a45 [K/N] Replace thread state switching in objC interop before setting frame in kandingpad block 2021-11-02 12:04:40 +00:00
Elena Lepilkina c228bfb18f [K/N] Fix ObjC bridges LeaveFrame generation (return values in bridges are produced before epilogue block) 2021-11-02 12:04:39 +00:00
Elena Lepilkina dba645bce1 [K/N] Fix FileCheck test, now compiler produces call instruction 2021-11-02 12:04:39 +00:00
Elena Lepilkina 555bcc0adb [K/N] Don't set noreturn attribute for suspend functions to prevent LLVM SimplifySFG Pass from removing needed BB 2021-11-02 12:04:38 +00:00
Elena Lepilkina a8c1a31be9 [K/N] Added setting frame in catch block in C bridges 2021-11-02 12:04:38 +00:00
Elena Lepilkina c294365068 [K/N] Catch exceptions in CAdapters when caches enabled (KT-47828 fixed) 2021-11-02 12:04:38 +00:00
Elena Lepilkina d8b456e8b6 [K/N] Rework code generation for exception handler 2021-11-02 12:04:37 +00:00
Elena Lepilkina cde51ecc3a [K/N] Added function SetCurrentFrame to use in unwind block 2021-11-02 12:04:37 +00:00
Sergej Jaskiewicz 42c213d950 [JS IR] Explicitly convert Long values to String in string concatenation
#KT-39891 Fixed
2021-11-02 10:42:28 +00:00
Konstantin Tskhovrebov a9f850dac0 Refactor FatFrameworkTask: use FrameworkDescriptor instead Framework.
for independence from module compilation.
2021-11-02 06:18:25 +00:00
Jinseong Jeon c3c79b874d FIR IDE: make constant evaluator robust to arithmetic exception 2021-11-01 22:50:47 +01:00
Mads Ager e5bff514b6 FIR2IR: Fix line number differences in try block 2021-11-01 23:59:59 +03:00
Jinseong Jeon 5aa8e2d0d1 FIR LC: fix nullable annotation on return type of suspend function 2021-11-01 19:19:39 +01:00
Jinseong Jeon 5880d80d26 FIR LC: add support for inline class 2021-11-01 19:17:26 +01:00
Jinseong Jeon 0e7d1b3945 FIR LC: refactor creation of property accessors 2021-11-01 19:17:26 +01:00
Jinseong Jeon 95a3e81098 LC: remove unnecessary referential equality check and semicolon in inline class 2021-11-01 19:17:25 +01:00
Sergey Igushkin 05822c59b5 Fix Android Lint dependency resolution issues (KT-49483)
Android Gradle plugin resolves the *Classpath configurations in an
artifact view with an artifactType attribute set, which should
give a resolved variant with a different `org.gradle.category`
attribute. With `org.gradle.category=library` set by the Kotlin
Gradle plugin, that couldn't work.

To fix this, don't set the `org.gradle.category` attribute on the
Android resolvable configurations.

TODO: Add integration tests!
2021-11-01 14:57:50 +00:00
Vladimir Dolzhenko eaff4c6026 Reset elementFinders on clearPackageCaches()
Clean up references on a plugin unload to avoid class leakage

Relates to #KT-49475

Merge-request: KT-MR-4891
2021-11-01 14:21:15 +00:00
Ilya Goncharov 2584f45b1c [JS IR] Refactor export model generator
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:24 +00:00
Ilya Goncharov 9fdb0a23cd [JS IR] Add literal and union types to TS generation, support them for enum
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:24 +00:00
Ilya Goncharov 4fa2fa6c26 [JS IR] Export name and ordinal for enum classes
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:24 +00:00
Ilya Goncharov a31a6c5117 [JS IR] Fix conflict with master
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:23 +00:00
Ilya Goncharov 8e5fb50506 [JS IR] Fix diagnostic test on exportness of enum classes
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:23 +00:00
Ilya Goncharov 993b194a7b [JS IR] Actualize JS files according to TS tests
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:22 +00:00
Ilya Goncharov 69f6dc059d [JS IR] Export type for enum class and not extends kotlin.Enum in TS
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:22 +00:00
Ilya Goncharov 817e3dc306 [JS IR] Add TypeScript export tests for enum class
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:21 +00:00
Ilya Goncharov cd1296309f [JS IR] Add constructor parameter to test and values, valueOf methods
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:21 +00:00
Ilya Goncharov 9bd44e01f5 [JS IR] Export enum members like from usual classes
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:20 +00:00
Ilya Goncharov 42cb0e60d7 [JS IR] Process enum classes correctly in export model generator
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:20 +00:00