diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/SamConversionToAnonymousObjectIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/SamConversionToAnonymousObjectIntention.kt index bc58b150dc7..c0edec37075 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/SamConversionToAnonymousObjectIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/SamConversionToAnonymousObjectIntention.kt @@ -15,11 +15,10 @@ import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall import org.jetbrains.kotlin.idea.core.replaced -import org.jetbrains.kotlin.idea.search.usagesSearch.descriptor import org.jetbrains.kotlin.lexer.KtTokens -import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor import org.jetbrains.kotlin.load.java.sam.JavaSingleAbstractMethodUtils import org.jetbrains.kotlin.psi.KtCallExpression +import org.jetbrains.kotlin.psi.KtFunctionLiteral import org.jetbrains.kotlin.psi.KtLambdaExpression import org.jetbrains.kotlin.psi.KtPsiFactory import org.jetbrains.kotlin.psi.psiUtil.anyDescendantOfType @@ -39,13 +38,12 @@ class SamConversionToAnonymousObjectIntention : SelfTargetingRangeIntention { call -> @@ -65,18 +63,22 @@ class SamConversionToAnonymousObjectIntention : SelfTargetingRangeIntentionKotlinFace {}) +} \ No newline at end of file diff --git a/idea/testData/intentions/samConversionToAnonymousObject/funInterface.kt.after b/idea/testData/intentions/samConversionToAnonymousObject/funInterface.kt.after new file mode 100644 index 00000000000..5a3d2792d3f --- /dev/null +++ b/idea/testData/intentions/samConversionToAnonymousObject/funInterface.kt.after @@ -0,0 +1,13 @@ +fun interface KotlinFace { + fun single() +} + +fun useSam(kf: KotlinFace) {} + +fun callSam() { + useSam(kf = object : KotlinFace { + override fun single() { + + } + }) +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index a90fb138786..12c2e785836 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -14790,6 +14790,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/intentions/samConversionToAnonymousObject"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true); } + @TestMetadata("funInterface.kt") + public void testFunInterface() throws Exception { + runTest("idea/testData/intentions/samConversionToAnonymousObject/funInterface.kt"); + } + @TestMetadata("labeledReturn.kt") public void testLabeledReturn() throws Exception { runTest("idea/testData/intentions/samConversionToAnonymousObject/labeledReturn.kt");