FIR IDE: Add ImportMemberIntention

This commit is contained in:
Tianyu Geng
2021-05-31 22:40:22 -07:00
committed by TeamCityServer
parent 66d44f2471
commit 3aa6cb25ba
40 changed files with 495 additions and 12 deletions
@@ -8,19 +8,25 @@ package org.jetbrains.kotlin.generators.tests.idea
import org.jetbrains.kotlin.AbstractDataFlowValueRenderingTest
import org.jetbrains.kotlin.addImport.AbstractAddImportTest
import org.jetbrains.kotlin.addImportAlias.AbstractAddImportAliasTest
import org.jetbrains.kotlin.asJava.classes.*
import org.jetbrains.kotlin.asJava.classes.AbstractUltraLightClassLoadingTest
import org.jetbrains.kotlin.asJava.classes.AbstractUltraLightClassSanityTest
import org.jetbrains.kotlin.asJava.classes.AbstractUltraLightFacadeClassTest
import org.jetbrains.kotlin.asJava.classes.AbstractUltraLightScriptLoadingTest
import org.jetbrains.kotlin.checkers.*
import org.jetbrains.kotlin.copyright.AbstractUpdateKotlinCopyrightTest
import org.jetbrains.kotlin.findUsages.*
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesTest
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesWithDisableComponentSearchTest
import org.jetbrains.kotlin.findUsages.AbstractKotlinFindUsagesWithLibraryTest
import org.jetbrains.kotlin.findUsages.AbstractKotlinFindUsagesWithStdlibTest
import org.jetbrains.kotlin.formatter.AbstractFormatterTest
import org.jetbrains.kotlin.formatter.AbstractTypingIndentationTestBase
import org.jetbrains.kotlin.generators.TestGroup
import org.jetbrains.kotlin.generators.impl.generateTestGroupSuite
import org.jetbrains.kotlin.generators.util.TestGeneratorUtil
import org.jetbrains.kotlin.generators.util.TestGeneratorUtil.KT_OR_KTS
import org.jetbrains.kotlin.generators.util.TestGeneratorUtil.KT_WITHOUT_FIR_PREFIX
import org.jetbrains.kotlin.generators.util.TestGeneratorUtil.KT_OR_KTS_WITHOUT_DOTS_IN_NAME
import org.jetbrains.kotlin.generators.util.TestGeneratorUtil.KT_WITHOUT_DOTS_IN_NAME
import org.jetbrains.kotlin.generators.util.TestGeneratorUtil.KT_WITHOUT_FIR_PREFIX
import org.jetbrains.kotlin.idea.AbstractExpressionSelectionTest
import org.jetbrains.kotlin.idea.AbstractSmartSelectionTest
import org.jetbrains.kotlin.idea.actions.AbstractGotoTestOrCodeActionTest
@@ -37,14 +43,13 @@ import org.jetbrains.kotlin.idea.codeInsight.moveUpDown.AbstractMoveStatementTes
import org.jetbrains.kotlin.idea.codeInsight.postfix.AbstractPostfixTemplateProviderTest
import org.jetbrains.kotlin.idea.codeInsight.surroundWith.AbstractSurroundWithTest
import org.jetbrains.kotlin.idea.codeInsight.unwrap.AbstractUnwrapRemoveTest
import org.jetbrains.kotlin.idea.fir.completion.AbstractFirKeywordCompletionTest
import org.jetbrains.kotlin.idea.fir.completion.AbstractHighLevelJvmBasicCompletionTest
import org.jetbrains.kotlin.idea.fir.completion.AbstractHighLevelMultiFileJvmBasicCompletionTest
import org.jetbrains.kotlin.idea.completion.test.*
import org.jetbrains.kotlin.idea.completion.test.handlers.*
import org.jetbrains.kotlin.idea.completion.test.handlers.AbstractBasicCompletionHandlerTest
import org.jetbrains.kotlin.idea.completion.test.handlers.AbstractCompletionCharFilterTest
import org.jetbrains.kotlin.idea.completion.test.handlers.AbstractKeywordCompletionHandlerTest
import org.jetbrains.kotlin.idea.completion.test.handlers.AbstractSmartCompletionHandlerTest
import org.jetbrains.kotlin.idea.completion.test.weighers.AbstractBasicCompletionWeigherTest
import org.jetbrains.kotlin.idea.completion.test.weighers.AbstractSmartCompletionWeigherTest
import org.jetbrains.kotlin.idea.fir.completion.wheigher.AbstractHighLevelWeigherTest
import org.jetbrains.kotlin.idea.configuration.AbstractGradleConfigureProjectByChangingFileTest
import org.jetbrains.kotlin.idea.conversion.copy.AbstractLiteralKotlinToKotlinCopyPasteTest
import org.jetbrains.kotlin.idea.conversion.copy.AbstractLiteralTextToKotlinCopyPasteTest
@@ -74,14 +79,26 @@ import org.jetbrains.kotlin.idea.fir.asJava.classes.AbstractFirClassLoadingTest
import org.jetbrains.kotlin.idea.fir.asJava.classes.AbstractFirLightClassTest
import org.jetbrains.kotlin.idea.fir.asJava.classes.AbstractFirLightFacadeClassTest
import org.jetbrains.kotlin.idea.fir.checkers.AbstractFirKotlinHighlightingPassTest
import org.jetbrains.kotlin.idea.fir.completion.AbstractFirKeywordCompletionTest
import org.jetbrains.kotlin.idea.fir.completion.AbstractHighLevelJvmBasicCompletionTest
import org.jetbrains.kotlin.idea.fir.completion.AbstractHighLevelMultiFileJvmBasicCompletionTest
import org.jetbrains.kotlin.idea.fir.completion.test.handlers.AbstractFirKeywordCompletionHandlerTest
import org.jetbrains.kotlin.idea.fir.completion.test.handlers.AbstractHighLevelBasicCompletionHandlerTest
import org.jetbrains.kotlin.idea.fir.completion.wheigher.AbstractHighLevelWeigherTest
import org.jetbrains.kotlin.idea.fir.findUsages.AbstractFindUsagesFirTest
import org.jetbrains.kotlin.idea.fir.findUsages.AbstractFindUsagesWithDisableComponentSearchFirTest
import org.jetbrains.kotlin.idea.fir.findUsages.AbstractKotlinFindUsagesWithLibraryFirTest
import org.jetbrains.kotlin.idea.fir.findUsages.AbstractKotlinFindUsagesWithStdlibFirTest
import org.jetbrains.kotlin.idea.fir.frontend.api.components.*
import org.jetbrains.kotlin.idea.fir.frontend.api.fir.AbstractResolveCallTest
import org.jetbrains.kotlin.idea.fir.frontend.api.scopes.AbstractFileScopeTest
import org.jetbrains.kotlin.idea.fir.frontend.api.scopes.AbstractMemberScopeByFqNameTest
import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractMemoryLeakInSymbolsTest
import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByFqNameTest
import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByPsiTest
import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByReferenceTest
import org.jetbrains.kotlin.idea.fir.highlighter.AbstractFirHighlightingTest
import org.jetbrains.kotlin.idea.fir.inspections.AbstractFe10BindingIntentionTest
import org.jetbrains.kotlin.idea.fir.inspections.AbstractHLInspectionTest
import org.jetbrains.kotlin.idea.fir.inspections.AbstractHLLocalInspectionTest
import org.jetbrains.kotlin.idea.fir.intentions.AbstractHLIntentionTest
@@ -90,6 +107,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.trackers.AbstractProjectWideO
import org.jetbrains.kotlin.idea.fir.quickfix.AbstractHighLevelQuickFixMultiFileTest
import org.jetbrains.kotlin.idea.fir.quickfix.AbstractHighLevelQuickFixTest
import org.jetbrains.kotlin.idea.fir.resolve.AbstractFirReferenceResolveTest
import org.jetbrains.kotlin.idea.fir.shortenRefs.AbstractFirShortenRefsTest
import org.jetbrains.kotlin.idea.folding.AbstractKotlinFoldingTest
import org.jetbrains.kotlin.idea.fir.inspections.AbstractFe10BindingIntentionTest
import org.jetbrains.kotlin.idea.hierarchy.AbstractHierarchyTest
@@ -98,8 +116,12 @@ import org.jetbrains.kotlin.idea.highlighter.*
import org.jetbrains.kotlin.idea.imports.AbstractJsOptimizeImportsTest
import org.jetbrains.kotlin.idea.imports.AbstractJvmOptimizeImportsTest
import org.jetbrains.kotlin.idea.index.AbstractKotlinTypeAliasByExpansionShortNameIndexTest
import org.jetbrains.kotlin.idea.inspections.*
import org.jetbrains.kotlin.idea.intentions.*
import org.jetbrains.kotlin.idea.inspections.AbstractLocalInspectionTest
import org.jetbrains.kotlin.idea.inspections.AbstractMultiFileLocalInspectionTest
import org.jetbrains.kotlin.idea.intentions.AbstractConcatenatedStringGeneratorTest
import org.jetbrains.kotlin.idea.intentions.AbstractIntentionTest
import org.jetbrains.kotlin.idea.intentions.AbstractIntentionTest2
import org.jetbrains.kotlin.idea.intentions.AbstractMultiFileIntentionTest
import org.jetbrains.kotlin.idea.intentions.declarations.AbstractJoinLinesTest
import org.jetbrains.kotlin.idea.internal.AbstractBytecodeToolWindowTest
import org.jetbrains.kotlin.idea.kdoc.AbstractKDocHighlightingTest
@@ -110,7 +132,9 @@ import org.jetbrains.kotlin.idea.navigation.*
import org.jetbrains.kotlin.idea.navigationToolbar.AbstractKotlinNavBarTest
import org.jetbrains.kotlin.idea.parameterInfo.AbstractParameterInfoTest
import org.jetbrains.kotlin.idea.perf.*
import org.jetbrains.kotlin.idea.quickfix.*
import org.jetbrains.kotlin.idea.quickfix.AbstractQuickFixMultiFileTest
import org.jetbrains.kotlin.idea.quickfix.AbstractQuickFixMultiModuleTest
import org.jetbrains.kotlin.idea.quickfix.AbstractQuickFixTest
import org.jetbrains.kotlin.idea.refactoring.AbstractNameSuggestionProviderTest
import org.jetbrains.kotlin.idea.refactoring.copy.AbstractCopyTest
import org.jetbrains.kotlin.idea.refactoring.copy.AbstractMultiModuleCopyTest
@@ -153,7 +177,6 @@ import org.jetbrains.kotlin.pacelize.ide.test.AbstractParcelizeQuickFixTest
import org.jetbrains.kotlin.psi.patternMatching.AbstractPsiUnifierTest
import org.jetbrains.kotlin.search.AbstractAnnotatedMembersSearchTest
import org.jetbrains.kotlin.search.AbstractInheritorsSearchTest
import org.jetbrains.kotlin.idea.fir.shortenRefs.AbstractFirShortenRefsTest
import org.jetbrains.kotlin.shortenRefs.AbstractShortenRefsTest
import org.jetbrains.kotlin.spec.utils.GeneralConfiguration
import org.jetbrains.kotlin.test.TargetBackend
@@ -1067,6 +1090,7 @@ fun main(args: Array<String>) {
model("intentions/addPropertyAccessors", pattern = pattern)
model("intentions/specifyTypeExplicitly", pattern = pattern)
model("intentions/importAllMembers", pattern = pattern)
model("intentions/importMember", pattern = pattern)
}
testClass<AbstractFirShortenRefsTest> {
@@ -0,0 +1,117 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.idea.fir.intentions
import com.intellij.codeInsight.intention.HighPriorityAction
import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.api.applicator.HLApplicatorInput
import org.jetbrains.kotlin.idea.api.applicator.applicator
import org.jetbrains.kotlin.idea.fir.api.AbstractHLIntention
import org.jetbrains.kotlin.idea.fir.api.applicator.HLApplicabilityRange
import org.jetbrains.kotlin.idea.fir.api.applicator.HLApplicatorInputProvider
import org.jetbrains.kotlin.idea.fir.api.applicator.inputProvider
import org.jetbrains.kotlin.idea.fir.applicators.ApplicabilityRanges
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
import org.jetbrains.kotlin.idea.frontend.api.components.ShortenCommand
import org.jetbrains.kotlin.idea.frontend.api.components.ShortenOption
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithKind
import org.jetbrains.kotlin.idea.references.mainReference
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtNameReferenceExpression
import org.jetbrains.kotlin.psi.psiUtil.getQualifiedElement
import org.jetbrains.kotlin.psi.psiUtil.isInImportDirective
class HLImportMemberIntention : AbstractHLIntention<KtNameReferenceExpression, HLImportMemberIntention.Input>(
KtNameReferenceExpression::class, Companion.applicator
), HighPriorityAction {
override val applicabilityRange: HLApplicabilityRange<KtNameReferenceExpression> get() = ApplicabilityRanges.SELF
override val inputProvider: HLApplicatorInputProvider<KtNameReferenceExpression, Input> = inputProvider { psi ->
val symbol = psi.mainReference.resolveToSymbol() ?: return@inputProvider null
computeInput(psi, symbol)
}
private fun KtAnalysisSession.computeInput(psi: KtNameReferenceExpression, symbol: KtSymbol): Input? {
return when (symbol) {
is KtConstructorSymbol,
is KtClassOrObjectSymbol -> {
val classId = if (symbol is KtClassOrObjectSymbol) {
symbol.classIdIfNonLocal
} else {
(symbol as KtConstructorSymbol).containingClassIdIfNonLocal
} ?: return null
val shortenCommand = collectPossibleReferenceShortenings(
psi.containingKtFile,
classShortenOption = {
if (it.classIdIfNonLocal == classId)
ShortenOption.SHORTEN_AND_IMPORT
else
ShortenOption.DO_NOT_SHORTEN
}, callableShortenOption = {
if (it is KtConstructorSymbol && it.containingClassIdIfNonLocal == classId)
ShortenOption.SHORTEN_AND_IMPORT
else
ShortenOption.DO_NOT_SHORTEN
})
if (shortenCommand.isEmpty) return null
Input(classId.asSingleFqName(), shortenCommand)
}
is KtCallableSymbol -> {
val callableId = symbol.callableIdIfNonLocal ?: return null
if (callableId.callableName.isSpecial) return null
if (!canBeImported(symbol)) return null
val shortenCommand = collectPossibleReferenceShortenings(
psi.containingKtFile,
classShortenOption = { ShortenOption.DO_NOT_SHORTEN },
callableShortenOption = {
if (it.callableIdIfNonLocal == callableId)
ShortenOption.SHORTEN_AND_IMPORT
else
ShortenOption.DO_NOT_SHORTEN
}
)
if (shortenCommand.isEmpty) return null
Input(callableId.asSingleFqName(), shortenCommand)
}
else -> return null
}
}
class Input(val fqName: FqName, val shortenCommand: ShortenCommand) : HLApplicatorInput
companion object {
val applicator = applicator<KtNameReferenceExpression, Input> {
familyName(KotlinBundle.lazyMessage("add.import.for.member"))
actionName { _, input -> KotlinBundle.message("add.import.for.0", input.fqName.asString()) }
isApplicableByPsi {
// Ignore simple name expressions or already imported names.
if (it.getQualifiedElement() == it || it.isInImportDirective()) return@isApplicableByPsi false
true
}
applyTo { _, input ->
input.shortenCommand.invokeShortening()
}
}
private fun KtAnalysisSession.canBeImported(symbol: KtCallableSymbol): Boolean {
if (symbol is KtEnumEntrySymbol) return true
if (symbol.origin == KtSymbolOrigin.JAVA) {
return when (symbol) {
is KtFunctionSymbol -> symbol.isStatic
is KtPropertySymbol -> symbol.isStatic
is KtJavaFieldSymbol -> symbol.isStatic
else -> false
}
} else {
if ((symbol as? KtSymbolWithKind)?.symbolKind == KtSymbolKind.TOP_LEVEL) return true
val containingClass = symbol.getContainingSymbol() as? KtClassOrObjectSymbol ?: return true
return containingClass.classKind == KtClassKind.OBJECT || containingClass.classKind == KtClassKind.COMPANION_OBJECT
}
}
}
}
@@ -556,4 +556,127 @@ public class HLIntentionTestGenerated extends AbstractHLIntentionTest {
runTest("idea/testData/intentions/importAllMembers/UnresolvedMember.kt");
}
}
@TestMetadata("idea/testData/intentions/importMember")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class ImportMember extends AbstractHLIntentionTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
public void testAllFilesPresentInImportMember() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/intentions/importMember"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true);
}
@TestMetadata("AlreadyImportedSameNameClass.kt")
public void testAlreadyImportedSameNameClass() throws Exception {
runTest("idea/testData/intentions/importMember/AlreadyImportedSameNameClass.kt");
}
@TestMetadata("AlreadyImportedSameNameClass2.kt")
public void testAlreadyImportedSameNameClass2() throws Exception {
runTest("idea/testData/intentions/importMember/AlreadyImportedSameNameClass2.kt");
}
@TestMetadata("ClassCallChain.kt")
public void testClassCallChain() throws Exception {
runTest("idea/testData/intentions/importMember/ClassCallChain.kt");
}
@TestMetadata("ClassCallChain2.kt")
public void testClassCallChain2() throws Exception {
runTest("idea/testData/intentions/importMember/ClassCallChain2.kt");
}
@TestMetadata("ClassCallChain3.kt")
public void testClassCallChain3() throws Exception {
runTest("idea/testData/intentions/importMember/ClassCallChain3.kt");
}
@TestMetadata("EnumMember.kt")
public void testEnumMember() throws Exception {
runTest("idea/testData/intentions/importMember/EnumMember.kt");
}
@TestMetadata("FqReference.kt")
public void testFqReference() throws Exception {
runTest("idea/testData/intentions/importMember/FqReference.kt");
}
@TestMetadata("FqReferenceCall.kt")
public void testFqReferenceCall() throws Exception {
runTest("idea/testData/intentions/importMember/FqReferenceCall.kt");
}
@TestMetadata("FqReferenceForNestedMember.kt")
public void testFqReferenceForNestedMember() throws Exception {
runTest("idea/testData/intentions/importMember/FqReferenceForNestedMember.kt");
}
@TestMetadata("FqReferenceForNestedMember2.kt")
public void testFqReferenceForNestedMember2() throws Exception {
runTest("idea/testData/intentions/importMember/FqReferenceForNestedMember2.kt");
}
@TestMetadata("FromCompanionObject.kt")
public void testFromCompanionObject() throws Exception {
runTest("idea/testData/intentions/importMember/FromCompanionObject.kt");
}
@TestMetadata("ImportMemberInImport.kt")
public void testImportMemberInImport() throws Exception {
runTest("idea/testData/intentions/importMember/ImportMemberInImport.kt");
}
@TestMetadata("ImportMemberInMiddleOfImport.kt")
public void testImportMemberInMiddleOfImport() throws Exception {
runTest("idea/testData/intentions/importMember/ImportMemberInMiddleOfImport.kt");
}
@TestMetadata("NestedClass1.kt")
public void testNestedClass1() throws Exception {
runTest("idea/testData/intentions/importMember/NestedClass1.kt");
}
@TestMetadata("NestedClass2.kt")
public void testNestedClass2() throws Exception {
runTest("idea/testData/intentions/importMember/NestedClass2.kt");
}
@TestMetadata("NoTarget.kt")
public void testNoTarget() throws Exception {
runTest("idea/testData/intentions/importMember/NoTarget.kt");
}
@TestMetadata("NotApplicablePackage.kt")
public void testNotApplicablePackage() throws Exception {
runTest("idea/testData/intentions/importMember/NotApplicablePackage.kt");
}
@TestMetadata("NotForQualifier.kt")
public void testNotForQualifier() throws Exception {
runTest("idea/testData/intentions/importMember/NotForQualifier.kt");
}
@TestMetadata("ObjectMethod.kt")
public void testObjectMethod() throws Exception {
runTest("idea/testData/intentions/importMember/ObjectMethod.kt");
}
@TestMetadata("StaticJavaField.kt")
public void testStaticJavaField() throws Exception {
runTest("idea/testData/intentions/importMember/StaticJavaField.kt");
}
@TestMetadata("StaticJavaMethod.kt")
public void testStaticJavaMethod() throws Exception {
runTest("idea/testData/intentions/importMember/StaticJavaMethod.kt");
}
@TestMetadata("TopLevelFun.kt")
public void testTopLevelFun() throws Exception {
runTest("idea/testData/intentions/importMember/TopLevelFun.kt");
}
}
}
@@ -38,6 +38,7 @@ abstract class KtFunctionSymbol : KtFunctionLikeSymbol(),
abstract val isInline: Boolean
abstract val isOverride: Boolean
abstract val isInfix: Boolean
abstract val isStatic: Boolean
abstract override fun createPointer(): KtSymbolPointer<KtFunctionSymbol>
}
@@ -71,6 +71,7 @@ abstract class KtJavaFieldSymbol :
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.MEMBER
final override val isExtension: Boolean get() = false
final override val receiverType: KtTypeAndAnnotations? get() = null
abstract val isStatic: Boolean
abstract override fun createPointer(): KtSymbolPointer<KtJavaFieldSymbol>
}
@@ -91,6 +92,7 @@ sealed class KtPropertySymbol : KtVariableSymbol(),
abstract val hasBackingField: Boolean
abstract val isOverride: Boolean
abstract val isStatic: Boolean
abstract val initializer: KtConstantValue?
@@ -69,6 +69,7 @@ internal class KtFirFunctionSymbol(
override val isSuspend: Boolean get() = firRef.withFir { it.isSuspend }
override val isOverride: Boolean get() = firRef.withFir { it.isOverride }
override val isInfix: Boolean get() = firRef.withFir { it.isInfix }
override val isStatic: Boolean get() = firRef.withFir { it.isStatic }
override val dispatchType: KtType? by cached {
firRef.dispatchReceiverTypeAndAnnotations(builder)
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.declarations.FirField
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.isStatic
import org.jetbrains.kotlin.idea.fir.findPsi
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder
@@ -44,6 +45,7 @@ internal class KtFirJavaFieldSymbol(
override val modality: Modality get() = getModality()
override val visibility: Visibility get() = getVisibility()
override val isStatic: Boolean get() = firRef.withFir { it.isStatic }
override fun createPointer(): KtSymbolPointer<KtJavaFieldSymbol> {
TODO("Creating pointers for java fields is not supported yet")
@@ -104,6 +104,7 @@ internal class KtFirKotlinPropertySymbol(
override val isConst: Boolean get() = firRef.withFir { it.isConst }
override val isOverride: Boolean get() = firRef.withFir { it.isOverride }
override val isStatic: Boolean get() = firRef.withFir { it.isStatic }
override val hasGetter: Boolean get() = firRef.withFir { it.getter != null }
override val hasSetter: Boolean get() = firRef.withFir { it.setter != null }
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.isOverride
import org.jetbrains.kotlin.fir.declarations.isStatic
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
import org.jetbrains.kotlin.idea.fir.findPsi
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
@@ -83,6 +84,7 @@ internal class KtFirSyntheticJavaPropertySymbol(
override val javaSetterName: Name? get() = firRef.withFir { it.setter?.delegate?.name }
override val isOverride: Boolean get() = firRef.withFir { it.isOverride }
override val isStatic: Boolean get() = firRef.withFir { it.isStatic }
override val hasSetter: Boolean get() = firRef.withFir { it.setter != null }
@@ -20,6 +20,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: test
@@ -45,6 +46,7 @@ KtFirKotlinPropertySymbol:
isExtension: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: testVal
@@ -17,6 +17,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: and
@@ -39,6 +40,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: compareTo
@@ -61,6 +63,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: compareTo
@@ -83,6 +86,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: compareTo
@@ -105,6 +109,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: compareTo
@@ -127,6 +132,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: compareTo
@@ -149,6 +155,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: compareTo
@@ -171,6 +178,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: dec
@@ -193,6 +201,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: div
@@ -215,6 +224,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: div
@@ -237,6 +247,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: div
@@ -259,6 +270,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: div
@@ -281,6 +293,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: div
@@ -303,6 +316,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: div
@@ -325,6 +339,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: inc
@@ -347,6 +362,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: inv
@@ -369,6 +385,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: minus
@@ -391,6 +408,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: minus
@@ -413,6 +431,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: minus
@@ -435,6 +454,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: minus
@@ -457,6 +477,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: minus
@@ -479,6 +500,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: minus
@@ -501,6 +523,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: or
@@ -523,6 +546,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: plus
@@ -545,6 +569,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: plus
@@ -567,6 +592,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: plus
@@ -589,6 +615,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: plus
@@ -611,6 +638,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: plus
@@ -633,6 +661,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: plus
@@ -655,6 +684,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: rangeTo
@@ -677,6 +707,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: rangeTo
@@ -699,6 +730,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: rangeTo
@@ -721,6 +753,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: rangeTo
@@ -743,6 +776,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: rem
@@ -765,6 +799,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: rem
@@ -787,6 +822,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: rem
@@ -809,6 +845,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: rem
@@ -831,6 +868,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: rem
@@ -853,6 +891,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: rem
@@ -875,6 +914,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: shl
@@ -897,6 +937,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: shr
@@ -919,6 +960,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: times
@@ -941,6 +983,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: times
@@ -963,6 +1006,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: times
@@ -985,6 +1029,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: times
@@ -1007,6 +1052,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: times
@@ -1029,6 +1075,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: times
@@ -1051,6 +1098,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toByte
@@ -1073,6 +1121,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toChar
@@ -1095,6 +1144,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toDouble
@@ -1117,6 +1167,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toFloat
@@ -1139,6 +1190,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toInt
@@ -1161,6 +1213,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toLong
@@ -1183,6 +1236,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toShort
@@ -1205,6 +1259,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: unaryMinus
@@ -1227,6 +1282,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: unaryPlus
@@ -1249,6 +1305,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: ushr
@@ -1271,6 +1328,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: xor
@@ -1293,6 +1351,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: equals
@@ -1315,6 +1374,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: hashCode
@@ -1337,6 +1397,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toString
@@ -14,6 +14,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: add
@@ -36,6 +37,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: add
@@ -58,6 +60,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: addAll
@@ -80,6 +83,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: addAll
@@ -102,6 +106,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: clear
@@ -124,6 +129,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: listIterator
@@ -146,6 +152,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: listIterator
@@ -168,6 +175,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: remove
@@ -190,6 +198,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: removeAll
@@ -212,6 +221,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: removeAt
@@ -234,6 +244,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: retainAll
@@ -256,6 +267,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: set
@@ -278,6 +290,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: subList
@@ -300,6 +313,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: contains
@@ -322,6 +336,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: containsAll
@@ -344,6 +359,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: get
@@ -366,6 +382,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: indexOf
@@ -388,6 +405,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: isEmpty
@@ -410,6 +428,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: iterator
@@ -432,6 +451,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: lastIndexOf
@@ -457,6 +477,7 @@ KtFirKotlinPropertySymbol:
isExtension: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: ABSTRACT
name: size
@@ -478,6 +499,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: equals
@@ -500,6 +522,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: hashCode
@@ -522,6 +545,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toString
@@ -8,6 +8,7 @@ KtFirJavaFieldSymbol:
annotatedType: [] ft<kotlin/CharArray, kotlin/CharArray?>
callableIdIfNonLocal: java/lang/String.value
isExtension: false
isStatic: false
isVal: true
modality: FINAL
name: value
@@ -20,6 +21,7 @@ KtFirJavaFieldSymbol:
annotatedType: [] kotlin/Int
callableIdIfNonLocal: java/lang/String.hash
isExtension: false
isStatic: false
isVal: false
modality: OPEN
name: hash
@@ -40,6 +42,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: hash32
@@ -54,6 +57,7 @@ KtFirJavaFieldSymbol:
annotatedType: [] kotlin/Int
callableIdIfNonLocal: java/lang/String.hash32
isExtension: false
isStatic: false
isVal: false
modality: OPEN
name: hash32
@@ -75,6 +79,7 @@ KtFirSyntheticJavaPropertySymbol:
initializer: null
isExtension: false
isOverride: false
isStatic: false
isVal: true
javaGetterName: length
javaSetterName: null
@@ -98,6 +103,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: isEmpty
@@ -120,6 +126,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: charAt
@@ -142,6 +149,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: codePointAt
@@ -164,6 +172,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: codePointBefore
@@ -186,6 +195,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: codePointCount
@@ -208,6 +218,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: offsetByCodePoints
@@ -230,6 +241,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: getChars
@@ -252,6 +264,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: getChars
@@ -274,6 +287,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: getBytes
@@ -296,6 +310,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: getBytes
@@ -318,6 +333,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: getBytes
@@ -340,6 +356,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: getBytes
@@ -362,6 +379,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: equals
@@ -384,6 +402,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: contentEquals
@@ -406,6 +425,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: contentEquals
@@ -428,6 +448,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: equalsIgnoreCase
@@ -450,6 +471,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: compareTo
@@ -472,6 +494,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: compareToIgnoreCase
@@ -494,6 +517,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: regionMatches
@@ -516,6 +540,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: regionMatches
@@ -538,6 +563,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: startsWith
@@ -560,6 +586,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: startsWith
@@ -582,6 +609,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: endsWith
@@ -604,6 +632,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: hashCode
@@ -626,6 +655,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: indexOf
@@ -648,6 +678,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: indexOf
@@ -670,6 +701,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: indexOf
@@ -692,6 +724,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: indexOf
@@ -714,6 +747,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: indexOfSupplementary
@@ -736,6 +770,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: lastIndexOf
@@ -758,6 +793,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: lastIndexOf
@@ -780,6 +816,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: lastIndexOf
@@ -802,6 +839,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: lastIndexOf
@@ -824,6 +862,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: lastIndexOfSupplementary
@@ -846,6 +885,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: substring
@@ -868,6 +908,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: substring
@@ -890,6 +931,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: subSequence
@@ -912,6 +954,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: concat
@@ -934,6 +977,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: replace
@@ -956,6 +1000,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: replace
@@ -978,6 +1023,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: matches
@@ -1000,6 +1046,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: contains
@@ -1022,6 +1069,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: replaceFirst
@@ -1044,6 +1092,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: replaceAll
@@ -1066,6 +1115,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: split
@@ -1088,6 +1138,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: split
@@ -1110,6 +1161,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toLowerCase
@@ -1132,6 +1184,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toLowerCase
@@ -1154,6 +1207,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toUpperCase
@@ -1176,6 +1230,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toUpperCase
@@ -1198,6 +1253,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: trim
@@ -1220,6 +1276,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toString
@@ -1242,6 +1299,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toCharArray
@@ -1264,6 +1322,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: intern
@@ -1286,6 +1345,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: get
@@ -16,6 +16,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: invoke
@@ -38,6 +39,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: equals
@@ -60,6 +62,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: hashCode
@@ -82,6 +85,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toString
@@ -16,6 +16,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: listOf
@@ -38,6 +39,7 @@ KtFirFunctionSymbol:
isInline: true
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: listOf
@@ -60,6 +62,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: listOf
@@ -14,6 +14,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: get
@@ -14,6 +14,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: listIterator
@@ -36,6 +37,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: ABSTRACT
name: listIterator
@@ -83,6 +83,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: x
@@ -21,6 +21,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: true
isStatic: false
isSuspend: false
modality: FINAL
name: run
@@ -46,6 +47,7 @@ KtFirKotlinPropertySymbol:
isExtension: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: data
@@ -80,6 +82,7 @@ KtFirKotlinPropertySymbol:
isExtension: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: anonymousObject
@@ -20,6 +20,7 @@ KtFirKotlinPropertySymbol:
isExtension: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: a
@@ -41,6 +42,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: x
@@ -14,6 +14,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: foo
@@ -27,6 +27,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: foo
@@ -34,6 +34,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: foo
@@ -14,6 +14,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: foo
@@ -29,6 +29,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: aaa
@@ -70,6 +71,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: yyy
@@ -17,6 +17,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: x
@@ -39,6 +40,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: y
@@ -20,6 +20,7 @@ KtFirKotlinPropertySymbol:
isExtension: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: x
@@ -61,6 +62,7 @@ KtFirKotlinPropertySymbol:
isExtension: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: y
@@ -168,6 +168,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: foo
@@ -15,6 +15,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: x
@@ -37,6 +38,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: y
@@ -18,6 +18,7 @@ KtFirKotlinPropertySymbol:
isExtension: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: x
@@ -59,6 +60,7 @@ KtFirKotlinPropertySymbol:
isExtension: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: y
@@ -136,6 +136,7 @@ KtFirFunctionSymbol:
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: f
@@ -161,6 +162,7 @@ KtFirKotlinPropertySymbol:
isExtension: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: x
@@ -0,0 +1,7 @@
import javax.swing.SwingUtilities
<spot>import javax.swing.SwingUtilities.invokeLater</spot>
fun foo() {
<spot>invokeLater</spot> { }
<spot>invokeLater</spot>()
}
@@ -0,0 +1,6 @@
import javax.swing.SwingUtilities
fun foo() {
<spot>SwingUtilities.invokeLater</spot> { }
<spot>SwingUtilities.invokeLater</spot>()
}
@@ -0,0 +1,6 @@
<html>
<body>
This intention converts qualified references to a Java static member, object member or enum class member
into simple references and adds an <b>import</b> directive for that symbol.
</body>
</html>
@@ -24,5 +24,11 @@
<className>org.jetbrains.kotlin.idea.fir.intentions.HLImportAllMembersIntention</className>
<category>Kotlin</category>
</intentionAction>
<intentionAction>
<className>org.jetbrains.kotlin.idea.fir.intentions.HLImportMemberIntention</className>
<category>Kotlin</category>
</intentionAction>
</extensions>
</idea-plugin>
+1
View File
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.fir.intentions.HLImportMemberIntention
@@ -1,3 +1,4 @@
// IGNORE_FIR
// INTENTION_TEXT: "Add import for 'pack.name.Fixtures'"
package pack.name
@@ -1,3 +1,4 @@
// IGNORE_FIR
// INTENTION_TEXT: "Add import for 'pack.name.Fixtures'"
package pack.name
@@ -1,3 +1,4 @@
// IGNORE_FIR
// INTENTION_TEXT: "Add import for 'pack.name.Fixtures.Register'"
package pack.name
@@ -1,3 +1,4 @@
// IGNORE_FIR
// INTENTION_TEXT: "Add import for 'pack.name.Fixtures.Register'"
package pack.name