Commit Graph

101000 Commits

Author SHA1 Message Date
Anna Kozlova cf6a06fd14 [LL] [cls] don't access index to retrieve fir for given ktElement
also don't check name pattern, because
given ktElement proves that corresponding package contains something
2023-05-09 07:36:11 +00:00
Anna Kozlova e47561e70b [FIR tests] do not distinguish builtins & library origins
fir which is retrieved by LL symbol providers based on stubs,
receives builtin origin when found in kotlin_builtins

pure compiler providers found the same fir declarations in stdlib
and thus receive Library origin

to avoid splitting the testdata, let's ignore the difference
2023-05-09 07:36:11 +00:00
Anna Kozlova 89a03a74e4 [FIR] make use of FirFromMissingDependenciesNamedReference
during java annotations mapping in IDE, kotlin classes are not available,
thus FirFromMissingDependenciesNamedReference is created

Corresponding test in IJ repo:
K2HighlightingMetaInfoTestGenerated.Uncategorized#testJavaTypes
2023-05-09 07:36:10 +00:00
Anna Kozlova 366c67a668 extract StandartNames.NAME constant 2023-05-09 07:36:10 +00:00
Anna Kozlova 92b6a77431 [LL] [cls] remove search for sources for decompiled FIR
stub based deserializer provides sources during initialization,
no need to search afterward
2023-05-09 07:36:10 +00:00
Anna Kozlova 5ca052f87b [LL] [cls] use stubBased symbol provider for builtins
this gives the following benefits:
1. no protobuf in memory, all data is already present in stubs
2. given that symbol provider for libraries is already stub based,
we can get rid of complicated code to find source psi by deserialized fir
3. it's also possible to reduce number of index access,
when fir is requested for given ktElement
2023-05-09 07:36:09 +00:00
Sebastian Sellmair c2970c4dda [Gradle] Add initial samples into KotlinPluginLifecycleSample
KT-58275
2023-05-09 07:32:38 +00:00
Sebastian Sellmair c05b86dc7c [Gradle] KotlinPluginLifecycle: Do not enter AfterBuildscriptEvaluate stage on failures
KT-58275
2023-05-09 07:32:38 +00:00
Sebastian Sellmair b437c3e0e9 [Gradle] KotlinPluginLifecycle: Rename .configured to .configurationResult
^KT-58255 Verification Pending
2023-05-09 07:32:38 +00:00
Sebastian Sellmair 08055b6188 [Gradle] KGP Diagnostics: Update KotlinGradleProjectChecker documentation
KT-58275
2023-05-09 07:32:38 +00:00
Sebastian Sellmair 287c431bc4 [Gradle] KGP Diagnostics: Run diagnostics launched & schedule report once Project is configured
KT-58275
2023-05-09 07:32:38 +00:00
Sebastian Sellmair d170897dbf [Gradle] Introduce Project.configured: Future<ProjectConfigurationResult> API
KT-58275
2023-05-09 07:32:38 +00:00
Sebastian Sellmair f616fffeb0 [Gradle] KotlinPluginLifecycle: Detect failure and abort further configuration
KT-58275
2023-05-09 07:32:37 +00:00
Sebastian Sellmair 8e9c3a21c0 [Gradle] Ensure Kotlin Plugin Lifecycle is started before in Plugin.apply
This should enable the lifecycle to still get into the
first 'afterEvaluate' based phase, even when an exception was thrown
in apply

KT-58275
2023-05-09 07:32:37 +00:00
Dmitrii Krasnov 375ff5ed2c migrated AppleFrameworkIT to junit5 and gradle TestKit
#KT-51553 In Progress

Merge-request: KT-MR-9856
Merged-by: Dmitrii Krasnov <Dmitrii.Krasnov@jetbrains.com>
2023-05-09 07:17:14 +00:00
Igor Chevdar b6030b3517 [K/N] Devirtualization: virtual calls from external world fix
The fix deals with the situation where a virtual function potentially from
the external world (because of the receiver) returns a final type (if it isn't final,
then it's conservatively assumed that no devirtualization could be done on it).

 #KT-57791 Fixed
2023-05-09 05:25:11 +00:00
Igor Chevdar 197cba35eb [K/N] Added couple of reproducers for KT-57791 2023-05-09 05:25:11 +00:00
Anna Kozlova c46a95aad7 [Light classes] do not write explicit options for IDE
those options are configured explicitly by test
2023-05-08 20:30:24 +00:00
Yahor Berdnikau 0790fef161 Fix explicit api mode in commonizer
^KT-57653
2023-05-08 19:43:43 +00:00
Yahor Berdnikau d57623891d Fix explicit api issues in analysis modules
Explicit api mode was not working due to the bug.

^KT-57653
2023-05-08 19:43:43 +00:00
Yahor Berdnikau 1860683a71 Fix explicit api issues in kotlin-build-tools-api
Explicit api mode was not working due to the bug.

^KT-57653
2023-05-08 19:43:43 +00:00
Yahor Berdnikau 2ea65bd658 Fix explicitApiMode could be overwritten by freeCompilerArgs
Now tasks has a separate task input for 'explicitApiMode' which is
passed to Kotlin compiler via arg, rather than free compiler args.

^KT-57653 Fixed
2023-05-08 19:43:43 +00:00
Dmitrii Gridin d3043b6f1c [LL FIR] do not treat declarations from object literal as non-local
^KTIJ-25437 Fixed
2023-05-08 16:08:26 +00:00
Mikhail Zarechenskiy 6d7dc45ce6 K1: Add test for compatibility check of Enum.entries
Basically, the test checks that adding Enum.entries feature doesn't
break the existing code where it clashes with the user-defined "entries"
declaration; it's better to have a black-box test to be sure
that the compiler doesn't invoke something different at runtime

 The test covers KT-53153 and KT-56587

Merge-request: KT-MR-9798
Merged-by: Michail Zarečenskij <Mikhail.Zarechenskiy@jetbrains.com>
2023-05-08 15:35:25 +00:00
Dmitrii Gridin 25f2c513f6 [LL FIR] drop global phase lock for super types phase
^KT-56551
2023-05-08 14:42:10 +00:00
Dmitrii Gridin 13dc4c8014 [LL FIR] split LLFirLockProvider on read and write API
^KT-56550
2023-05-08 14:42:10 +00:00
Nikolay Lunyak 76df0f9ad1 [FIR] KT-48870: Allow resolution to InaccessibleImplicitReceiverValue
^KT-48870 Fixed
2023-05-08 14:25:54 +00:00
Mikhail Glukhikh f472f68dc5 SymbolTable: replace assert with require in createOwnerSafe
Related to KT-57049
2023-05-08 13:32:18 +00:00
Mikhail Glukhikh dbdefe90a3 FIR2IR: add workaround for SymbolTable conflicts in property/field situation
Related to KT-57049
2023-05-08 13:32:18 +00:00
Mikhail Glukhikh 6c5afa4b87 SymbolTable: unmute the symbol comparison condition
#KT-57049 Fixed
2023-05-08 13:32:18 +00:00
Mikhail Glukhikh e92cb49b24 K2: fix SymbolTable accessing in getIrClassSymbolForNotFoundClass
Related to KT-57049
2023-05-08 13:32:18 +00:00
Mikhail Glukhikh db45f5f7db FIR2IR: drop unused members from Fir2IrBindableSymbol & its inheritors 2023-05-08 13:32:18 +00:00
Dmitrii Krasnov af4ef048be migrated NativeIrLinkerIssuesIT to junit 5 and gradle TestKit
#KT-51553 In Progress

Merge-request: KT-MR-9921
Merged-by: Dmitrii Krasnov <Dmitrii.Krasnov@jetbrains.com>
2023-05-08 13:22:36 +00:00
Ilya Goncharov cbcd68cd85 [Gradle, JS] Upgrade NPM versions
^KT-58522 fixed
2023-05-08 13:21:39 +00:00
Ilya Goncharov f204a34909 [Gradle, JS] Add Gradle integration tests with language version 2.0
^KT-56740 fixed
2023-05-08 12:30:57 +00:00
Ilya Goncharov 7a4c688b5c [Gradle, JS] Upgrade yarn.lock 2023-05-08 12:10:36 +00:00
Dmitrii Gridin b9dd2f736a [LL FIR] avoid redundant recursive type resolve for type aliases
In LL FIR we will do this by crawlSupertype

^KT-56550
2023-05-08 12:06:55 +00:00
Dmitrii Gridin 46f987ba79 [LL FIR] do not try to access supertypeRefs for classes during super types phase
We should try to find supe type refs in a session firstly, otherwise
we can try to access by getResolvedSuperTypeRefsForOutOfSessionDeclaration

^KT-56550
2023-05-08 12:06:55 +00:00
Dmitrii Gridin 873c7d63ed [LL FIR] avoid redundant pass through the entire super type hierarchy for nested classes
We can omit this step in LL FIR because, according to the contract,
an outer class must be resolved before nested class
Also, it drops unsafe access to superTypeRefs from FIR transformer

^KT-56550
2023-05-08 12:06:55 +00:00
Dmitrii Gridin ee74e10f28 [FIR] avoid jumping from super type transformer for local classes to unresolved non-local classes
In the worst case, we will visit the entire hierarchy of a local class,
where non-local classes are not yet resolved

^KT-56550
2023-05-08 12:06:55 +00:00
Dmitry Savvinov 6f584bcbe7 [mpp] Fix reporting of pre-HMPP dependencies from intermediate source sets
It's an unfortunate clash between introduction of KotlinPluginLifecycle
and changes in 'deprecationDiagnostics.kt'. It used 'afterEvaluate',
but with KotlinPluginLifecycle later stages are effectively invoked
in multiple nested afterEvaluate, making them invisible for single
afterEvaluate.

Specifically in this case, configuration of metadata compilations for
intermediate source sets is executed in 'FinaliseCompilations' stage,
which is simply not executed by the time checker runs in its single
afterEvaluate.

The fix is trivial -- wrap diagnostic checks runs into launchInStage

^KT-58470 Fixed
2023-05-08 10:42:11 +00:00
Dmitrii Krasnov 4dd54e4de4 migrated CommonNativeIT to junit 5 and gradle TestKit
#KT-51553 In Progress

Co-authored-by: Alexander Likhachev <Alexander.Likhachev@jetbrains.com>

Merge-request: KT-MR-9750
Merged-by: Dmitrii Krasnov <Dmitrii.Krasnov@jetbrains.com>
2023-05-08 09:38:13 +00:00
Alexander Udalov 530725c6bf Kapt+JVM_IR: do not generate secondary constructor bodies
In addition to ceedad40f3, do not generate bodies of constructors which
delegate to super.

 #KT-58226 Fixed
2023-05-08 09:08:07 +00:00
Dmitrii Gridin ba08f2c08a [FIR] avoid jumping from status transformer for local classes to unresolved non-local classes
We must resolve a non-local declaration before access
if we want to jump from local to it to avoid possible problems
with parallel resolution

^KT-56550
2023-05-08 08:59:07 +00:00
Sergej Jaskiewicz 71c66cdb01 [test] Enable linkViaSignatures based on directive, not target backend
We want to be able to use signature-based linkage in other kinds
of tests.
2023-05-08 08:07:29 +00:00
Pavel Kunyavskiy 68a68b2763 [K/N] Refactor KonanSymbols to avoid descriptors when built over FIR
^KT-58437
2023-05-08 07:51:56 +00:00
Kirill Rakhman 7f9118d0f2 [FIR] Resolve property return type before resolving its annotations
This fixes TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM in a declaration
like `@Ann(myConst) const val myConst = ""`.

#KT-58080 Fixed
2023-05-08 07:45:57 +00:00
Mikhail Glukhikh 1c7ffb3276 ResultTypeResolver: don't allow Nothing as ILT subtype
#KT-58379 Fixed
2023-05-08 07:43:55 +00:00
Mikhail Glukhikh 6ae648f6f6 K2: reproduce KT-58379 2023-05-08 07:43:54 +00:00
Alexander Shabalin 142e2b4b2a [K/N] Add RosettaExecutor
Merge-request: KT-MR-9986
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
2023-05-06 13:44:25 +00:00