Commit Graph
100 Commits
Author SHA1 Message Date
Dmitriy Novozhilov 88bb98e5ad [Build] Update verification-metadata.xml 2023-11-02 10:03:06 +00:00
Dmitriy Novozhilov 2c24bc61cc Advance bootstrap to 2.0.0-dev-6573 2023-11-02 10:03:05 +00:00
Dmitriy Novozhilov e473b52da7 [Test] Add additional test for KT-21463 2023-11-01 17:39:33 +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
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
Dmitriy Novozhilov 0325ffaa01 [FIR] Properly handle nested annotations on compiler-required annotation phase
There was a case when we visited the same declaration multiple times
  because of forward-referencing and visiting with designation
So because of this there were two changes required:
- remove assertion about visiting the same declaration twice (it's fine
  since we don't actually resolve annotations twice)
- not skipping resolution of class children if annotations on this class
  are already resolved

^KT-61388 Fixed
KT-62854
2023-10-24 11:44:21 +00:00
Dmitriy Novozhilov 8b03636b3b [Test] Unmute test due to KT-62058 2023-10-20 14:32:43 +00:00
Dmitriy Novozhilov 33e9ed37e4 Revert "[Build] Return the logic to force LV=1.9 for KGP and its dependencies"
This reverts commit 274198d8
Original commit is not needed anymore after bootstrapping on 9fd14456
2023-10-20 14:32:43 +00:00
Dmitriy Novozhilov 402e4e3af4 [FIR2IR] Rename some entities in Fir2IrDeclarationStorage
In the previous commit, we started to treat delegated function similarly
  to substitution/intersection overrides, so now it's incorrect to name
  corresponding methods and storages using "fake-override" word

^KT-62671
2023-10-19 13:15:48 +00:00
Dmitriy Novozhilov 940567978d [FIR2IR] Treat delegated functions as fake-overrides
Delegated callables in FIR are session-dependant (as fake-overrides),
  so it's incorrect to use their FIR as a key for declaration storage.
  Pair of original function and owner lookup tag should be used instead

^KT-62671 Fixed
2023-10-19 13:15:48 +00:00
Dmitriy Novozhilov 7ff2fc9dbe Add workaround for KT-62702 2023-10-19 12:13:46 +00:00
Dmitriy Novozhilov 866fbed388 Advance bootstrap to 2.0.0-dev-5387 2023-10-19 12:13:45 +00:00
Dmitriy Novozhilov 847442d547 [Test] Add regression test for KT-60876 2023-10-19 06:58:14 +00:00
Dmitriy Novozhilov 9366847e96 [FIR2IR] Properly approximate intersection types during fir2ir conversion
^KT-62544 Fixed
2023-10-18 13:02:11 +00:00
Dmitriy Novozhilov 43929398da [FIR] Pass implications from subject of safe call in DFA
^KT-59689 Fixed
2023-10-18 12:17:44 +00:00
Dmitriy Novozhilov 5d3402339e [FIR DFA] Rename Persistent.logicStatements -> implications 2023-10-18 12:17:44 +00:00
Dmitriy Novozhilov dc08e3bf99 [FIR] Cleanup formatting in DFA code 2023-10-18 12:17:44 +00:00
Dmitriy Novozhilov ef3d3a9724 [Metadata] Update tests according to KT-62580, KT-62581 and KT-62582 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov fa69d4837b [AA] Add workaround for KT-62578 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 605a567e10 [AA] Add workaround for KT-62544 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 5602fcdf76 [Build] Handle renderDiagnosticNames build property in stdlib and dom-api-compat modules 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 704e2ef5c5 Suppress K2 specific warnings in the codebase
^KT-62472
2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 9e66a7b999 Workaround KT-62473 in the codebase 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 6114e4f068 Fix compilation problems caused by migration to 2.0 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov a35f2eb90e Build: switch language level for compilation to 2.0
KT-61951
2023-10-18 07:59:26 +00:00
Dmitriy Novozhilov 3f89f03b54 [IR Actualizer] Set overridden symbols for property accessors 2023-10-17 12:46:28 +00:00
Dmitriy Novozhilov 8ccbbedbd5 [Test] Update debugger testdata because of KT-62521 2023-10-17 12:46:28 +00:00
Dmitriy Novozhilov 3b6ad36af1 [Test] Update/unmute tests after previous fixes
It's hard to tell which exact commit fixed each test
2023-10-17 12:46:28 +00:00
Dmitriy Novozhilov 84f41b7d68 [FIR] Use lower bound of supertype in findClassRepresentation for intersection types 2023-10-17 12:46:28 +00:00
Dmitriy Novozhilov c3f3a4192c [FIR] Check supertypes hierarchy for java classes during creation of synhtetic properies
^KT-62394 Fixed
2023-10-17 12:46:28 +00:00
Dmitriy Novozhilov 16ab36e167 [FIR] Don't create synthetic overriden property if base property is invisible
^KT-62393 Fixed
2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov 61ec143b74 [FIR] Don't generate delegated members for java methods with default implementation
^KT-62334 Fixed
2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov 5857e6cc5d [Test] Mute some tests because of KT-62393 and KT-62394 2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov 8bf4d3cbf7 [Test] Mute some tests because of KT-62334 2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov 3d6ec0ec75 [FIR2IR] Automatically store IR declaration in its parent upon creation
Previously, creating a declaration with Fir2IrCallableDeclarationsGenerator/
  Fir2IrClassifiersGenerator didn't guarantee that this declaration will
  be actually added to the list of parent class/file declarations, which
  lead to situations when FIR2IR created some declarations in the air
  (mostly fake-overrides)
2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov 22f55b3dc4 [Raw FIR] Keep the name of an anonymous object of enum entry in classId of its nested classes
It is needed to have an ability to distinguish those two cases in FIR2IR:

Without this change the following tests fail:
- org.jetbrains.kotlin.test.runners.codegen.FirPsiBlackBoxCodegenTestGenerated.Enum
  - testEnumEntryReferenceFromInnerClassConstructor1()
  - testEnumEntryReferenceFromInnerClassConstructor2()
  - testEnumEntryReferenceFromInnerClassConstructor3()
  - testInnerClassMethodInEnumEntryClass()
  - testInnerClassMethodInEnumEntryClass2()
  - testKt9711_2()
  - testDeepInnerClassInEnumEntryClass()
  - testKt7257_boundReference1()
  - testInnerClassInEnumEntryClass()
  - testKt44744_innerClass()
2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov 000c24fc69 [Raw FIR] Add test for callable ids of functions inside body of enum entry 2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov 34d0f3dbc2 [FIR2IR] Correctly calculate ir origin for f/o callables in declarations generator
This change uncovers one problem, which causes some MPP tests to fail
This problem will be fixed in further commits

Uncovers KT-62535
2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov 50425e82c5 [FIR2IR] Simplify Fir2IrDeclarationStorage.getIrPropertySymbol
For reasoning refer to the message of the previous commit
It is the same as for `getIrFunctionSymbol`

There is one failing test here, caused by KT-61941
The issue was here before this commit, but it was hidden
2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov 1e090d45d1 [FIR2IR] Simplify Fir2IrDeclarationStorage.getIrConstructorSymbol
For reasoning refer to the message of the previous commit
It is the same as for `getIrFunctionSymbol`
2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov c7c83de528 [FIR2IR] Don't create fake-overrides of static members like they are real ones
It's incorrect to create fake-overrides with `getOrCreateIrFunction/Property`
  call. FakeOverrideGenerator should be used instead. So this commit
  just changes the place which creates static f/o generated from

I failed to reproduce the corresponding failure in compiler tests, but
  without this change FP Kotlin test fails
2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov bb093037c0 [FIR2IR] Simplify Fir2IrDeclarationStorage.getIrFunctionSymbol
Previously `getIrFunctionSymbol` effectively did the same thing as `getOrCreateIrFunction`,
  but in a slightly different way. To avoid logic duplication and source of
  potential inconsistencies, implementation was changed to just delegate to
  `getOrCreateIrFunction`

Changes in `computeIrOrigin` were required because origin for callables in
  `getOrCreateIrFunction` and `getIrFunctionSymbol` was computed differently,
  so `computeIrOrigin` was changed to preserve existing behavior

^KT-60924
2023-10-17 12:46:27 +00:00
Dmitriy Novozhilov d5540ff035 [IR Actualizer] Don't report errors about not implemented members from actualizer
Reporting of those errors was implemented as an ad-hock solution for part
 of the KT-58881, and it was implemented incorrectly. There won't be any
 need in this reporting in actualizer after KT-58881 will be fixed, so
 there is no actual sense to fix their implementation in actualizer itself
 (as it will be removed)
2023-10-16 12:26:31 +00:00
Dmitriy Novozhilov c25cde8871 [FIR2IR] Provide correct module data to FirModuleDescriptor
Properly implement friend modules visibility check

^KT-61384 Fixed
^KT-62475 Fixed
2023-10-12 06:47:02 +00:00
Dmitriy Novozhilov d9ddac5571 Advance bootstrap to 2.0.0-dev-4562 2023-10-09 09:30:38 +00:00
Dmitriy Novozhilov 91667d4e00 [Build] Fix update-bootstrap script 2023-10-09 09:30:37 +00:00
Dmitriy Novozhilov b9744f5315 [Build] Remove incorrect dependency from :kotlin-compiler for JPS build 2023-10-09 07:46:50 +00:00
Dmitriy Novozhilov e5530147f0 [FE] Make ClassId a data class 2023-09-21 12:40:44 +00:00
Dmitriy Novozhilov 9e5ee3afa0 [FE] Add isLocal name to ClassId constructor calls where it needed 2023-09-21 12:40:44 +00:00
Dmitriy Novozhilov adaf8ae46a [FE] Cleanup implementation of ClassId 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
Dmitriy Novozhilov a3bcac00e4 [FE] Rename ClassId.java to ClassId.kt 2023-09-21 12:40:43 +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
Dmitriy Novozhilov 97cf240450 [FIR] Reuse enhancement storage during creation of synthetic properies
^KT-61972 Fixed
2023-09-18 15:09:07 +00:00
Dmitriy Novozhilov 9a6c6a40a9 [FIR2IR] Allow symbolTable cache lookups for generated Any methods
^KT-61972 Fixed
2023-09-18 09:16:15 +00:00
Dmitriy Novozhilov 85c2226335 [FIR2IR] Allow symbolTable cache lookups for mapped JVM declarations 2023-09-15 11:51:58 +00:00
Dmitriy Novozhilov 0e92f98031 [FIR2IR] Allow symbolTable cache lookups if IR f/o builder mode is enabled
Without this change, the following test is failing:
- FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.Collections.testInheritFromHashtable

^KT-58861
2023-09-15 11:51:57 +00:00
Dmitriy Novozhilov 9a109e98ce [FIR2IR] Raise an exception if declaration is found in symbol table but not in Fir2IrDeclarationStorage
^KT-61637 Fixed
^KT-61774
2023-09-15 11:51:57 +00:00
Dmitriy Novozhilov 3f3c839c48 [FIR] Cache deserialized builtin functions
Apparently `FirBuiltinSymbolProvider` cached deserialized classes but
  created new fir functions for each invocation

^KT-61637
2023-09-15 11:51:57 +00:00
Dmitriy Novozhilov 36cb869ac2 [FIR2IR] Create fake one-time use properties for callable reference to synthetic properies
Previously fir2ir created real IR properties some getter and setter for
  such references, which lead to the situation that there might be a
  unbound fake override for synthetic property which wasn't stored in
  declaration storage (and code in FakeOverrideGenerator was a hack
  to cover this case)
In the same time K1 creates fake property for such cases, which is stored
  in IrPropertyReference along with original get... and set... functions
  as getter and setter of reference. And in this commit K2 does the same thing

^KT-61637
2023-09-15 11:51:57 +00:00
Dmitriy Novozhilov 7ea54ee87f [FIR2IR] Properly compute parent for fake overrides
^KT-61637
2023-09-15 11:51:57 +00:00
Dmitriy Novozhilov 954ef58d35 [FIR2IR] Don't create calls to members of Nothing for data/value generated members
Without this change, the following tests will fail:
- `FirLightTreeBlackBoxCodegenTestGenerated.InlineClasses#testJavaPrimitiveTypeIC`
- `FirLightTreeBlackBoxCodegenTestGenerated.InlineClasses#testJavaPrimitiveTypeICGeneric`
- `FirPsiJvmIrTextTestGenerated.Classes.DataClasses#testKt31649`

^KT-61637
2023-09-15 11:51:57 +00:00
Dmitriy Novozhilov 9cf1d43465 [FIR2IR] Properly treat synthetic properties in Fir2IrDeclarationStorage
There is a difference in how FIR and IR treat synthetic properties (properties built upon java getter + optional java setter)
For FIR they are really synthetic and exist only during call resolution, so FIR creates a new instance of FirSyntheticProperty
  each time it resolves some call to such property
In IR synthetic properties are fair properties that are present in IR Java classes

This leads to the situation when synthetic property does not have a stable key (because FIR instance is new each time) and the only
  source of truth is a symbol table. To fix it (and avoid using symbol table as a storage), a pair of original getter and setter is
  used as a key for storage IR for synthetic properties. And to avoid introducing special cache of FirSyntheticPropertyKey -> IrProperty
  additional mapping level is introduced

- FirSyntheticPropertyKey is mapped to the first FIR synthetic property which was processed by FIR2IR
- this property is mapped to IrProperty using regular propertyCache

^KT-61637
2023-09-15 11:51:57 +00:00
Dmitriy Novozhilov a3498bdd91 [FIR2IR] Cache generated IR functions for data/value classes in declarations storage
Previously, DataClassMembersGenerator saved generated functions only in
  symbol table, which led to the situation when there is a FIR function
  in scopes, IR function in symbol table but no record about their relation
  in Fir2IrDeclarationStorage

^KT-61637
2023-09-15 11:51:57 +00:00
Dmitriy Novozhilov 58e8dfc23b [FIR2IR] Remove or approve some of left usages of IrSymbol.owner 2023-09-15 11:51:57 +00:00
Dmitriy Novozhilov 6d00dcf972 [FIR] Strip comments in Fir2IrAnnotationsFromPluginRegistrar
Fir2IrAnnotationsFromPluginRegistrar stores elements using start and end
  offsets from IR elements, which strip comments from the start offset.
  So it's also needed to strip it from FIR source to keep the consistency

^KT-61872 Fixed
2023-09-12 13:21:05 +00:00
Dmitriy Novozhilov 1f49266c4b [Test] Reproduce KT-61872 2023-09-12 13:21:05 +00:00
Dmitriy Novozhilov 49071374b4 [FIR] Look for annotations generated by backend based on declaration-site session
Test dump for klib does not correlate to real case (CLI compilation of
  JS or Native), because for some reason KLib facade in MPP scenario
  uses session/module of each specific file, instand of session for
  leaf platform module
In CLI scenario only one session is used, so annotations are generated
  properly

^KT-61833 Fixed
2023-09-12 13:21:05 +00:00
Dmitriy Novozhilov 37aad51438 [Build] Regenerate verification-metadata.xml in bootstrap-update script
This is needed for two purposes:
- sometimes dependencies may differ because of changes in KGP, and it's
  better to find it right after version-update commit, not only at remote run
- there is a plan to drop `trusted` section from `verification-metadata.xml`
  and always set specific versions of used dependencies even for bootstrap
  dependencies, so running it in regular bootstrap update routine won't
  allow forgetting about it (see KTI-1374)
2023-09-07 11:53:30 +00:00
Dmitriy Novozhilov 32cd4b7bad [Build] Update verification-metadata.xml to workaround KT-61766 2023-09-07 11:53:29 +00:00
Dmitriy Novozhilov db23c11e0b [Build] Update verification-metadata.xml 2023-09-07 11:53:29 +00:00
Dmitriy Novozhilov e69c9e2fc6 Advance bootstrap to 1.9.30-dev-2548 2023-09-07 11:53:28 +00:00
Dmitriy Novozhilov f203681ffa [FIR] Make extensionReceiver and dispatchReceiver nullable
Get rid of FirNoReceiverExpression

^KT-59650 Fixed
2023-09-06 09:25:22 +00:00
Dmitriy Novozhilov 2d334c4e71 [Test] Merge multiple abstract legacy test runners into a single one
There was only one real inheritor of AbstractFirBaseDiagnosticTest,
  so there is no need in the whole hierarchy of abstract test runners

Also AbstractFirOldFrontendLightClassesTest is not intended to check any
  diagnostics or CFG dumps, so this logic was removed (they still can be
  checked using non-legacy AbstractFirDiagnosticTest from the main test
  infrastructure)
2023-09-05 14:59:36 +00:00
Dmitriy Novozhilov fa4c6d55c1 [FIR] Store mapped jvm declarations in session component, share it between MPP modules
^KT-61640 Fixed

This change doesn't affect any tests in the moment, because it's part of
  bigger refactoring of proper storing IR declarations during FIR2IR
  conversion (KT-61637)

Without this change, there is one test break in branch for KT-61637:
- FirPsiBlackBoxCodegenTestGenerated.Multiplatform.K2.testJavaMethodWithTypeParameter
2023-09-05 14:43:43 +00:00
Dmitriy Novozhilov bb36beb364 [FIR] Share enhancedSymbolStorage between common and platform sessions
This is needed for two reasons:
1. common and platform modules are analyzed in the same setup with same
   dependencies and configurations, so the results of the enhancement for
   any function will be completely identical. So by sharing enhanced
   symbol storage, we avoid recomputation enhanced functions and improve
   performance
2. There is a goal to have some unique key for IR declarations in FIR2IR.
   For regular declarations, the key is just Fir symbol, and for fake-overrides
   it is a pair of original symbol and fake override owners lookup tag.
   But for enhanced functions the symbol is not unique, because we create
   different symbols for the same enhanced function for different modules.
   So this change fixes this problem

^KT-60397 Fixed

This change doesn't affect any tests in the moment, because it's part of
  bigger refactoring of proper storing IR declarations during FIR2IR
  conversion (KT-61637)

Without this change, there are some test breaks in branch for KT-61637:
- FirPsiBlackBoxCodegenTestGenerated.Multiplatform.testStarImportOfExpectEnumWithActualTypeAlias
- FirPsiBlackBoxCodegenTestGenerated.Multiplatform.K2.DefaultArguments.testNestedEnumEntryValue
- FirPsiBlackBoxCodegenTestGenerated.Multiplatform.K2.Basic.testEnumEntryNameCall
2023-09-05 14:43:43 +00:00
Dmitriy Novozhilov 1868b29cc9 [FIR] Don't map java functions which override kotlin builtin function with erased parameter type if it's not needed
There is a case when we shouldn't hide a function even if it overrides
  builtin member with value parameter erasure: if substituted kotlin
  overridden has the same parameters as current java override. Such
  situation may happen only in case when `Any`/`Object` is used as
  parameterization of supertype:

// java
class MySuperMap extends java.util.Map<Object, Object> {
    @Override
    public boolean containsKey(Object key) {...}

    @Override
    public boolean containsValue(Object key) {...}
}

In this case, the signature of override, made based on the correct
  kotlin signature, will be the same (because of { K -> Any, V -> Any }
  substitution for both functions). And since the list of all such
  functions is well-known, the only case when this may happen is when
  value parameter types of kotlin overridden are `Any`

This change doesn't affect any tests in the moment, because it's part of
  bigger refactoring of proper storing IR declarations during FIR2IR
  conversion (KT-61637)

Without this change, there is one test break in branch for KT-61637:
`FirPsiBlackBoxCodegenTestGenerated.SpecialBuiltins.testMapGetOrDefault`
2023-09-05 10:18:24 +00:00
Dmitriy Novozhilov e4a51dfa1b [Serialization] Don't report errors on properties from supertypes
^KT-53926 Fixed
2023-09-01 09:35:43 +00:00
Dmitriy Novozhilov b4bc659008 [FIR] Update documentation of AbstractPredicate about matching local declarations
^KT-52449 Obsolete
2023-09-01 09:35:43 +00:00
Dmitriy Novozhilov de68ec7cd5 [FIR] Properly report SEALED_INHERITOR_IN_DIFFERENT_MODULE
^KT-46031 Fixed
^KT-59804 Fixed
2023-08-31 12:32:25 +00:00
Dmitriy Novozhilov 6169834bb3 [FIR] Make FirResolvedDeclarationStatus.modality non nullable
^KT-58764 Fixed
2023-08-31 09:38:44 +00:00
Dmitriy Novozhilov 332eca2d55 [Test] Update testdata of fixed test
I don't really know which exact commit fixed this test, but there was
  a problem with return types of delegated members. Before my changes
  delegated `override fun foo(x: Int)` in `actual class E` had error
  return type and now it has correct type `Int`
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov b53ccf7fac [FIR2IR] Drop Fir2IrSymbols in favor of IrPublicSymbol...Impl
Effectively, those two symbol hierarchies have the same semantics, so
  there is no sense to keep them both
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 1776b84945 [FIR2IR] Remove unused checks of type parameter index 2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 0d942d2564 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 17
Move creation of Fir2IrLazyConstructor into Fir2IrLazyDeclarationsGenerator
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov b9fd78d906 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 16
Group methods of Fir2IrClassifierStorage and Fir2IrClassifiersGenerator
  by types of declarations they are working with.

This commit contains nothing but just moving code in borders of the same file
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 40ae5a8e33 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 15
Always require containing IrClass for enum entries
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov eb9c732527 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 14
Decompose creation, processing, and caching local classes between classifier
  storage and classifiers generator
2023-08-30 14:51:45 +00:00