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
To be used in the project after bootstrap to get rid of warnings like
"Language version 1.3 is deprecated, ..." which prevent us from enabling
`-Werror` in `:compiler:cli` and other modules.
Previously, offsets from super class parameter have been used
and they might belong to a different file and those offsets are irrelevant
to the current file