[LL] Implement a common LLSealedInheritorsProvider

- The new `LLSealedInheritorsProvider` is based on the previous
  sealed inheritors provider implementation in the IDE. It uses the
  new direct inheritors provider and the module dependents provider to
  implement the same functionality that was previously confined to the
  IDE. With this design we avoid duplication of complex logic such as
  the KMP handling in `searchInheritors`.
- The implementation is designed to work in the production Standalone
  mode and the aforementioned services have already been implemented for
  Standalone in prior commits. Now we can get rid of the problematic
  `SealedClassInheritorsProviderForTests` and tests should more closely
  match production behavior.
- In IDE mode tests, `LLSealedInheritorsProvider` is used with
  Standalone Analysis API provider implementations. This is in line with
  the rest of the test infrastructure, where Standalone AA providers are
  generally used, as IDE providers aren't available.
- `KotlinSealedInheritorsProvider` is made obsolete by the common sealed
  inheritors provider.

^KT-66013 fixed
^KT-64505 fixed
This commit is contained in:
Marco Pennekamp
2024-02-28 21:35:59 +01:00
committed by Space Team
parent 48229f7faa
commit 1374bc8e2d
20 changed files with 123 additions and 296 deletions
@@ -1,7 +1,7 @@
Diagnostics from elements:
for PSI element of type KtConstructorCalleeExpression at (34,2-12)
NO_VALUE_FOR_PARAMETER text ranges: [(115,125)]
PSI: KtConstructorCalleeExpression at (34,2-12)
for PSI element of type KtNameReferenceExpression at (32,8-10)
UNRESOLVED_REFERENCE text ranges: [(94,96)]
PSI: KtNameReferenceExpression at (32,8-10)
for PSI element of type KtConstructorCalleeExpression at (33,2-12)
NO_VALUE_FOR_PARAMETER text ranges: [(114,124)]
PSI: KtConstructorCalleeExpression at (33,2-12)
for PSI element of type KtNameReferenceExpression at (31,8-10)
UNRESOLVED_REFERENCE text ranges: [(93,95)]
PSI: KtNameReferenceExpression at (31,8-10)
@@ -1,5 +1,4 @@
// ALLOW_KOTLIN_PACKAGE
// DISABLE_SEALED_INHERITOR_CALCULATOR
// MODULE: lib1
// FILE: anno.kt
package kotlin.annotation
@@ -1,13 +1,13 @@
Diagnostics from elements:
for PSI element of type KtCallExpression at (24,20) - (27,2)
TYPE_MISMATCH text ranges: [(98,160)]
PSI: KtCallExpression at (24,20) - (27,2)
for PSI element of type KtLambdaExpression at (24,24) - (27,2)
TYPE_MISMATCH text ranges: [(102,160)]
PSI: KtLambdaExpression at (24,24) - (27,2)
for PSI element of type KtNameReferenceExpression at (25,5-17)
UNRESOLVED_REFERENCE text ranges: [(108,120)]
PSI: KtNameReferenceExpression at (25,5-17)
for PSI element of type KtNameReferenceExpression at (26,5-34)
UNRESOLVED_REFERENCE text ranges: [(127,156)]
PSI: KtNameReferenceExpression at (26,5-34)
for PSI element of type KtCallExpression at (23,20) - (26,2)
TYPE_MISMATCH text ranges: [(97,159)]
PSI: KtCallExpression at (23,20) - (26,2)
for PSI element of type KtLambdaExpression at (23,24) - (26,2)
TYPE_MISMATCH text ranges: [(101,159)]
PSI: KtLambdaExpression at (23,24) - (26,2)
for PSI element of type KtNameReferenceExpression at (24,5-17)
UNRESOLVED_REFERENCE text ranges: [(107,119)]
PSI: KtNameReferenceExpression at (24,5-17)
for PSI element of type KtNameReferenceExpression at (25,5-34)
UNRESOLVED_REFERENCE text ranges: [(126,155)]
PSI: KtNameReferenceExpression at (25,5-34)
@@ -1,4 +1,3 @@
// DISABLE_SEALED_INHERITOR_CALCULATOR
// MODULE: lib1
// FILE: dependency.kt
package usage