FIR: Get rid of FirCallableSymbol::isFakeOverride and isIntersectionOverride
This commit is contained in:
@@ -6,10 +6,12 @@
|
||||
package org.jetbrains.kotlin.idea.fir
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSymbolOwner
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||
import org.jetbrains.kotlin.fir.isIntersectionOverride
|
||||
import org.jetbrains.kotlin.fir.isSubstitutionOverride
|
||||
import org.jetbrains.kotlin.fir.references.FirReference
|
||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
@@ -50,6 +52,6 @@ internal inline fun <reified D> D.unrollFakeOverrides(): D where D : FirDeclarat
|
||||
|
||||
private inline val FirBasedSymbol<*>.isFakeOrIntersectionOverride: Boolean
|
||||
get() {
|
||||
val origin = (fir as? FirDeclaration)?.origin ?: return false
|
||||
return origin == FirDeclarationOrigin.SubstitutionOverride || origin == FirDeclarationOrigin.IntersectionOverride
|
||||
val declaration = fir as? FirCallableDeclaration<*> ?: return false
|
||||
return declaration.isSubstitutionOverride || declaration.isIntersectionOverride
|
||||
}
|
||||
|
||||
+4
-3
@@ -5,7 +5,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.frontend.api.fir.scopes
|
||||
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||
import org.jetbrains.kotlin.fir.isSubstitutionOverride
|
||||
import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
import org.jetbrains.kotlin.fir.scopes.processClassifiersByName
|
||||
@@ -65,7 +66,7 @@ internal fun FirScope.getCallableSymbols(callableNames: Collection<Name>, builde
|
||||
}
|
||||
processPropertiesByName(name) { firSymbol ->
|
||||
val symbol = when {
|
||||
firSymbol is FirPropertySymbol && firSymbol.isFakeOverride -> {
|
||||
firSymbol is FirPropertySymbol && firSymbol.fir.isSubstitutionOverride -> {
|
||||
builder.buildVariableSymbol(firSymbol.fir)
|
||||
}
|
||||
else -> builder.buildCallableSymbol(firSymbol.fir)
|
||||
@@ -85,4 +86,4 @@ internal fun FirScope.getClassifierSymbols(classLikeNames: Collection<Name>, bui
|
||||
}
|
||||
yieldAll(classifierSymbols)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user