Use more correct check for the constructor symbol
- add test for extension function receiver
This commit is contained in:
committed by
Ilya Kirillov
parent
a3da1ea1a0
commit
e7f5594ffe
+14
@@ -0,0 +1,14 @@
|
||||
class A {
|
||||
fun aaa() {}
|
||||
val aa = 10
|
||||
}
|
||||
|
||||
fun A.aaaExt() {}
|
||||
|
||||
fun A.test() {
|
||||
<caret>
|
||||
}
|
||||
|
||||
// EXIST: aaa
|
||||
// EXIST: aa
|
||||
// EXIST: aaaExt
|
||||
+5
@@ -2277,6 +2277,11 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes
|
||||
runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/implicitReceiverCompletion.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("implicitReceiverFromExtensionMethod.kt")
|
||||
public void testImplicitReceiverFromExtensionMethod() throws Exception {
|
||||
runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/implicitReceiverFromExtensionMethod.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("localVariablesAndFunctions.kt")
|
||||
public void testLocalVariablesAndFunctions() throws Exception {
|
||||
runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/localVariablesAndFunctions.kt");
|
||||
|
||||
+5
@@ -2277,6 +2277,11 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
|
||||
runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/implicitReceiverCompletion.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("implicitReceiverFromExtensionMethod.kt")
|
||||
public void testImplicitReceiverFromExtensionMethod() throws Exception {
|
||||
runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/implicitReceiverFromExtensionMethod.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("localVariablesAndFunctions.kt")
|
||||
public void testLocalVariablesAndFunctions() throws Exception {
|
||||
runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/localVariablesAndFunctions.kt");
|
||||
|
||||
+3
-3
@@ -10,11 +10,13 @@ import com.intellij.codeInsight.lookup.LookupElementBuilder
|
||||
import com.intellij.patterns.PlatformPatterns
|
||||
import com.intellij.util.ProcessingContext
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.scope
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
|
||||
import org.jetbrains.kotlin.fir.typeContext
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeUnsafe
|
||||
@@ -87,8 +89,8 @@ private object KotlinFirCompletionProvider : CompletionProvider<CompletionParame
|
||||
}
|
||||
|
||||
for (symbol in symbols) {
|
||||
if (symbol is FirConstructorSymbol) continue
|
||||
val symbolName = symbol.callableId.callableName
|
||||
if (symbolName.isConstructor) continue
|
||||
|
||||
result.addElement(LookupElementBuilder.create(symbolName.toString()))
|
||||
}
|
||||
@@ -98,8 +100,6 @@ private object KotlinFirCompletionProvider : CompletionProvider<CompletionParame
|
||||
|
||||
private val FirCallableSymbol<*>.isExtension get() = fir.receiverTypeRef != null
|
||||
|
||||
private val Name.isConstructor get() = this == Name.special("<init>")
|
||||
|
||||
private fun FirScope.collectCallableSymbols(): MutableList<FirCallableSymbol<*>> {
|
||||
val allCallableSymbols = mutableListOf<FirCallableSymbol<*>>()
|
||||
fun symbolsCollector(symbol: FirCallableSymbol<*>) {
|
||||
|
||||
Reference in New Issue
Block a user