Ivan Kylchik
e827f260e7
[IR] Simplify IrProperty?.isConst check in interpreter
2023-10-25 16:43:25 +00:00
Ivan Kylchik
a97c0bab0b
[IR] Simplify access to IrProperty from IrCall and IrField in interpreter
2023-10-25 16:43:25 +00:00
Vladimir Sukharev
604c8edd1c
[K/N] Fix kt53261_* tests to be dummy in debug mode
...
^KT-62157 Fixed
Merge-request: KT-MR-12720
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-10-25 16:07:01 +00:00
Ilya Goncharov
065733e87c
[FIR] Add UNINITIALIZED_ENUM_ENTRY on access qualifier of local enum
...
^KT-59967 fixed
2023-10-25 15:36:11 +00:00
Jinseong Jeon
1ccb085e68
SLC: use fully expanded type when computing nullability
...
^KT-62757 fixed
2023-10-25 14:59:50 +00:00
Ilya Goncharov
573bc34b56
[JS] Invoke processing separately for suspend and non-suspend function
...
^KT-62771 fixed
2023-10-25 13:28:58 +00:00
Alejandro Serrano Mena
f227447837
[K2] Disallow named functions as expressions
...
^KT-62573 Fixed
^KT-59945 Fixed
2023-10-25 13:24:30 +00:00
Sergej Jaskiewicz
aaf7ccbebd
[util] Introduce IndentingPrinter interface
...
This interface is more convenient to pass around so that it's easier
to replace different printer implementations.
2023-10-25 13:04:15 +00:00
Sergej Jaskiewicz
895d107ac5
[util] Convert Printer from Java to Kotlin
2023-10-25 13:04:14 +00:00
Sergej Jaskiewicz
c442d0e159
[util] Rename Printer.java to Printer.kt before converting it to Kotlin
...
This is to preserve the Git history of the file.
2023-10-25 13:04:14 +00:00
Christoph Loy
cf8b41970e
[Gradle, Kapt] Run kapt even when all dependencies are indirect
...
Previously, kapt skipped the execution, if the "kapt" configuration had
no direct dependencies (via `kapt.dependencies.isEmpty()`).
This lead to kapt not working, if all
annotation processors are declared in a super-configuration of kapt.
With this change, we also consider super-configurations
(via `kapt.allDependencies.isEmpty`) and fix the described bug.
^KT-62518 Fixed
2023-10-25 12:25:41 +00:00
Dmitriy Novozhilov
fb8bf19091
[IR] Rename IrSymbolInternals to UnsafeDuringIrConstructionAPI
...
The new name more precisely describes the meaning of this opt-int
2023-10-25 11:32:46 +00:00
Marco Pennekamp
38ebe60e9f
[FIR] Refactoring: Move set utility functions to setUtils.kt
2023-10-25 11:04:36 +00:00
Marco Pennekamp
8d2bf8828c
[LL FIR] Remove LLFirProviderHelper.getTopLevelClassNamesInPackage
...
- We shouldn't bypass the symbol names cache, as the IDE declaration
provider doesn't cache name sets.
^KT-57314
2023-10-25 11:04:36 +00:00
Marco Pennekamp
efe587691b
[FIR] Type "top-level classifier names in package" as Name
...
- This is more consistent with "top-level callable names in package" and
simplifies the set construction quite a bit, as we can avoid a lot of
`asString` conversions.
2023-10-25 11:04:36 +00:00
Marco Pennekamp
8034d522b9
[LL FIR] Respect allowKotlinPackage in LLFirKotlinSymbolNamesProvider
...
- `LLFirProviderHelper` is guarded by `allowKotlinPackage` and the
symbol names provider should reflect that in the name sets.
- Note that this does not apply to stub-based deserialized symbol
providers, because they do not pass any value to `allowKotlinPackage`.
^KT-57314
2023-10-25 11:04:36 +00:00
Anna Kozlova
e79bc5bb59
[AA] KtExpressionInfoProvider.getMissingCases: fix no subject case
...
return missing else branch (even if it's present, see kdoc)
^ KT-62875 fixed
2023-10-25 09:41:38 +00:00
Hung Nguyen
19104f73bf
Fix casting of extraProperties in PropertiesBuildService
...
`project.extraProperties` may contain values that are not `String`s. To
avoid failing on those values, we should cast the value with
`as? String` instead of `as String?`.
Test: New PropertiesBuildServiceTest
^KT-62496 Fixed
2023-10-25 09:17:34 +00:00
Dmitrii Gridin
3941b05909
[FIR] do not transform annotations on delegated property accessors during implicit type phase
...
^KT-62874 Fixed
2023-10-25 08:59:15 +00:00
Dmitrii Gridin
1b636bf450
[FIR] add tests on annotations for delegated getter during implicit type phase
...
^KT-62874
2023-10-25 08:59:15 +00:00
Ilya Kirillov
11e7500d9e
[native] remove usage of experimental asUByteArray() stdlib function
...
^KT-62510
2023-10-25 08:38:08 +00:00
Ilya Kirillov
633c2d11e5
[native] remove obsolete experimental stdlib api usage annotations
...
^KT-62510
2023-10-25 08:38:08 +00:00
Ilya Kirillov
a65c735feb
[build] add checks to ensure that no modules which are part of the IDE plugin do not use experimental stdlib API
...
to ensure binary compatibility with stdlib inside IntelliJ.
This includes using the latest stable kotlin API version and
forbidding using experimental declarations from stdlib.
^KT-62510
2023-10-25 08:38:07 +00:00
Sebastian Sellmair
ded5cf2caa
[Gradle] Replace 'configureArchivesAndComponent' with KotlinTargetArtifact
...
KT-61634
2023-10-25 08:34:48 +00:00
Sebastian Sellmair
eb4daa4482
[Gradle] Implement CreateTargetConfigurationsSideEffect and NativeForwardImplementationToApiElementsSideEffect
...
KT-61634
2023-10-25 08:34:48 +00:00
Sebastian Sellmair
787420cc21
[Gradle] Introduce KotlinTargetSideEffect and KotlinCompilationSideEffect
...
KT-61634
2023-10-25 08:34:48 +00:00
Sebastian Sellmair
f89a46710a
[Gradle] Implement KotlinTargetSideEffect.extensionPoint
...
KT-61634
2023-10-25 08:34:47 +00:00
Ivan Kochurkin
1827df82c4
Removed useless as casts from compiler code
...
It allows compiling code with K2 and enabled `-Werror`
2023-10-24 20:59:56 +00:00
Ivan Kochurkin
d50c6f1b6d
[FIR] Fix missing USELESS_CAST
...
`FirUselessTypeOperationCallChecker` always checks exact types matching for `as` operator
Simplify code of cast checker and utils
^KT-56629 Fixed
^KT-56615 Fixed
^KT-59820 Fixed
2023-10-24 20:59:56 +00:00
Dmitrii Gridin
2f8026f335
[LL FIR] add missed diagnostic tests for scripts
...
^KT-62840
^KT-62841
^KT-62861
2023-10-24 19:32:54 +00:00
Dmitrii Gridin
8e623ee73a
[LL FIR] support script tests
2023-10-24 19:32:54 +00:00
Mikhail Glukhikh
cba9f1c559
AA: fix PSI finding for FIR callable fake overrides
2023-10-24 17:08:40 +00:00
Mikhail Glukhikh
5bd9b282a0
K2/JS: fix JS_NAME_CLASH positioning as source was changed for callable copies
2023-10-24 17:08:40 +00:00
Mikhail Glukhikh
30c35d79f4
LL API: unwrap callable copies while determining their sources
...
In previous commit (K2: prefer derived class sources...)
we changed default source for callable copy (e.g. substitution override)
to its owner class. This can create an unexpected situation in LL API,
because normally KtCallableDeclaration is expected to be a source.
This commit introduces "compensation" on analysis API side.
2023-10-24 17:08:40 +00:00
Mikhail Glukhikh
3cb9396b20
K2: prefer derived class sources for callable copies (e.g. fake overrides)
2023-10-24 17:08:40 +00:00
Mikhail Glukhikh
4b2a122f80
FIR2IR: make delegate field/accessors sources closer to PSI2IR
...
#KT-59864 Fixed
2023-10-24 17:08:40 +00:00
Mikhail Glukhikh
47fec1a113
K2: use similar sources for if branches (PSI/LT)
...
Related to KT-59584
2023-10-24 17:08:40 +00:00
Mikhail Glukhikh
21b4ce050c
K2: add source range test to ensure #KT-59584 Fixed
2023-10-24 17:08:40 +00:00
Mikhail Glukhikh
920b0bfe63
FIR2IR: use SYNTHETIC_OFFSET for data class generated members
2023-10-24 17:08:40 +00:00
Mikhail Glukhikh
a9894b1842
K2: use derived class sources for callable copies if base callables have no sources
...
Related to KT-60155
2023-10-24 17:08:40 +00:00
Vladimir Sukharev
8395018de8
[FIR] Fix disappeared INVALID_CHARACTERS_NATIVE_ERROR
...
https://youtrack.jetbrains.com/issue/KT-60003/K2-Disappeared-INVALIDCHARACTERSNATIVEERROR
^KT-60003 Fixed
Merge-request: KT-MR-12686
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-10-24 16:28:30 +00:00
Dmitriy Novozhilov
07c4cd231c
[FIR2IR] Lazily load all classes in FIR2IR builtins which may appear in sources
...
If some of builtin classes is declared in sources, trying to load it in
IrBuiltInsOverFir before fir2ir pass which generates IR for source
declarations will lead to creating lazy class instead of normal one
Without this change the following tests are failing:
- `FirLightTreeBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.Signature`
- `testByteIteratorWithWhileLoop`
- `testByteIteratorWithForLoop`
2023-10-24 15:35:05 +00:00
Dmitriy Novozhilov
81821d4cd4
[FIR2IR] OptIn to using IrClass.declarations in all appropriate places
2023-10-24 15:35:05 +00:00
Dmitriy Novozhilov
38a7f2bc07
[IR] Mark utilities, which use IrDeclarationContainer.declarations with @IrSymbolInternals
...
Only those utilities are marked because only them are accessible in fir2ir.
And in other modules it's allowed to access .declarations from anywhere
2023-10-24 15:35:05 +00:00
Dmitriy Novozhilov
78a705a1bc
[Build] Opt in to IrSymbolInternals for some backend-specific modules
2023-10-24 15:35:05 +00:00
Dmitriy Novozhilov
c8b7dbd352
[IR] Add optIn to IrDeclarationContainer.declarations
...
Accessing list of declaration may trigger lazy declaration list computation for lazy class,
which requires computation of fake-overrides for this class. So it's unsafe to access it
before IR for all sources is built (because fake-overrides of lazy classes may depend on
declaration of source classes, e.g. for java source classes)
So this OptIn is needed to carefully handle all cases of .declarations access in FIR2IR
2023-10-24 15:35:05 +00:00
Troels Bjerre Lund
3556533d95
[K/N] Fix K2 detection in native tests
...
This updates how the requested language version is detected in native
tests, after language version 2 has become the default.
2023-10-24 14:00:34 +00:00
Kirill Rakhman
56f53fbd0b
[FIR] Make ClassId not null in enum call mapped from java
2023-10-24 13:27:02 +00:00
Ilya Goncharov
c9e328528e
[Gradle,JS]make downloadBaseUrl nullable to work with FAIL_ON_PROJECT_REPOS
...
^KT-56300 fixed
^KT-55620 fixed
2023-10-24 13:10:12 +00:00
Evgeniy.Zhelenskiy
f4d18da6a0
[FIR] Introduce OPERATOR_CALL_ON_CONSTRUCTOR diagnostic
...
#KT-59943
2023-10-24 12:24:52 +00:00