diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirReferenceShortener.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirReferenceShortener.kt index f14be1f04e3..8e7b450d7b8 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirReferenceShortener.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirReferenceShortener.kt @@ -102,6 +102,7 @@ internal class KtFirReferenceShortener( //TODO: collect all usages of available symbols in the file and prevent importing symbols that could introduce name clashes, which // may alter the meaning of existing code. val collector = ElementsToShortenCollector( + shortenOptions, context, towerContext, selection, @@ -404,6 +405,7 @@ private class ShortenKDocQualifier( ) : ElementToShorten() private class ElementsToShortenCollector( + private val shortenOptions: ShortenOptions, private val shorteningContext: FirShorteningContext, private val towerContextProvider: FirTowerContextProvider, private val selection: TextRange, @@ -1138,11 +1140,13 @@ private class ElementsToShortenCollector( } private fun canBePossibleToDropReceiver(qualifiedAccess: FirQualifiedAccessExpression): Boolean { - // we can remove receiver only if it is a qualifier - if (qualifiedAccess.explicitReceiver !is FirResolvedQualifier) return false + return when { + qualifiedAccess.explicitReceiver is FirThisReceiverExpression -> shortenOptions.removeThis - // if there is no extension receiver necessary, then it can be removed - return qualifiedAccess.extensionReceiver == null + qualifiedAccess.explicitReceiver is FirResolvedQualifier -> qualifiedAccess.extensionReceiver == null + + else -> false + } } private fun findUnambiguousReferencedCallableId(namedReference: FirNamedReference): FirCallableSymbol<*>? { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisScriptSourceModuleReferenceShortenerTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisScriptSourceModuleReferenceShortenerTestGenerated.java index ff23be4666d..a2b62c5ab26 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisScriptSourceModuleReferenceShortenerTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisScriptSourceModuleReferenceShortenerTestGenerated.java @@ -72,6 +72,16 @@ public class FirIdeNormalAnalysisScriptSourceModuleReferenceShortenerTestGenerat } } + @Nested + @TestMetadata("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference") + @TestDataPath("$PROJECT_ROOT") + public class ThisReference { + @Test + public void testAllFilesPresentInThisReference() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference"), Pattern.compile("^(.+)\\.kts$"), null, true); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/typeParameters") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceShortenerTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceShortenerTestGenerated.java index cd51f691621..9b09e017aaa 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceShortenerTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceShortenerTestGenerated.java @@ -816,6 +816,94 @@ public class FirIdeNormalAnalysisSourceModuleReferenceShortenerTestGenerated ext } } + @Nested + @TestMetadata("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference") + @TestDataPath("$PROJECT_ROOT") + public class ThisReference { + @Test + public void testAllFilesPresentInThisReference() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("this_extensionFunction_fromExtensionFunction.kt") + public void testThis_extensionFunction_fromExtensionFunction() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction.kt"); + } + + @Test + @TestMetadata("this_extensionFunction_fromExtensionFunction_conflictWithLocal.kt") + public void testThis_extensionFunction_fromExtensionFunction_conflictWithLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction_conflictWithLocal.kt"); + } + + @Test + @TestMetadata("this_memberFunction_fromMemberFunction.kt") + public void testThis_memberFunction_fromMemberFunction() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction.kt"); + } + + @Test + @TestMetadata("this_memberFunction_fromMemberFunction_conflictWithLocal.kt") + public void testThis_memberFunction_fromMemberFunction_conflictWithLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction_conflictWithLocal.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromInit.kt") + public void testThis_memberProperty_fromInit() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromInit_conflictWithParameter.kt") + public void testThis_memberProperty_fromInit_conflictWithParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit_conflictWithParameter.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromMemberFunction.kt") + public void testThis_memberProperty_fromMemberFunction() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromMemberFunctionWithContextReceiver.kt") + public void testThis_memberProperty_fromMemberFunctionWithContextReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunctionWithContextReceiver.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromMemberFunction_conflictWithLocal.kt") + public void testThis_memberProperty_fromMemberFunction_conflictWithLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithLocal.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromMemberFunction_conflictWithParameter.kt") + public void testThis_memberProperty_fromMemberFunction_conflictWithParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithParameter.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromMemberFunction_noConflictWithLocal.kt") + public void testThis_memberProperty_fromMemberFunction_noConflictWithLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_noConflictWithLocal.kt"); + } + + @Test + @TestMetadata("this_nullableReceiver.kt") + public void testThis_nullableReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_nullableReceiver.kt"); + } + + @Test + @TestMetadata("this_safeCall.kt") + public void testThis_safeCall() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_safeCall.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/typeParameters") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/references/AbstractReferenceShortenerTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/references/AbstractReferenceShortenerTest.kt index 81c30296360..beeb240fa44 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/references/AbstractReferenceShortenerTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/references/AbstractReferenceShortenerTest.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.references +import org.jetbrains.kotlin.analysis.api.components.ShortenOptions import org.jetbrains.kotlin.analysis.api.components.ShortenStrategy import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.references.ShorteningResultsRenderer.renderShorteningResults import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedSingleModuleTest @@ -30,6 +31,7 @@ abstract class AbstractReferenceShortenerTest : AbstractAnalysisApiBasedSingleMo ShortenStrategy.values().map { option -> val shorteningsForOption = collectPossibleReferenceShorteningsInElement( element, + shortenOptions = ShortenOptions.ALL_ENABLED, classShortenStrategy = { option }, callableShortenStrategy = { option } ) diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceShortenerTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceShortenerTestGenerated.java index 142e614a7c2..627ae598b4a 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceShortenerTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceShortenerTestGenerated.java @@ -816,6 +816,94 @@ public class FirStandaloneNormalAnalysisSourceModuleReferenceShortenerTestGenera } } + @Nested + @TestMetadata("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference") + @TestDataPath("$PROJECT_ROOT") + public class ThisReference { + @Test + public void testAllFilesPresentInThisReference() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("this_extensionFunction_fromExtensionFunction.kt") + public void testThis_extensionFunction_fromExtensionFunction() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction.kt"); + } + + @Test + @TestMetadata("this_extensionFunction_fromExtensionFunction_conflictWithLocal.kt") + public void testThis_extensionFunction_fromExtensionFunction_conflictWithLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction_conflictWithLocal.kt"); + } + + @Test + @TestMetadata("this_memberFunction_fromMemberFunction.kt") + public void testThis_memberFunction_fromMemberFunction() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction.kt"); + } + + @Test + @TestMetadata("this_memberFunction_fromMemberFunction_conflictWithLocal.kt") + public void testThis_memberFunction_fromMemberFunction_conflictWithLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction_conflictWithLocal.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromInit.kt") + public void testThis_memberProperty_fromInit() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromInit_conflictWithParameter.kt") + public void testThis_memberProperty_fromInit_conflictWithParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit_conflictWithParameter.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromMemberFunction.kt") + public void testThis_memberProperty_fromMemberFunction() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromMemberFunctionWithContextReceiver.kt") + public void testThis_memberProperty_fromMemberFunctionWithContextReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunctionWithContextReceiver.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromMemberFunction_conflictWithLocal.kt") + public void testThis_memberProperty_fromMemberFunction_conflictWithLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithLocal.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromMemberFunction_conflictWithParameter.kt") + public void testThis_memberProperty_fromMemberFunction_conflictWithParameter() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithParameter.kt"); + } + + @Test + @TestMetadata("this_memberProperty_fromMemberFunction_noConflictWithLocal.kt") + public void testThis_memberProperty_fromMemberFunction_noConflictWithLocal() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_noConflictWithLocal.kt"); + } + + @Test + @TestMetadata("this_nullableReceiver.kt") + public void testThis_nullableReceiver() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_nullableReceiver.kt"); + } + + @Test + @TestMetadata("this_safeCall.kt") + public void testThis_safeCall() throws Exception { + runTest("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_safeCall.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/components/referenceShortener/referenceShortener/typeParameters") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction.kt new file mode 100644 index 00000000000..fa3d4c89a78 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction.kt @@ -0,0 +1,9 @@ +package test + +class Foo + +fun Foo.one() {} + +fun Foo.usage() { + this.one() +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction.txt new file mode 100644 index 00000000000..6f432647ff5 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction.txt @@ -0,0 +1,8 @@ +Before shortening: this.one() +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +[qualifier] this.one() +with SHORTEN_AND_IMPORT: +[qualifier] this.one() +with SHORTEN_AND_STAR_IMPORT: +[qualifier] this.one() diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction_conflictWithLocal.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction_conflictWithLocal.kt new file mode 100644 index 00000000000..a3bfec5e456 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction_conflictWithLocal.kt @@ -0,0 +1,11 @@ +package test + +class Foo + +fun Foo.one() {} + +fun Foo.usage() { + fun one() {} + + this.one() +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction_conflictWithLocal.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction_conflictWithLocal.txt new file mode 100644 index 00000000000..70bd352fbb8 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_extensionFunction_fromExtensionFunction_conflictWithLocal.txt @@ -0,0 +1,5 @@ +Before shortening: this.one() +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +with SHORTEN_AND_IMPORT: +with SHORTEN_AND_STAR_IMPORT: diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction.kt new file mode 100644 index 00000000000..f7bcbd6c95b --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction.kt @@ -0,0 +1,9 @@ +package test + +class Foo { + fun one() {} + + fun usage() { + this.one() + } +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction.txt new file mode 100644 index 00000000000..6f432647ff5 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction.txt @@ -0,0 +1,8 @@ +Before shortening: this.one() +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +[qualifier] this.one() +with SHORTEN_AND_IMPORT: +[qualifier] this.one() +with SHORTEN_AND_STAR_IMPORT: +[qualifier] this.one() diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction_conflictWithLocal.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction_conflictWithLocal.kt new file mode 100644 index 00000000000..37643364069 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction_conflictWithLocal.kt @@ -0,0 +1,11 @@ +package test + +class Foo { + fun one() {} + + fun usage() { + fun one() {} + + this.one() + } +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction_conflictWithLocal.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction_conflictWithLocal.txt new file mode 100644 index 00000000000..70bd352fbb8 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberFunction_fromMemberFunction_conflictWithLocal.txt @@ -0,0 +1,5 @@ +Before shortening: this.one() +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +with SHORTEN_AND_IMPORT: +with SHORTEN_AND_STAR_IMPORT: diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit.kt new file mode 100644 index 00000000000..0d6031f795c --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit.kt @@ -0,0 +1,9 @@ +package test + +class Foo { + val one: Int + + init { + this.one = 10 + } +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit.txt new file mode 100644 index 00000000000..b234471393f --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit.txt @@ -0,0 +1,8 @@ +Before shortening: this.one +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +[qualifier] this.one +with SHORTEN_AND_IMPORT: +[qualifier] this.one +with SHORTEN_AND_STAR_IMPORT: +[qualifier] this.one diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit_conflictWithParameter.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit_conflictWithParameter.kt new file mode 100644 index 00000000000..308e3bfca0c --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit_conflictWithParameter.kt @@ -0,0 +1,9 @@ +package test + +class Foo(one: Int) { + val one: Int + + init { + this.one = one + } +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit_conflictWithParameter.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit_conflictWithParameter.txt new file mode 100644 index 00000000000..1299a1d7d1a --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromInit_conflictWithParameter.txt @@ -0,0 +1,5 @@ +Before shortening: this.one +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +with SHORTEN_AND_IMPORT: +with SHORTEN_AND_STAR_IMPORT: diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction.kt new file mode 100644 index 00000000000..9db3547ca7f --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction.kt @@ -0,0 +1,9 @@ +package test + +class Foo { + val one: Int = 10 + + fun usage() { + this.one + } +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction.txt new file mode 100644 index 00000000000..b234471393f --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction.txt @@ -0,0 +1,8 @@ +Before shortening: this.one +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +[qualifier] this.one +with SHORTEN_AND_IMPORT: +[qualifier] this.one +with SHORTEN_AND_STAR_IMPORT: +[qualifier] this.one diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunctionWithContextReceiver.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunctionWithContextReceiver.kt new file mode 100644 index 00000000000..8f775107043 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunctionWithContextReceiver.kt @@ -0,0 +1,14 @@ +package test + +class Foo { + val one: Int = 10 + + context(Context) + fun usage() { + this.one + } +} + +class Context { + val one: Int = 20 +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunctionWithContextReceiver.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunctionWithContextReceiver.txt new file mode 100644 index 00000000000..b234471393f --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunctionWithContextReceiver.txt @@ -0,0 +1,8 @@ +Before shortening: this.one +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +[qualifier] this.one +with SHORTEN_AND_IMPORT: +[qualifier] this.one +with SHORTEN_AND_STAR_IMPORT: +[qualifier] this.one diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithLocal.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithLocal.kt new file mode 100644 index 00000000000..2cc29f32f85 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithLocal.kt @@ -0,0 +1,11 @@ +package test + +class Foo { + val one: Int = 10 + + fun usage() { + val one = 20 + + this.one + } +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithLocal.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithLocal.txt new file mode 100644 index 00000000000..1299a1d7d1a --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithLocal.txt @@ -0,0 +1,5 @@ +Before shortening: this.one +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +with SHORTEN_AND_IMPORT: +with SHORTEN_AND_STAR_IMPORT: diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithParameter.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithParameter.kt new file mode 100644 index 00000000000..80e61492fcc --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithParameter.kt @@ -0,0 +1,9 @@ +package test + +class Foo { + val one: Int = 10 + + fun usage(one: Int) { + this.one + } +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithParameter.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithParameter.txt new file mode 100644 index 00000000000..1299a1d7d1a --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_conflictWithParameter.txt @@ -0,0 +1,5 @@ +Before shortening: this.one +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +with SHORTEN_AND_IMPORT: +with SHORTEN_AND_STAR_IMPORT: diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_noConflictWithLocal.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_noConflictWithLocal.kt new file mode 100644 index 00000000000..d1e37839d0b --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_noConflictWithLocal.kt @@ -0,0 +1,11 @@ +package test + +class Foo { + val one: Int = 10 + + fun usage() { + this.one + + val one = 20 + } +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_noConflictWithLocal.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_noConflictWithLocal.txt new file mode 100644 index 00000000000..b234471393f --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_memberProperty_fromMemberFunction_noConflictWithLocal.txt @@ -0,0 +1,8 @@ +Before shortening: this.one +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +[qualifier] this.one +with SHORTEN_AND_IMPORT: +[qualifier] this.one +with SHORTEN_AND_STAR_IMPORT: +[qualifier] this.one diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_nullableReceiver.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_nullableReceiver.kt new file mode 100644 index 00000000000..c7838341263 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_nullableReceiver.kt @@ -0,0 +1,9 @@ +package test + +class Foo + +fun Foo?.one() {} + +fun Foo?.usage() { + this.one() +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_nullableReceiver.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_nullableReceiver.txt new file mode 100644 index 00000000000..6f432647ff5 --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_nullableReceiver.txt @@ -0,0 +1,8 @@ +Before shortening: this.one() +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +[qualifier] this.one() +with SHORTEN_AND_IMPORT: +[qualifier] this.one() +with SHORTEN_AND_STAR_IMPORT: +[qualifier] this.one() diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_safeCall.kt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_safeCall.kt new file mode 100644 index 00000000000..53068cfea6c --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_safeCall.kt @@ -0,0 +1,9 @@ +package test + +class Foo + +fun Foo.one() {} + +fun Foo?.usage() { + this?.one() +} diff --git a/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_safeCall.txt b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_safeCall.txt new file mode 100644 index 00000000000..43cf983b23b --- /dev/null +++ b/analysis/analysis-api/testData/components/referenceShortener/referenceShortener/thisReference/this_safeCall.txt @@ -0,0 +1,5 @@ +Before shortening: this?.one() +with DO_NOT_SHORTEN: +with SHORTEN_IF_ALREADY_IMPORTED: +with SHORTEN_AND_IMPORT: +with SHORTEN_AND_STAR_IMPORT: