Commit Graph

9402 Commits

Author SHA1 Message Date
Denis.Zharkov 13febaf978 Adjust tests for JSR305 annotations being extracted
See the previous commits
2023-03-16 14:43:04 +00:00
aleksandrina-streltsova 34c739789f [AA] Fix rendering for type variable with "Type is not inferred"
It is required to show type variable name instead of ERROR in completion
^KTIJ-20913
2023-03-16 13:57:56 +00:00
Nikolay Lunyak 967ddb8bb0 [FIR] KT-57211: Generate FirArrayOfCall for unsigned types
^KT-57211 Fixed

Merge-request: KT-MR-9216
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com>
2023-03-15 17:05:09 +00:00
Nikolay Lunyak d639215084 [FIR] KT-57095: Allow X? -> * assignments in unification
^KT-57095 Fixed

Merge-request: KT-MR-9180
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com>
2023-03-15 13:56:51 +00:00
Mikhail Glukhikh 58959951d3 K2: fix CCE during bound conversion for Java raw Kotlin-based type
#KT-56630 Fixed
2023-03-15 13:40:49 +00:00
Alexander Korepanov e3402fcc87 [K2 JS] Do not load transitive dependencies for building K2/JS klibs
^KT-57262 Fixed
2023-03-15 10:49:54 +00:00
Pavel Kunyavskiy 62fb3df7f0 [K/N] Disable scope initialization on constant access
^KT-57098
2023-03-15 09:03:19 +00:00
Alexander Udalov f0fba7be64 K2: add bytecode listing tests
#KT-57171 Fixed
2023-03-14 21:57:26 +01:00
Ivan Kylchik d2e92fd70d Add additional test cases and notes for KT44429 2023-03-14 20:47:45 +00:00
Ivan Kylchik 4fc95624a0 Rename attributeOwnerIdBeforeInline to originalBeforeInline 2023-03-14 20:47:44 +00:00
Ivan Kylchik 0af4ef8ee9 Fix typo in test name: inlinInDefault -> inlineInDefault 2023-03-14 20:47:43 +00:00
Ivan Kylchik 86b3ec73d1 Add new set of tests to run JVM checks with IR inliner 2023-03-14 20:47:42 +00:00
Ivan Kylchik bb401c39d9 Add several new SMAP tests
Some of them are still failing and suppose to be
fixed later
2023-03-14 20:47:39 +00:00
Ivan Kylchik 60702f0f02 Add new filed attributeOwnerIdBeforeInline to IrAttributeContainer
This field is null by default, and it is set to current
`attributeOwnerId` when declaration was inlined and must be
generated with new name. In its turn `attributeOwnerId` must be set to
`this` to show that this is actually a new declaration, not a copy.
2023-03-14 20:47:35 +00:00
Pavel Kunyavskiy dc2e072af2 [K/N] Make exception handling in initializers more consistent with jvm
^KT-57091
2023-03-14 12:59:14 +00:00
Nikolay Lunyak c105e63bbb [FIR] KT-57214: Check the annotations "if possible"
^KT-57214 Fixed

Merge-request: KT-MR-9170
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com>
2023-03-14 10:25:02 +00:00
Kirill Rakhman 471ecf62c8 [FIR] Fix UNRESOLVED_REFERENCE in callable reference to delegated var
#KT-57204 Fixed
2023-03-14 09:13:42 +00:00
Kirill Rakhman d20ad67aa9 [FIR] Introduce extension unwrapFakeOverridesOrDelegated() 2023-03-14 09:13:41 +00:00
vladislav.grechko 35dfcb61bb Fix specialization of equality comparison calls for inline classes
Receiver of equals() call should be checked instead of argument

^KT-57261: Fixed
2023-03-13 23:39:35 +00:00
vladislav.grechko 8039e30bbd Fix condition of generating equals-impl0 call
This methods should not be called when instances of different inline
classes are being compared

^KT-57242: Fixed
2023-03-13 23:39:34 +00:00
Evgeniy.Zhelenskiy 948714e7e5 [IR] Fix delegating MFVC constructors
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>

#KT-1179
2023-03-13 19:49:10 +01:00
Nikolay Lunyak 5505fd207e [FIR] KT-57195: Don't approximate ft when checking override return types
Why does this check even exist? K1 doesn't do it.

^KT-57195 Fixed
2023-03-13 16:34:47 +00:00
Nikolay Lunyak b385d787cc [FIR JS] KT-57200: Allow dynamic varargs
^KT-57200 Fixed
2023-03-13 15:54:52 +00:00
Evgeniy.Zhelenskiy 888bf801e2 [FIR] Forbid @JvmInline with inline modifier
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>

#KT-1179
2023-03-13 13:09:57 +00:00
Evgeniy.Zhelenskiy 3b5ad0681f [IR] Fix compiler bugs with MFVC to let KorGE run
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>

#KT-1179
2023-03-13 13:09:56 +00:00
Evgeniy.Zhelenskiy 19424702e0 [IR] Fix mutable shared reference of MFVC type
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>

#KT-1179
2023-03-13 13:09:55 +00:00
Kirill Rakhman 9f33c64715 [FIR] Remove duplicate FirCallableSymbol.isStatic extension 2023-03-13 08:48:39 +00:00
Kirill Rakhman b476eee6e3 [FIR2IR] Simplify generation of bound callable reference receivers
Remove a bunch of custom logic to determine when a callable reference is
bound or not (and hence mustn't have a receiver). Instead, a helper
extension is introduced to determine when a callable reference is bound
by checking if dispatch/extensionReceiver is not FirNoReceiver and the
referenced member is not static.

#KT-57253 Fixed
2023-03-13 08:48:39 +00:00
Mikhail Glukhikh a3f0e429e3 K2: report empty intersection warnings from completion properly 2023-03-11 10:15:25 +00:00
Mikhail Glukhikh 47fab61716 FE: introduce AllowEmptyIntersectionsInResultTypeResolver feature
Related to KT-51221
2023-03-11 10:15:24 +00:00
Mikhail Glukhikh b64cb67370 K2: support ForbidInferringTypeVariablesIntoEmptyIntersection on/off 2023-03-11 10:15:23 +00:00
Mikhail Glukhikh f7544aff62 Delay ForbidInferringTypeVariablesIntoEmptyIntersection to 2.*
Note: here we set sinceVersion = null for this feature.
However, we plan in 1.9.* - 2.0 time frame to solve KT-56377
and to enable this feature in 2.0, the latest in 2.1.
2023-03-11 10:15:22 +00:00
Denis.Zharkov a3dcc2032f Drop RawTypeMarker as it's effectively unused anymore
See the previous commits
2023-03-10 18:35:01 +00:00
Denis.Zharkov 608cb01935 K2: Imitate K1 behavior for case of captured types with a raw supertype
See the comments in the code, but mostly the motivation is that once
it was decided to stick with such a legacy thing as raw types,
we are ok with some corner-cases hacks for them
(if there are not too many of them) and they don't break anything
when there are no raw types in the code.

^KT-56616 Fixed
2023-03-10 18:35:01 +00:00
Denis.Zharkov eb09a25239 TypeSystemContext: Rework raw types processing
All the current usages are about checking if the type is raw,
also in K2 it is simply incorrect to assume that only flexible types
might be raw
2023-03-10 18:35:00 +00:00
Alexander Udalov d96112b944 Remove dependency of fir2ir/fir.entrypoint on psi2ir 2023-03-10 17:49:35 +00:00
Nikolay Lunyak 4b8471d806 [FIR] KT-57247: Expand typealiases in annotation vararg arguments
^KT-57247 Fixed
2023-03-10 17:29:37 +00:00
Stanislav Ruban 5b0b7c4da4 KT-57206: Add diagnostics test
Problem described in KT-57206 seems to have been fixed by KT-56506. This
 commit adds code example from KT-57206 as a diagnostics test.

^KT-57206 Fixed
2023-03-10 14:03:43 +00:00
Artem Kobzar 633d840c88 [K/JS] Deprecate external enum declarations
^KT-57254 Fixed
2023-03-10 12:55:43 +00:00
Alexander Udalov 6595275ba7 Remove ClassBuilderMode.ABI
It was a special mode used only by the removed legacy implementation of
jvm-abi-gen.
2023-03-10 12:24:50 +00:00
Alexander Udalov 77c68fc809 FIR: use ClassBuilderMode.FULL in FirMetadataSerializer
ABI is a special mode which is used only by the deprecated legacy
implementation of jvm-abi-gen. It is more reliable to use the standard
FULL mode to prevent divergence in behavior from normal compilation.
2023-03-10 12:24:49 +00:00
Pavel Mikhailovskii 164cbc9968 KTIJ-24768 Fix IllegalArgumentException in KtType.isPrimitiveBacked 2023-03-10 11:03:45 +00:00
Kirill Rakhman 0e721c8fc2 [FIR2IR] Fix generation of val initialization after smart-cast
If neither setter nor backing field were found for an assignment call,
search overridden properties for backing fields.

^KT-57105 Fixed
2023-03-10 09:30:51 +00:00
Kirill Rakhman 2706e5502f [Tests] Add IR text tests for KT-57105 2023-03-10 09:30:51 +00:00
Marco Pennekamp f9fb718b37 [AA] KT-56617 Optimize deprecation calculation for Java class symbols
- Most Java classes aren't deprecated. To avoid building `firSymbol`
  in such cases, this commit adds a simple heuristic which checks the
  class's annotations for the presence of one of the deprecation
  annotations recognized by the Kotlin compiler.
- Note that annotations are compared via simple names, so there is a
  slight margin of error. However, comparing class IDs is more costly in
  my tests, because getting an annotation's class ID is not as cheap as
  getting its simple name.
2023-03-09 18:35:59 +00:00
Marco Pennekamp 1c46d37663 [AA] KT-56617 Build FirClassSymbols for Java classes lazily
- Some completion performance tests (e.g. IntelliJ: "empty place typing
  with library cache") spent a considerable amount of time in
  `KtFirSymbolProviderByJavaPsi.getNamedClassSymbol`.
- This commit introduces `KtFirPsiJavaClassSymbol`, which implements
  many `KtNamedClassOrObjectSymbol` properties with the `PsiClass`
  instead of the FIR class. The `FirClassSymbol` is built only when
  necessary. This improves performance when no "slow" properties need to
  be computed for the symbol.

^KT-56617 fixed
2023-03-09 18:35:56 +00:00
Marco Pennekamp 9cc6809ec6 [FIR] Fix JavaClass.modality for annotation classes and enums
- `JavaClass.modality` should return the correct modality instead of
  requiring the caller to handle annotation classes and enums.
2023-03-09 18:35:56 +00:00
Kirill Rakhman d7880eb12c [FIR] Refactor SpecificityComparisonWithNumerics 2023-03-09 13:00:54 +00:00
Kirill Rakhman fa432d7f0d [FIR] Prioritize double over float in overload resolution
#KT-57194 Fixed
2023-03-09 13:00:53 +00:00
Dmitriy Novozhilov d5e6102ed9 [FIR] Properly check is some setter function is applicable for synthetic property
^KT-56506 Fixed
2023-03-09 12:32:49 +00:00