Commit Graph
10 Commits
Author SHA1 Message Date
Artem Vasilev 564d44b16d [FIR] Test for duplicate filtering for overrides from Java 2023-03-03 11:06:19 +00:00
Artem Vasilev f7dea5bd70 [FIR] Filter duplicates in KtSymbolDeclarationOverridesProvider's output
^KT-54430
2023-03-03 11:06:18 +00:00
Artem Vasilev cac612f967 [FIR] Use symbol's FirSession in KtFirSymbolDeclarationOverridesProvider
^KT-54430 Fixed
2023-03-03 11:06:18 +00:00
Artem Vasilev ccc3f52acf [FIR] Rename FirSyntheticPropertiesStorage, extract property creation 2023-01-30 20:05:51 +00:00
Artem Vasilev 075a80613b [FIR] Introduce cache for not-yet-enhanced synthetic properties
The original synthetic properties from Java were not cached anywhere and
created anew for every session. However, the enhanced properties are
(along with their originals) saved inside the session's cache, causing
inconsistency with newly created symbols via referential equality.
2023-01-30 20:05:50 +00:00
Artem Vasilev 82d934d873 [LL FIR] fix typo in LLFirModuleData.friendDependencies
^KTIJ-23347 Fixed
2023-01-16 10:48:38 +00:00
Artem Vasilev 1e1f96f73e [LL FIR] fix more possible NPEs at lock access
Depending on the execution, some accesses to lock could cause NPE.
The best solution we've found so far is to make lock volatile, so that
reads between lock and value are consistent between threads.
It requires further work to determine if we can have one volatile field.
2022-12-16 17:56:49 +00:00
Artem Vasilev 04924dbfed [LL FIR] replace guard with ReentrantLock.holdCount
Previously, there was a guard variable that prevented recursive
locks. It can be replaced with lock.holdCount check.
2022-12-16 17:56:49 +00:00
Artem Vasilev 879f6c3432 [LL FIR] restructure lock assertion to prevent NPEs
When the other thread has already computed the value and cleared the
lock, the other thread could still enter the computeValueWithoutLock()
and see lock == null
2022-12-16 17:56:49 +00:00
Artem Vasilev 02484baf07 [FIR] Set Java constructor source to Java class's when it's implicit
When there are no declared constructors in Java class, make
javaConstructor's source element point to the class declaration,
making it possible to navigate from constructor's invocation there.

^KTIJ-22360 Fixed
2022-11-17 13:18:30 +00:00