Commit Graph

99152 Commits

Author SHA1 Message Date
Kirill Rakhman 9a328ec75b [FIR2IR] Apply implicit casts to blocks 2023-03-02 10:19:51 +00:00
Kirill Rakhman d8c1830b06 [FIR] Fix duplicate setting of return type ref in desugared assignment 2023-03-02 10:19:51 +00:00
Svyatoslav Scherbina 3904966e2c Native: fix error message for C union with nested struct with bitfields
tryRenderStructOrUnion can return null for a struct or union to indicate
that passing it by value to or from C is not supported (e.g. it has
bitfields).

It incorrectly handled the case when passing a nested struct or union by
value was unsupported -- instead of null, it returned incorrect struct
declaration.

As a result, when passing such a complex struct or union by value to or
from C, the backend generated C stubs with syntax errors, which resulted
into obscure compilation error ("unable to compile C bridge").

This commit fixes this case in tryRenderStructOrUnion function, and thus
makes the compilation error message more understandable.

^KT-55030
2023-03-02 09:00:11 +00:00
Kirill Rakhman d00513599b [FIR2IR] Expand typealias in callable reference receiver generation
^KT-56750 Fixed
2023-03-02 08:20:04 +00:00
Ilya Kirillov 3ec032212c [Analysis API] Ignore FirClassUseSiteMemberScope scopes in KtFirReferenceShortener
Those scopes always contain all nested classifiers,
while only some of them are available without
explicit import. There are other, more reliable
scopes (like FirNestedClassifierScopeWithSubstitution)
which are stricter about which classifiers
they recognise as valid

^KTIJ-24684 Fixed
^KTIJ-24662 Fixed
2023-03-01 22:38:11 +00:00
Ivan Kochurkin d783bbe5e9 [Tests] Do not throw assert in TestFiles.createTestFiles
This assert makes a test red even if it contains IGNORE_BACKEND directive
2023-03-01 22:10:11 +00:00
Ivan Kochurkin ee53c5780f [FIR] Extract K2 MPP test data to the separated directory 2023-03-01 22:10:11 +00:00
Ivan Kochurkin 5b2a1feaf0 [IR] Support of @OptionalExpectation in IrActualizer
^KT-56579 Fixed
2023-03-01 22:10:10 +00:00
Ivan Kochurkin c10bd1e3f0 [IR] Drop using expectDeclarationsRemovingPhase if FIR is enabled 2023-03-01 22:10:09 +00:00
Ivan Kochurkin 585343d646 [FIR] Remove SessionUtils because it's not used 2023-03-01 22:10:09 +00:00
Ivan Kochurkin 9d0e02658f [FIR] Support of ACTUAL_TYPE_ALIAS_WITH_COMPLEX_SUBSTITUTION diagnostic 2023-03-01 22:10:09 +00:00
Ivan Kochurkin 3e33258f36 [FIR] Support of ACTUAL_TYPE_ALIAS_WITH_USE_SITE_VARIANCE diagnostic 2023-03-01 22:10:08 +00:00
Ivan Kochurkin cf1bd9837a [FIR] Support of ACTUAL_TYPE_ALIAS_TO_CLASS_WITH_DECLARATION_SITE_VARIANCE diagnostic 2023-03-01 22:10:08 +00:00
Ivan Kochurkin 8bf9d6c92f [FIR] Support of ACTUAL_TYPE_ALIAS_NOT_TO_CLASS diagnostic
^KT-56514 Fixed
2023-03-01 22:10:08 +00:00
Ivan Kochurkin c418a7a7bf [FIR] Support of ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS diagnostic
^KT-56522 Fixed
2023-03-01 22:10:07 +00:00
Ivan Kochurkin f1fef62f76 [FIR] Consider default values from expect function during serialization
It's not possible to unmute some tests for K2 because it causes testData structure changing

If change testData, NATIVE doesn't work even with `IGNORE_BACKEND`
2023-03-01 22:10:07 +00:00
Ivan Kochurkin d87619e06e [FIR & IR] Support of default values for arguments in expect functions
Add FirActualDeclarationChecker that checks expect/actual return types

^KT-56331 Fixed, ^KT-56334 Fixed
2023-03-01 22:10:07 +00:00
Ivan Kochurkin a54b56d74e [IR] Simplify ExpectActualCollector, remove nesting 2023-03-01 22:10:06 +00:00
Ilmir Usmanov 010c7acc3a JVM IR: Restore logic of finding line number for suspend lambda
Before c7bc439661 we did not throw
exception when we could not find line number for element. However,
on synthetic suspend lambdas we do not have line numbers.

If future, when we fix adapted callable references (see KT-55559)
there will be more of them.

 #KT-56910 Fixed
2023-03-01 21:54:27 +00:00
Anna Kozlova 3eddfeb8c9 [psi] make collection literal stub based
^ KT-57035
2023-03-01 16:57:27 +00:00
Anna Kozlova b913b528af [psi] make class literal stub based
^ KT-57033
2023-03-01 16:57:27 +00:00
Pavel Kargashinsky 6d7e17e60c [Gradle][Tests] Remove unnecessary arch -x86_64 usage for arm Mac 2023-03-01 16:32:03 +00:00
Pavel Kargashinsky f4d2283f87 [Gradle][Tests] Bump AGPVersion to 4.2.2 2023-03-01 16:32:02 +00:00
Sebastian Sellmair 7c3e242a64 [Gradle] Disable K2HierarchicalMppIT using Disabled instead of Ignore
^KT-56210 Verification Pending
2023-03-01 16:30:46 +00:00
Sebastian Sellmair d579ae7e79 [K/N] Bump kotlin-native version to "1.9.0-dev-2639"
^KT-56210 Verification Pending
2023-03-01 16:30:46 +00:00
Sebastian Sellmair ff9d4799aa [Gradle] KotlinCompilationK2MultiplatformConfigurator: Only configure when K2 is used
^KT-56210 Verification Pending
2023-03-01 16:30:45 +00:00
Sebastian Sellmair 896d1ce267 [Gradle] Rename K2CompileTask to K2MultiplatformCompilationTask
^KT-56210 Verification Pending
2023-03-01 16:30:45 +00:00
Sebastian Sellmair a30abcb00c [Gradle] Move KotlinCompilationK2MultiplatformConfigurator into 'DefaultKotlinCompilationPreConfigure'
^KT-56210 Verification Pending
2023-03-01 16:30:45 +00:00
Sebastian Sellmair b90207edb9 [Gradle] Rename -Xdepends-on to -Xfragment-refines and use ':' for -Xfragment-sources instead of ';'
^KT-56210 Verification Pending
2023-03-01 16:30:44 +00:00
Sebastian Sellmair a692de871b [Gradle] Rename KotlinNativeCompile.buildKotlinNativeKlibCompilerArgs to buildCompilerArgs
^KT-56210 Verification Pending
2023-03-01 16:30:44 +00:00
Sebastian Sellmair 015941b195 [Gradle] Ensure KotlinCompilationK2MultiplatformConfigurator does not force eager task evaluation
^KT-56210 Verification Pending
2023-03-01 16:30:44 +00:00
Sebastian Sellmair b51fa78559 [Gradle] Rename K2Compile to K2CompileTask and expose KotlinCommonCompilerOptions
^KT-56210 Verification Pending
2023-03-01 16:30:43 +00:00
Sebastian Sellmair cda92fa456 [Gradle][Minor] Fix test - okio - getArtifacts not using mavenLocal()
^KT-56210 Verification Pending
2023-03-01 16:30:43 +00:00
Sebastian Sellmair aecbbe3856 [Gradle][Minor] KlibBasedMppIT.kt: Remove unused import
^KT-56210 Verification Pending
2023-03-01 16:30:43 +00:00
Sebastian Sellmair cb61b93ea3 [Gradle] Implement initial K2 based versions of existing integration tests
^KT-56210 Verification Pending
2023-03-01 16:30:42 +00:00
Sebastian Sellmair a6d145eb4f [Gradle] Implement K2MultiplatformStructureTest
^KT-56210 Verification Pending
2023-03-01 16:30:42 +00:00
Sebastian Sellmair 4f48cac601 [Gradle] Pass multiplatform structure to K2
^KT-56210 Verification Pending
2023-03-01 16:30:42 +00:00
Sebastian Sellmair 6c618ae5cc [Gradle] Add KotlinVersion.DEFAULT
KT-56210
2023-03-01 16:30:41 +00:00
Sebastian Sellmair 21bf497830 [CLI] Replace K2 -Xmodule by -Xfragments and -Xfragment-sources
KT-56210
2023-03-01 16:30:41 +00:00
Vladimir Sukharev 8e5b19fe96 Put separate tag to KotlinTestK2LibraryTest to disable it for one-stage testing
Merge-request: KT-MR-9054
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-03-01 15:25:34 +00:00
Dmitriy Novozhilov 5b7efbfed7 Add utility script for bootstrap update
Script `scripts/update-bootstrap` takes one argument with new bootstrap
  version, updates all required places and commit them with message
  "Advance bootstrap to {version}"
2023-03-01 13:53:47 +00:00
Andrei Klunnyi 66a74ab60e KT-56941 Gradle KTS navigation: go to declaration (Java) doesn't work
Case:
```
options.incrementalAfterFailure = false    // assignment operator  (a)
options.incrementalAfterFailure.set(false) // equivalent (without) (b)

// (a) works thanks to AssignResolutionAltererExtension
// 'incrementalAfterFailure' is a synthetic Java property
// i.e. getIncrementalAfterFailure()

// Navigation to 'incrementalAfterFailure' (a) doesn't work.
```

By navigation, we mean opening declaration sources. The reason of the
issue lied in sources absence (inability to find them).

In general, sources are available via declaration descriptor.
To find one for a property, one needs to understand expression
kind: read/write/both. Hence, the choice of a getter/setter/both.
Since `=` operator is interpreted as a write type expression, a setter
was searched. Missing one resulted in corrupted navigation.

As a fix we provide getter for the missing setter case.

^KT-56941 fixed
2023-03-01 13:25:38 +00:00
Andrei Klunnyi e3d5affe5c KT-56221 Gradle KTS: overloaded assignment is not supported
```
java.docsDir = file("src/docs")
```
is a `KtBinaryExpression`. Decision on the assignment validity involves
`AbstractAssignPluginResolutionAltererExtension.hasSpecialAnnotation()`.
The function requires a parent declaration, which in case of a script
is `KtScriptInitializer`.

^KT-56221 fixed
2023-03-01 12:49:32 +01:00
Vyacheslav Gerasimov a51ae33e4d Build: Add -Xmx3g to kotlin.daemon.jvmargs in settings-conventions
To avoid spawning multiple daemons `kotlin.daemon.jvmargs` should be
the same as root gradle.properties and buildSrc
 #KTI-1142
2023-03-01 11:38:35 +00:00
Dmitriy Novozhilov 088109a660 Advance bootstrap to 1.9.0-dev-2695 2023-03-01 11:07:06 +00:00
Dmitrii Gridin 0a1c903e11 [SLC] add tests for containingClass
^KT-56613
2023-03-01 10:43:03 +00:00
Dmitrii Gridin 9129235079 [LC] add missing parent to implementsList and extendsList
^KT-56613
2023-03-01 10:43:03 +00:00
Dmitrii Gridin 58dc93da90 [LC] do not store name identifier as property
^KT-56613
2023-03-01 10:43:02 +00:00
Dmitrii Gridin 327208fb8a [SLC] drop hard references to member declarations to reduce memory consumption
^KT-56613 Fixed
2023-03-01 10:43:02 +00:00
Dmitrii Gridin 7af78db2e1 [DLC] drop hard references to member declarations to reduce memory consumption
^KT-56613
2023-03-01 10:43:02 +00:00