Commit Graph

107328 Commits

Author SHA1 Message Date
Anna Kozlova 687a23be47 [psi] remove KtEnumEntry#isEquivalentTo
This check is used in equivalence check which is symmetric, and
java refers to kotlin through light classes.
LC implementation already contains support for matching
 wrapped and origin kotlin members,
 both K1 and K2 LC implementations.
 Thus, this check is redundant.
 Removing it, we cleanup kotlin psi from java psi
2023-12-19 10:37:18 +01:00
Anna Kozlova f9fb8e3ddf [psi] remove PsiClassHolderFileStub<KtFile> from KotlinFileStubImpl
it's used in ClsFile only, and kotlin has its own decompiled hierarchy
2023-12-19 10:37:18 +01:00
Simon Ogorodnik f4c7f513ef K2 Tests. Do not use the TopDownAnalyzerFacadeForJVM to create module descriptor
In fact, TopDownAnalyzerFacadeForJVM.createContainer initializes the
whole K1 frontend. While it is only used to create a module descriptor
for GenerationState.Builder, in real K2 compiler the module descriptor
would be created via irModuleFragment.

See org.jetbrains.kotlin.cli.jvm.compiler.pipeline.CompilerPipelineKt.generateCodeFromIr
2023-12-19 09:25:11 +00:00
Vladimir Sukharev 023cce1fab [K/N] Fix NPE in special backend checks and interop lowering
^KT-63049 Fixed
2023-12-19 09:15:39 +00:00
Vladimir Sukharev b1508a49ac [K/N] Add failed test for KT-63049
^KT-63049
2023-12-19 09:15:39 +00:00
Dmitriy Novozhilov fa33c5dc79 [FIR] Implement deprecation warning for synthetic without java base getter
Also implement new resolution behavior under language feature

^KT-63076 Fixed
^KT-64358
2023-12-19 09:04:26 +00:00
Dmitriy Novozhilov d5b0a5b220 [FIR] Add some safe API to synthetic property symbols
Previously there were no way to get delegated function symbol of accessor
  symbol of synthetic property
2023-12-19 09:04:26 +00:00
Dmitriy Novozhilov be6694f049 [Test] Add tests for KT-63076 2023-12-19 09:04:26 +00:00
Anton Lakotka 63d615d220 [Gradle] Fix compilation warnings
^KT-62527 In Progress
2023-12-19 08:39:00 +00:00
Anton Lakotka 0264fc29b8 [Gradle] Fix defaultSourceSetName usages
^KT-62527 In Progress
2023-12-19 08:38:59 +00:00
Dmitrii Gridin a824a8f86d [Analysis API] StandaloneModeLibraryBinaryTestConfigurator: drop sealed preprocessor 2023-12-19 07:03:31 +00:00
Jinseong Jeon 4c7e9f3cbf AA standalone: more tests about resolving properties in nested class/object from binary 2023-12-19 07:03:31 +00:00
Jinseong Jeon d603115def AA standalone: set binary dependency kind in test configurator 2023-12-19 07:03:30 +00:00
Jinseong Jeon 92d6aeb7a3 LC: lookup backing field of property in decompiled class/companion
^KTIJ-27684
2023-12-19 07:03:30 +00:00
Jinseong Jeon e5095a60ba K2 UAST: lookup properties in the containing class, not companion object
...because properties in the companion object are materialized
in the containing class.

^KTIJ-27684 fixed
2023-12-19 07:03:29 +00:00
Jinseong Jeon 10c9b81c79 AA standalone: introduce multi-module binary dependency test 2023-12-19 07:03:29 +00:00
Jinseong Jeon 3c775c4a42 Fix dependency kind explanations
They are directly used for enum valueOf, and the enum constants are not
all capitals. Instead, only the first letter is capital.
2023-12-19 07:03:28 +00:00
Jinseong Jeon 3fbc16af62 AA standalone: repackage test configurators
...before introducing a new test configurator for binary dependency
2023-12-19 07:03:28 +00:00
Jinseong Jeon 0832158017 AA standalone: rename previous test to include SingleModule
...before introducing multi-module / binary dependency tests
2023-12-19 07:03:28 +00:00
Jinseong Jeon 1f0540faa1 AA: place FIR test configurator in the same package
...for better consistency and easier discovery.
2023-12-19 07:03:27 +00:00
Alexander Udalov c885932a04 Tests: unmute debugging tests for FIR+JVM_IR
The differences between K1 and K2 are pretty unimportant in these tests.
2023-12-18 21:42:35 +00:00
Alexander Udalov c62f8c886b Tests: minor, inline helper functions used only once 2023-12-18 21:42:35 +00:00
Alexander Udalov 0c77fa1fa4 Tests: remove LVT tests on old JVM backend 2023-12-18 21:42:35 +00:00
Alexander Udalov 5e330acd28 Tests: remove stepping tests on old JVM backend 2023-12-18 21:42:35 +00:00
Dmitrii Gridin f39c72360d [SLC] inherit SymbolPsiLiteral from PsiLiteralExpression
We should use PsiLiteralExpression instead of PsiLiteral as it
is used in the Java world. Effectively, `psiLiteral` property
already has this type (as `createPsiExpression` produce `PsiExpression`),
but we missed this part before and used just PsiLiteral for our
own class

^KT-63949 Fixed
2023-12-18 20:20:06 +00:00
Igor Chevdar e068333021 [gradle][tests] Fixed the smoke test on K/N incremental compilation 2023-12-18 19:19:03 +00:00
Anton Lakotka 1d3f871d7a [Gradle] Remove unnecessary useK2 gradle property
^KT-64379 Verification Pending
2023-12-18 19:09:41 +00:00
Dmitriy Dolovov 22aa9ee65f IR text tests: Unmute tests with frontend errors 2023-12-18 18:08:56 +00:00
Dmitriy Dolovov 194efac68c [Manglers] Uniform handling of the error type in signature mangled names in all manglers
^KT-63723
2023-12-18 18:08:56 +00:00
Vladimir Sukharev 089b7f31b5 [K/N] Fix indents
^KT-61259
2023-12-18 18:04:27 +00:00
Vladimir Sukharev dc2ea15dee [K/N] Support also MM files in new native test infra
^KT-61259
2023-12-18 18:04:27 +00:00
Vladimir Sukharev c09e8909d4 [K/N] Move cinterop tests from standalone to codegen/box
^KT-61259
2023-12-18 18:04:27 +00:00
Vladimir Sukharev 0b0ba3160f [K/N] Treat DEF files as regular test source, compiled with cinterop
^KT-61259
2023-12-18 18:04:27 +00:00
Artem Kobzar 2530cba82a [K/JS] Compile Kotlin coroutines as JS generator ^KT-63038 Fixed 2023-12-18 17:13:07 +00:00
Alexander Shabalin 4d07fdf97e [K/N] Fix CallsChecker handling objc_msgSendSuper2. 2023-12-18 16:51:23 +00:00
Aleksandra.Arsenteva c6b32200df [Test] Add diagnostic tests for smartcast in K2
List of issues:
KT-28806, KT-7186, KT-22997, KT-1982, KT-22996, KT-54443, KT-37308, KT-37115, KT-4113, KT-25747, KT-24779
2023-12-18 13:08:33 +00:00
Dmitriy Dolovov 48072c822b [Gradle][MPP] Ensure there are no KLIBs discriminated by duplicated unique_name
^KT-63573
2023-12-18 13:03:40 +00:00
Dmitriy Dolovov 5ffbaa1621 [Gradle][MPP] Rename already existing tests for KLIB resolver 2023-12-18 13:03:40 +00:00
Dmitriy Dolovov b1093d8082 [KLIB Resolver] Don't discriminate KLIBs by duplicated unique_name in K2 metadata compiler
Use the same approach as in K1 metadata compiler: resolve each library
separately from others, don't attempt to resolve them all at once.

^KT-63573
2023-12-18 13:03:40 +00:00
Dmitriy Dolovov 1c285de55e [KLIB Resolver] Prettier KLIB resolver messages
- Make the messages that are reported by KLIB resolver prettier
- For those messages that affect the resolve process add
  prefix "KLIB resolver: "
- Don't log warning on duplicated libraries on the classpath. This
  does not make any sense.

^KT-63573
2023-12-18 13:03:40 +00:00
Dmitriy Dolovov 3ab35cd417 [KLIB Resolver] Don't log any messages in isKotlinLibrary(File) fun
This function is only used for probing if a library at the given
path exists. Any errors or warnings logged by this function could
only bring a user to a confusion. So, it's better to avoid any
logging here.

^KT-63573
2023-12-18 13:03:40 +00:00
Dmitriy Dolovov 46081f968d [KLIB Resolver] Report KLIB resolver issues as compiler messages
The reason of this change is to make messages (especially warnings)
that are reported by the KLIB resolver become visible to the end user.
This can be achieved to forwarding such messages to the appropriate
compiler's components such as
`org.jetbrains.kotlin.cli.common.messages.MessageCollector` and
`org.jetbrains.kotlin.ir.util.IrMessageLogger`.

Also: The default `DummyLogger` should be used as minimal as possible.
Because it just forwards messages to the standard output (console)
where they can remain unattended. When the compiler is executed
from the Gradle plugin such messages appear only in DEBUG Gradle's log.

^KT-63573
2023-12-18 13:03:40 +00:00
Dmitriy Dolovov 8430be39c9 [KLIB Resolver] Minor. Formatted 2023-12-18 13:03:40 +00:00
Igor Chevdar 69459b056e [IR] Correct handling of loops in liveness analysis
#KT-64139 Fixed
2023-12-18 12:55:51 +00:00
Igor Chevdar 7907231bf2 [box-tests] Added a reproducer for #KT-64139 2023-12-18 12:55:51 +00:00
Dmitriy Novozhilov 94c46d384a [FIR2IR] Properly calculate the type of delegated function call
```
interface A {
    fun <T> foo(): T
}

class B(val a: A) : A by A {
    generated fun <T'> foo(): T' {
        return a.foo() // <------
    }
}
```

There was a problem that type of generated delegated call used
  an unsubstituted type of the original delegated declaration, which led
  to a situation when (see example) type of call `a.foo()` was not `T'`
  but `T`, which led to incorrect IR and further exceptions on backend

^KT-64257 Fixed
^KT-64284 Obsolete
2023-12-18 12:45:28 +00:00
vladislav.grechko c48753900c Fix CallableId::isIterator: recognize primitive array iterators
^KT-60266: Fixed
2023-12-18 12:13:12 +00:00
Bogdan Mukvich 926af575f9 Native: calculate and publish bundle artifacts' checksums
* Fix native publication creation

^Related to KTI-1479
2023-12-18 11:59:16 +00:00
Yahor Berdnikau 71a0dacf81 [Gradle] Move from constructor KotlinNativeLink task configuration
This should fix ConcurrentModificationException on getting task names
while loading import models in parallel.

^KT-63554 Fixed
2023-12-18 11:29:28 +00:00
Vladimir Sukharev df2dcccbf7 [Tests] Removed moved tests from old testing
^KT-64256 Fixed
2023-12-18 11:15:15 +00:00