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.scopes.receivers.ExpressionReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
||||
import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor
|
||||
import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils
|
||||
|
||||
fun DeclarationDescriptorWithVisibility.isVisible(
|
||||
@@ -77,6 +78,10 @@ private fun compareDescriptorsText(project: Project, d1: DeclarationDescriptor?,
|
||||
public fun compareDescriptors(project: Project, currentDescriptor: DeclarationDescriptor?, originalDescriptor: DeclarationDescriptor?): Boolean {
|
||||
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 (originalDescriptor is CallableDescriptor && currentDescriptor is CallableDescriptor) {
|
||||
|
||||
+6
@@ -77,6 +77,12 @@ public class CodeFragmentCompletionTestGenerated extends AbstractCodeFragmentCom
|
||||
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")
|
||||
public void testTopLevel() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/codeFragments/topLevel.kt");
|
||||
|
||||
Reference in New Issue
Block a user