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");
|
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")
|
@TestMetadata("localVariablesAndFunctions.kt")
|
||||||
public void testLocalVariablesAndFunctions() throws Exception {
|
public void testLocalVariablesAndFunctions() throws Exception {
|
||||||
runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/localVariablesAndFunctions.kt");
|
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");
|
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")
|
@TestMetadata("localVariablesAndFunctions.kt")
|
||||||
public void testLocalVariablesAndFunctions() throws Exception {
|
public void testLocalVariablesAndFunctions() throws Exception {
|
||||||
runTest("idea/idea-completion/testData/basic/common/primitiveCompletion/localVariablesAndFunctions.kt");
|
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.patterns.PlatformPatterns
|
||||||
import com.intellij.util.ProcessingContext
|
import com.intellij.util.ProcessingContext
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
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.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
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.typeContext
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.coneTypeUnsafe
|
import org.jetbrains.kotlin.fir.types.coneTypeUnsafe
|
||||||
@@ -87,8 +89,8 @@ private object KotlinFirCompletionProvider : CompletionProvider<CompletionParame
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (symbol in symbols) {
|
for (symbol in symbols) {
|
||||||
|
if (symbol is FirConstructorSymbol) continue
|
||||||
val symbolName = symbol.callableId.callableName
|
val symbolName = symbol.callableId.callableName
|
||||||
if (symbolName.isConstructor) continue
|
|
||||||
|
|
||||||
result.addElement(LookupElementBuilder.create(symbolName.toString()))
|
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 FirCallableSymbol<*>.isExtension get() = fir.receiverTypeRef != null
|
||||||
|
|
||||||
private val Name.isConstructor get() = this == Name.special("<init>")
|
|
||||||
|
|
||||||
private fun FirScope.collectCallableSymbols(): MutableList<FirCallableSymbol<*>> {
|
private fun FirScope.collectCallableSymbols(): MutableList<FirCallableSymbol<*>> {
|
||||||
val allCallableSymbols = mutableListOf<FirCallableSymbol<*>>()
|
val allCallableSymbols = mutableListOf<FirCallableSymbol<*>>()
|
||||||
fun symbolsCollector(symbol: FirCallableSymbol<*>) {
|
fun symbolsCollector(symbol: FirCallableSymbol<*>) {
|
||||||
|
|||||||
Reference in New Issue
Block a user