Do not stop recursive visitor with return

#KT-23627 Fixed
This commit is contained in:
Alexander Podkhalyuzin
2018-07-06 16:31:52 +03:00
parent 2d4cbc712d
commit 04fd4ef9de
5 changed files with 28 additions and 1 deletions
@@ -0,0 +1,7 @@
fun foo() = "".run {
this.apply {
printl<caret>
}
}
//ELEMENT: println
//TAIL_TEXT: "() (kotlin.io)"
@@ -0,0 +1,7 @@
fun foo() = "".run {
this.apply {
println()<caret>
}
}
//ELEMENT: println
//TAIL_TEXT: "() (kotlin.io)"
@@ -114,6 +114,12 @@ public class BasicCompletionHandlerTestGenerated extends AbstractBasicCompletion
runTest("idea/idea-completion/testData/handlers/basic/KT14130.kt");
}
@TestMetadata("KT23627.kt")
public void testKT23627() throws Exception {
runTest("idea/idea-completion/testData/handlers/basic/KT23627.kt");
}
@TestMetadata("NestedTypeArg.kt")
public void testNestedTypeArg() throws Exception {
runTest("idea/idea-completion/testData/handlers/basic/NestedTypeArg.kt");
@@ -430,7 +430,12 @@ class ShortenReferences(val options: (KtElement) -> Options = { Options.DEFAULT
override val collectElementsVisitor = object : MyVisitor(elementFilter) {
override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) {
if (expression.receiverExpression is KtThisExpression && !options.removeThis) return
if (expression.receiverExpression is KtThisExpression && !options.removeThis) {
val filterResult = elementFilter(expression)
if (filterResult == FilterResult.SKIP) return
expression.selectorExpression?.acceptChildren(this)
return
}
super.visitDotQualifiedExpression(expression)
}
}
@@ -31,6 +31,8 @@ import org.jetbrains.kotlin.idea.caches.project.ScriptModuleSearchScope
import org.jetbrains.kotlin.load.java.AbstractJavaClassFinder
import org.jetbrains.kotlin.resolve.jvm.KotlinSafeClassFinder
class KotlinScriptDependenciesClassFinder(project: Project,
private val scriptDependenciesManager: ScriptDependenciesManager
) : NonClasspathClassFinder(project), KotlinSafeClassFinder {