Dmitriy Novozhilov
4164cecc2d
[FIR2IR] Add TODO to fix smartcasted SAM conversions due to KT-62847, KT-63345
...
Note that `compiler/testData/ir/irText/expressions/funInterface/samConversionsWithSmartCasts.kt`
test should be updated after this change
2023-11-10 07:50:01 +00:00
Dmitriy Novozhilov
40f95cd5dd
[FIR2IR] Minor: reuse approximateForIrOrNull utility in Fir2IrTypeConverter
2023-11-10 07:50:01 +00:00
Dmitriy Novozhilov
10914eb23f
[FIR2IR] Rename Fir2IrImplicitCastInserter.cast method
...
`cast` name is too generic and doesn't explain the actual
meaning of this function
2023-11-10 07:50:01 +00:00
Dmitriy Novozhilov
8578a0bf6a
[FIR2IR] Properly insert casts for smartcasts in argument position
...
Previously cast inserter didn't consider expected type for arguments
of function calls
^KT-63257 Fixed
2023-11-10 07:50:01 +00:00
Dmitriy Novozhilov
c70a6425f5
[FIR2IR] Don't insert not-needed upcasts for smartcasted expressions
...
Related to KT-63257
2023-11-10 07:50:00 +00:00
Dmitriy Novozhilov
aa1a997f8a
[FIR2IR] Cleanup and reuse utility for creating substitutor from call
2023-11-10 07:50:00 +00:00
Ilya Kirillov
5f5daa0e06
[Decompiler] rename :analysis:decompiled:native -> :analysis:decompiled:decompiler-native
...
to avoid possible name clashes between different
Gradle subprojects with the same name.
see https://github.com/gradle/gradle/issues/16986
2023-11-10 06:41:03 +00:00
Ilya Kirillov
8fbd6ab02b
[LL FIR] do not provide cloneable for non-jvm platforms
...
It's a jvm-specific thing
^KT-62935 fixed
2023-11-10 06:41:03 +00:00
Ilya Kirillov
bffbbe6293
[LL FIR] add LL FIR tests based on AbstractFirPsiNativeDiagnosticsTest
...
^KT-62910 fixed
2023-11-10 06:41:03 +00:00
Ilya Kirillov
a4564351d7
[LL FIR] separate non-reversed/reversed test suppressors
...
Each compiler-based LL FIR test can:
- fail in both non-reversed and reversed configurations, muted with `// MUTE_LL_FIR`
- fail in non-reversed test only, muted with `// IGNORE_NON_REVERSED_RESOLVE`
- fail in reversed test only, muted with `// IGNORE_REVERSED_RESOLVE`
2023-11-10 06:41:03 +00:00
Ilya Kirillov
f26300a43e
[LL FIR] allow muting tests with MUTE_LL_FIR directive in all compiler-based tests
2023-11-10 06:41:03 +00:00
Ilya Kirillov
68235b978b
[Analysis] add test generator for Kotlin/Native tests inside Analysis API
...
This test generator is enabled only if Kotlin/Native support is enabled in the project
^KT-62910
2023-11-10 06:41:03 +00:00
Ilya Kirillov
a18c49d795
[LL FIR] retrieve Kotlin/Native KLib dependencies for compiled based tests
...
Previously, all tests were considered as JVM-only
from the library dependencies point of view.
^KT-62910
2023-11-10 06:41:03 +00:00
Ilya Kirillov
7c6870f8d2
[Analysis API Standalone] index .knm files in KotlinStaticDeclarationProvider
...
so `FirSymbolNamesProvider` can know about them
^KT-62910
2023-11-10 06:41:03 +00:00
Ilya Kirillov
9c85857b68
[Analysis API Standalone] refactoring, extract stub create to a separate function
2023-11-10 06:41:03 +00:00
Ilya Kirillov
b6fdd7cacc
[FIR, Native] extract test initialization code to functions from AbstractDiagnosticsNativeTest for further reuse in LL FIR tests
...
^KT-62910
2023-11-10 06:41:03 +00:00
Roman Golyshev
500dd20277
KT-63096 [LL] Add test for using annotation from other module for compiler plugin
2023-11-09 23:39:32 +00:00
Roman Golyshev
2f50267d3f
KT-63096 [LL] Make KotlinStaticAnnotationsResolver more correct
...
By using `KotlinDeclarationProvider`, it can now check that the
annotation is actually present in the scope
2023-11-09 23:39:32 +00:00
Roman Golyshev
a1155204c7
KT-63096 [LL] Remove KtModuleScopeProvider
...
It has no usages anymore
2023-11-09 23:39:32 +00:00
Roman Golyshev
bda677d2ad
KT-63096 [LL] Use full module resolution scope to create KotlinAnnotationsResolver
...
`KotlinAnnotationsResolver` must see everything that is resolvable from
the current module; otherwise it will not work properly.
The previous scope was the module itself + its binary dependencies
(jars).
Now the scope will contain the module itself and ALL its dependencies,
including other modules.
^KT-63096 Fixed
2023-11-09 23:39:31 +00:00
Vladimir Sukharev
296d7153e6
Revert "Use IntelliJ inspection "PublicApiImplicitType""
...
This reverts commit dd5f6a7619 .
2023-11-09 21:59:03 +01:00
Brian Norman
6df97dd199
[FIR] Add test cases to prove resolution of backlog tickets
...
^KT-41728 Fixed
^KT-46586 Fixed
^KT-49696 Fixed
^KT-51160 Fixed
^KT-53308 Fixed
2023-11-09 19:28:26 +00:00
Nikita Bobko
2b82726f1d
Cleanup: rename getSingleExpectForActualOrNull w.r.t. KT-62590
...
New name makes slightly more sense after KT-6259 is fixed
2023-11-09 17:58:43 +00:00
Jaebaek Seo
e80f044847
K2: Update reference shortener to handle import alias
...
The existing reference shortener does not use import alias when it
shortens a symbol. Instead, it adds a new import directive for the
symbol that is already imported. This commit updates reference shortener
to let it reuse the existing import alias rather than adding a new one:
1. When shortening a symbol, check whether the symbol is already
imported.
2. If it is already imported by an import alias, keep the symbol
reference expression and the import alias as a string together in
`ShortenCommand`.
The actual PSI update (shortening) based on the ShortenCommand is done
by IntelliJ.
^KTIJ-27205
2023-11-09 14:34:38 +00:00
Sergej Jaskiewicz
02c12ae26f
[FIR generator] Write kDocs for accept & transform methods in FirElement
2023-11-09 13:30:25 +00:00
Sergej Jaskiewicz
ed28923282
[IR generator] Don't use kotlinpoet for auto-generating IR tree classes
...
KT-61970 Fixed
KT-61703 Fixed
2023-11-09 13:30:25 +00:00
Sergej Jaskiewicz
63e9dd588c
[FIR generator] Factor out element printer to common module
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-11-09 13:30:25 +00:00
Sergej Jaskiewicz
84bd12c667
[FIR generator] Factor out field printer into the common code
...
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-11-09 13:30:25 +00:00
Sergej Jaskiewicz
bca35c0015
[FIR/IR generator] Add default arguments to TypeVariable constructor
2023-11-09 13:30:25 +00:00
Marco Pennekamp
730f98ba38
[FIR] Fix top-level property initialization checks in scripts
...
- While `collectionInitializationInfo` unwrapped a script's top-level
declarations, `check` forgot to do it, so a script effectively had no
top-level properties in the mind of the checker.
^KT-63286 fixed
2023-11-09 13:09:39 +00:00
Marco Pennekamp
1cc2390af6
[FIR] Add tests for top-level property initialization in scripts
...
- The test data is missing initialization checks and will be fixed with
the subsequent commit.
- The test data is originally taken from
`backingField/TopLevelPropertyInitialization` and has been simplified.
- I didn't add `const val` properties to the test data (compared to the
original) due to KT-20110.
^KT-63286
2023-11-09 13:09:39 +00:00
Dmitrii Gridin
891e1fb59b
[LL FIR] do not render redundant phases during lazy resolution tests
...
There is no sense to rendering phases which are lower than the base one
because the output will be the same as the baseline
^KT-63042
2023-11-09 13:07:14 +00:00
Dmitrii Gridin
b0d72c6292
[LL FIR] add lazy resolve tests for substitution override on function
...
^KT-63042
2023-11-09 13:07:14 +00:00
Dmitrii Gridin
9506f3d1f4
[LL FIR] extract base logic of lazy resolution tests
...
^KT-63042
2023-11-09 13:07:14 +00:00
Dmitrii Gridin
a25bac4bf9
add tests on implicit type with inaccessible annotations
...
^KT-63042
2023-11-09 13:07:14 +00:00
Dmitrii Gridin
80fcf9b09e
[LL FIR] render all files during lazy resolution tests
...
This helps to find implicit changes
^KT-63042
2023-11-09 13:07:13 +00:00
Troels Bjerre Lund
58a99da54f
[K/N] Pack instance fields better
...
This change reorders declared fields such that LLVM can pack each class
space optimally, minimizing the padding required. The guarantee is that
an objects body will take up space equal to the sum of the sizes of its
fields (inherited and declared) rounded up to a multiple of 8 bytes.
This also implies that no object will contain more than 7 bytes of
padding.
2023-11-09 12:34:30 +00:00
Alexander.Likhachev
0333985445
[Build] Remove kotlin-gradle-plugin-compiler-dependencies
...
We should consider the information from the removed buildscript to resolve KT-61706
^KT-62650 Fixed
2023-11-09 12:19:23 +00:00
Alexander.Likhachev
defa0b955b
[Gradle] Use kotlin-compiler-embeddable instead of kotlin-gradle-plugin-compiler-dependencies
...
^KT-62650 In Progress
2023-11-09 12:19:23 +00:00
Ivan Kochurkin
64db96eda3
[K1, K2] Use safe names when accessing to type parameters
...
^KT-57529 Fixed
2023-11-09 12:21:43 +01:00
Ivan Kochurkin
3188f01720
[FIR] Handle ConeIntersectionType in createSimpleType
...
^KT-62819 Fixed
2023-11-09 11:19:07 +00:00
Dmitriy Novozhilov
11586975e8
[FIR2IR] Add KDoc to Fir2IrConfiguration.linkViaSignatures flag
2023-11-09 10:43:31 +00:00
Dmitriy Novozhilov
687f5fc20d
[Native] Add fast check that stdlib is present in klib dependencies
...
Previous changes uncovered a problem with lacking of stdlib in
dependencies, which was quite hard to debug and determine.
So this check is supposed to discover similar issues in the future
much more easily.
2023-11-09 10:43:31 +00:00
Dmitriy Novozhilov
b4d29aa583
[Native] Enable linkViaSignatures for K2/Native compiler
...
Setting `linkViaSignatures = false` leads to the situation when fir2ir
provides no guarantees about how SymbolTable is filled, so if some
backend relies on symbol table content (JS and Native does) then
it's required to set this flag to `true`
The issue was uncovered by previous commits because previously fir2ir
created symbols with signatures for some declarations even with
disabled flag, which was fixed by those commits
2023-11-09 10:43:31 +00:00
Dmitriy Novozhilov
740dcfe3c5
[FIR2IR] Manage enum entry symbols in declaration storage instead of declaration generator
...
This is needed to be able to implement creation of unbound symbols
for references of corresponding declarations (KT-62856)
2023-11-09 10:43:31 +00:00
Dmitriy Novozhilov
10ad526936
[FIR2IR] Manage typealias symbols in declaration storage instead of declaration generator
...
This is needed to be able to implement creation of unbound symbols
for references of corresponding declarations (KT-62856)
2023-11-09 10:43:31 +00:00
Dmitriy Novozhilov
d4b0627640
[FIR2IR] Manage class symbols in declaration storage instead of declaration generator
...
This is needed to be able to implement creation of unbound symbols
for references of corresponding declarations (KT-62856)
2023-11-09 10:43:31 +00:00
Dmitriy Novozhilov
7652752e3f
[FIR2IR] Pass proper typeOrigin to implicitCastOrExpression
...
Without it the following test is failing:
- `org.jetbrains.kotlin.test.runners.ir.FirPsiJvmIrTextTestGenerated.Types#testGenericPropertyReferenceType`
2023-11-09 10:43:31 +00:00
Dmitriy Novozhilov
78259e3ee0
[FIR2IR] Manage type parameter symbols in declaration storage instead of declaration generator
...
This is needed to be able to implement creation of unbound symbols
for references of corresponding declarations (KT-62856)
2023-11-09 10:43:31 +00:00
Dmitriy Novozhilov
36c0ed3c9e
[FIR2IR] Get rid of last usage of symbolTable in Fir2IrCallableDeclarationsGenerator
2023-11-09 10:43:31 +00:00