Commit Graph

10943 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 9e5ee3afa0 [FE] Add isLocal name to ClassId constructor calls where it needed 2023-09-21 12:40:44 +00:00
Dmitriy Novozhilov a43cb721ba [FE] Convert ClassId.java to Kotlin 2023-09-21 12:40:43 +00:00
Mikhail Glukhikh 326d68c1f4 Drop separate K1/K2 implementations of generateMetadataExtraFlags
Related to KT-62056
2023-09-21 11:14:09 +00:00
Mikhail Glukhikh 8b8088720b Rename: DeserializedContainerAbiStability.IR_UNSTABLE -> UNSTABLE
Related to KT-62056
2023-09-21 11:14:09 +00:00
Mikhail Glukhikh a77b758efa LV 2.0: drop reporting FIR_COMPILED_CLASS and relevant stuff
#KT-62056 Fixed
Related to KT-59171, KT-61951
2023-09-21 11:14:09 +00:00
Nikolay Lunyak 2801db0e59 [FIR] Unwrap substitution overrides for multiple default values
Otherwise, duplicate diagnostics may be reported on
subtypes of the type that actually declares the
problematic override.
2023-09-21 07:48:31 +00:00
Nikolay Lunyak 76fa812949 [FIR] Ensure K2 reports redundant diagnostics for default values 2023-09-21 07:48:31 +00:00
Nikolay Lunyak 8755cf75ac [FIR] Improve the messages of the multiple defaults diagnostics
Mention the base functions where the default
values come from.
2023-09-21 07:48:30 +00:00
Kirill Rakhman 4e1dfcd2a8 [FIR] Improve readability of rendered types in diagnostics
#KT-61824 Fixed
#KT-61688 Fixed
2023-09-21 07:18:19 +00:00
Kirill Rakhman 99b852adf8 [FIR] Refactor constructors of ConeTypeRenders 2023-09-21 07:18:19 +00:00
Kirill Rakhman da0308806a [FIR] Rename ConeTypeRendererWithJavaFlexibleTypes to ConeTypeRendererForReadability 2023-09-21 07:18:19 +00:00
Kirill Rakhman e996760e7e [FIR] Fix rendering of SUSPENSION_POINT_INSIDE_CRITICAL_SECTION
#KT-61826 Fixed
2023-09-21 07:18:19 +00:00
Kirill Rakhman ed4386a962 [FIR] Fix rendering of NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS 2023-09-21 07:18:19 +00:00
Ivan Kochurkin 3cd4f7c3aa [FIR] Consider @PlatformDependent annotation everywhere (including JS and Native)
^KT-57858 Fixed

Remove FirEmptyOverridesBackwardCompatibilityHelper since it's not used anymore

Remove overridesMemberWithPlatformDependent.kt test file since it becomes redundant
2023-09-20 17:12:52 +00:00
Ivan Kochurkin 1026cdf035 [FIR] Register necessary resolve components for library session for all backends
^KT-61876 Fixed
2023-09-20 17:12:52 +00:00
Mikhail Glukhikh 1c6af76f61 Skip pre-release checks in FP tests 2023-09-20 15:57:54 +00:00
Mikhail Glukhikh eb3f785c36 K2: drop state mutation from ResolvedLambdaAtom init block
Related to KT-61933
2023-09-20 15:42:03 +00:00
Mikhail Glukhikh 770bbd8f6b K2: drop state mutation from LambdaWithTypeVariableAsExpectedTypeAtom init block
Related to KT-61933
2023-09-20 15:42:03 +00:00
Mikhail Glukhikh 14bc20652e K2: process also arguments while calculating postponed atoms
#KT-61933 Fixed
2023-09-20 15:42:03 +00:00
Mikhail Glukhikh 0c287c9945 K2: reproduce KT-61933 2023-09-20 15:42:03 +00:00
Roman Efremov ad4d1a5ba8 [IR] Support ACTUAL_ANNOTATION_CONFLICTING_DEFAULT_ARGUMENT_VALUE in K2
It's implemented as IR checker because in K2 constant expressions are
evaluated on backend. FIR diagnostic removed because isn't needed.

"annotationViaActualTypeAlias" test has no `// FIR_IDENTICAL` because
diagnostic reported on entire typealias declaration instead of its name.
This is because in IR+LightTree we have only offsets, so can't navigate
to typealias name element.

^KT-59940 Fixed
2023-09-20 15:40:37 +00:00
Sergej Jaskiewicz 88c308dfd3 [FIR generator] Don't print extra space in the where clause 2023-09-20 15:39:40 +00:00
Dmitriy Novozhilov e31ee1fa57 [FIR2IR] Get rid of builtin classes scope precaching
Previously it was required to generate fake-overrides for builtin classes
  beforehead, but during fix of KT-60924 it is no longer required

^KT-60924
2023-09-20 13:27:09 +00:00
Dmitriy Novozhilov 4e08cafc78 [FIR2IR] Get rid of IrSymbol.owner usages in Fir2IrLazyClass
^KT-60924
2023-09-20 13:27:09 +00:00
Dmitriy Novozhilov 5dbc0f12d1 [FIR2IR] Rename getIrEnumEntry to getOrCreateIrEnumEntry
This is needed for sake of naming consistency.
2023-09-20 13:27:09 +00:00
Dmitriy Novozhilov 3a9567ad45 [FIR2IR] Get rid of IrSymbol.owner usages in generation of delegated bodies in DelegatedMemberGenerator
^KT-60924
2023-09-20 13:27:09 +00:00
Dmitriy Novozhilov 4164c0f7ef [FIR2IR] Get rid of all usages of IrSymbol.owner from Fir2IrLazySimpleFunction
^KT-60924
2023-09-20 13:27:09 +00:00
Dmitriy Novozhilov 97005e5f78 [FIR2IR] Get rid of all usages of IrSymbol.owner from Fir2IrLazyPropertyAccessor
^KT-60924
2023-09-20 13:27:09 +00:00
Dmitriy Novozhilov 5b2fe7290b [FIR2IR] Move opt-ins to IrSymbolInternals closer to actual usages of symbol.owner
^KT-60924
2023-09-20 13:27:09 +00:00
Dmitriy Novozhilov 3778a69bf6 [FIR2IR] Replace getIrFieldSymbol with getOrCreateIrField in Fir2IrDeclarationStorage
Effectively, `getIrFieldSymbol` always created `IrField` if it was needed
  and returned its symbol. So to avoid potentially unsafe access of
  `IrFieldSymbol.owner` it's more convenient to return directly `IrField`

^KT-60924
2023-09-20 13:27:09 +00:00
Dmitriy Novozhilov e7b95d1288 [FIR2IR] Replace getIrClassSymbol with getOrCreateIrClass in Fir2IrClassifierStorage
Effectively, `getIrClassSymbol` always created `IrClass` if it was needed
  and returned its symbol. So to avoid potentially unsafe access of
  `IrClassSymbol.owner` it's more convenient to return directly `IrClass`

^KT-60924
2023-09-20 13:27:08 +00:00
Ivan Kochurkin 063835488f Revert "[FIR] Fix missing RETURN_TYPE_MISMATCH for labeled return statements"
This reverts commit 8e72f60996

Since some intellij tests are failing
2023-09-20 12:29:41 +02:00
Vladimir Sukharev e9d4de658d [FIR2IR] Don't emit empty body of while/do_while loop
Merge-request: KT-MR-12283
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-09-20 10:06:00 +00:00
Kirill Rakhman 5b4409e34c [FIR] Store abbreviated type in deserialized declarations as attribute
#KT-58542 Fixed
2023-09-20 09:31:29 +00:00
Ivan Kochurkin 8e72f60996 [FIR] Fix missing RETURN_TYPE_MISMATCH for labeled return statements
in lambda functions, ^KT-59907 Fixed
2023-09-20 09:06:37 +00:00
Kirill Rakhman 2e4d486131 [FIR] Use enhanced scope to guess array type in annotation loading
Otherwise, we return null for any java annotation because the
unenhanced scope doesn't contain any properties.

#KT-61856 Fixed
2023-09-20 08:02:37 +00:00
Sergej Jaskiewicz 0dd01279da [FIR generator] Move Implementation.Kind to common module
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-09-19 22:19:37 +00:00
Sergej Jaskiewicz e62343427d [FIR generator] Move Field and FieldContainer to common module
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-09-19 22:19:37 +00:00
Sergej Jaskiewicz 982b9221b4 [FIR generator] Move ArbitrarilyImportable class to common module
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-09-19 22:19:37 +00:00
Sergej Jaskiewicz 7a6bffaabb [FIR generator] Move Importable interface to common module
This is a step towards commonizing the code generator between
FIR and IR: KT-61970
2023-09-19 22:19:37 +00:00
Nikolay Lunyak ec9cb8beb6 [FIR] Rename JvmNames -> JvmStandardClassIds
This is more consistent with the code of
the common compiler checkers.

It would be nice to refactor the contents
of this object further, but it's out
of scope of the current branch.

^KT-54596
2023-09-19 22:14:09 +00:00
Nikolay Lunyak 986f1624ec [FIR] Remove jvm-specific annotations from common compiler code
^KT-54596 Fixed
2023-09-19 22:14:09 +00:00
Ilmir Usmanov f7a2da8f82 Minor. Add regression test for KT-41997
#KT-41997 Fixed
2023-09-19 20:11:57 +00:00
Ilya Chernikov e5ee364419 IC: Implement expect/actual tracking
fixes NewMultiplatformIT.testIncrementalCompilation
also #KT-61590 fixed
2023-09-19 15:46:30 +00:00
Nikita Bobko b15787bfa8 Fir incorrect usage of AbstractExpectActualCompatibilityChecker.getCallablesCompatibility API
^KT-62027 Fixed

`getCallablesCompatibility` requires parentSubstitutor as a parameter,
but we created a member-level substitutor

`getCallablesCompatibility` will create member-level substitutor itself,
no need to create member-level substitutor on the call site.

IndexOutOfBounds was happening in an attempt of creating member-level
substitutor

I will refactor the `createExpectActualTypeParameterSubstitutor` API in
the following commits later. It will help to avoid problems like that
2023-09-19 14:24:15 +00:00
Dmitrii Gridin 12dc6b1ebc [FIR] FirRenderer: render name for scripts
A script name is important information, so it is better to render it.
This also will fix the inconsistency with redundant space after 'SCRIPT:'.
2023-09-19 14:03:29 +00:00
Dmitrii Gridin c6bb9af823 [FIR] FirRenderer: add missing resolvePhaseRenderer usage for anonymous initializer and dangling modifiers 2023-09-19 14:03:29 +00:00
Brian Norman 4b6c767704 [FIR] Report UNINITIALIZED_VARIABLE for top-level properties
When checking top-level properties, check with initialization enabled.
This makes sure the same errors are reported for member and top-level
properties.
2023-09-19 13:42:54 +00:00
Roman Efremov c88b4105c5 [K2] Correctly handle case when expect annotation is unresolved
Don't report if annotation has error type.

Review: KT-MR-12250

^KT-62026 Fixed
2023-09-19 10:19:08 +00:00
Roman Efremov 04c1bf749c [K1] Correctly handle case when expect annotation is unresolved
Before change NPE was thrown.

Review: KT-MR-12250

^KT-62026
2023-09-19 10:19:08 +00:00