Completion for codeFragments: no duplicates for synthetic properties
This commit is contained in:
+13
@@ -0,0 +1,13 @@
|
|||||||
|
import java.io.File
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
val f: File = MyFile()
|
||||||
|
<caret>f.absoluteFile
|
||||||
|
}
|
||||||
|
|
||||||
|
class MyFile: File("")
|
||||||
|
|
||||||
|
// EXIST: absoluteFile, getAbsoluteFile
|
||||||
|
// NOTHING_ELSE
|
||||||
|
|
||||||
|
// RUNTIME_TYPE: MyFile
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
f.absoluteF<caret>
|
||||||
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.resolve.BindingContext
|
|||||||
import org.jetbrains.kotlin.resolve.OverridingUtil
|
import org.jetbrains.kotlin.resolve.OverridingUtil
|
||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
|
import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
|
||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
||||||
|
import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor
|
||||||
import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils
|
import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils
|
||||||
|
|
||||||
fun DeclarationDescriptorWithVisibility.isVisible(
|
fun DeclarationDescriptorWithVisibility.isVisible(
|
||||||
@@ -77,6 +78,10 @@ private fun compareDescriptorsText(project: Project, d1: DeclarationDescriptor?,
|
|||||||
public fun compareDescriptors(project: Project, currentDescriptor: DeclarationDescriptor?, originalDescriptor: DeclarationDescriptor?): Boolean {
|
public fun compareDescriptors(project: Project, currentDescriptor: DeclarationDescriptor?, originalDescriptor: DeclarationDescriptor?): Boolean {
|
||||||
if (currentDescriptor?.name != originalDescriptor?.name) return false
|
if (currentDescriptor?.name != originalDescriptor?.name) return false
|
||||||
|
|
||||||
|
if (originalDescriptor is SyntheticJavaPropertyDescriptor && currentDescriptor is SyntheticJavaPropertyDescriptor) {
|
||||||
|
return compareDescriptors(project, currentDescriptor.getMethod, originalDescriptor.getMethod)
|
||||||
|
}
|
||||||
|
|
||||||
if (compareDescriptorsText(project, currentDescriptor, originalDescriptor)) return true
|
if (compareDescriptorsText(project, currentDescriptor, originalDescriptor)) return true
|
||||||
|
|
||||||
if (originalDescriptor is CallableDescriptor && currentDescriptor is CallableDescriptor) {
|
if (originalDescriptor is CallableDescriptor && currentDescriptor is CallableDescriptor) {
|
||||||
|
|||||||
+6
@@ -77,6 +77,12 @@ public class CodeFragmentCompletionTestGenerated extends AbstractCodeFragmentCom
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noDuplicatesForSyntheticProperties.kt")
|
||||||
|
public void testNoDuplicatesForSyntheticProperties() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/codeFragments/noDuplicatesForSyntheticProperties.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("topLevel.kt")
|
@TestMetadata("topLevel.kt")
|
||||||
public void testTopLevel() throws Exception {
|
public void testTopLevel() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/codeFragments/topLevel.kt");
|
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/codeFragments/topLevel.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user