Logic of module dependencies is enhanced to filter out incompatible
common -> platform dependencies. However the reversed index for getting
all modules that use libraries doesn't take this filtering into
account and returns all modules based exclusively on order entries.
This leads to incorrect library dependency calculation.
^KT-44638 Verification pending
Since JVM_IR generates inline lambdas differently from old backend,
in this case, it generates them as normal functions.
Thus, there is no need to unbox the lambda argument.
#KT-44671 Fixed
Although the previous code of computing JVM internal name from a Class
instance was shorter, it led to unnecessary creation of array types,
which is less performant and makes configuration of kotlin-reflect for
GraalVM native-image more verbose.
Unfortunately I didn't succeed in writing a test for this, since
`Array.newInstance` calls a native method which doesn't record any trace
of it being called in the class loader: the resulting array type never
goes through findClass/loadClass, and is not visible via
findLoadedClass.
#KT-44594 Fixed
Started as a result of postponed jdk dispose
71e74497b5
CodeInsightTestFixtureImpl assertPointersAreDisposed is invoked before
actually removing pointers.
com.intellij.openapi.util.TraceableDisposable$DisposalException: 1708093728
at com.intellij.openapi.util.TraceableDisposable.getStackTrace(TraceableDisposable.java:121)
at com.intellij.openapi.vfs.impl.VirtualFilePointerTracker.assertPointersAreDisposed(VirtualFilePointerTracker.java:86)
at com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl.lambda$tearDown$38(CodeInsightTestFixtureImpl.java:1281)
at com.intellij.testFramework.RunAll.collectExceptions(RunAll.java:57)
at com.intellij.testFramework.RunAll.runAll(RunAll.java:35)
at com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl.tearDown(CodeInsightTestFixtureImpl.java:1234)
at org.jetbrains.kotlin.idea.codeInsight.gradle.GradleQuickFixTest.tearDownFixtures(GradleQuickFixTest.kt:41)
at org.jetbrains.kotlin.idea.codeInsight.gradle.ExternalSystemTestCase.lambda$null$5(ExternalSystemTestCase.java:185)
- Compute and store local names locally when translating a body.
It is a step towards separate JS generation and hopefully reduces memory usage.
- Use stable mangled names for member names. Needed for separate JS generation.
- Add `abstract class IrNamerBase` with just 3 abstract methods to simplify
creating new IrNamer implementations.
- Fix O(N^2) of findFreshName when it is called wtih the same name suggestion a lot of times.
- Refactor NameTables initialisation: factor out some functions and use descriptive names.
- Use StringBuilder in sanitizeName
Refactoring includes replacing `Diagnostic.report` extensions in
checkers with `DiagnosticReporter.reportOn` extension declared
in DiagnosticReporter.kt