FIR: Update fir hierarchy, decouple member declaration from callable
This commit is contained in:
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.java
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMember
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.java.declarations.*
|
||||
@@ -49,13 +49,13 @@ class JavaSymbolProvider(
|
||||
is FirConstructor -> {
|
||||
CallableId(callableId.packageName, callableId.className, firClass.name)
|
||||
}
|
||||
is FirCallableMember -> {
|
||||
is FirCallableMemberDeclaration -> {
|
||||
CallableId(callableId.packageName, callableId.className, declaration.name)
|
||||
}
|
||||
else -> null
|
||||
}
|
||||
if (declarationId == callableId) {
|
||||
val symbol = (declaration as FirCallableMember).symbol as ConeCallableSymbol
|
||||
val symbol = (declaration as FirCallableMemberDeclaration).symbol as ConeCallableSymbol
|
||||
callableSymbols += symbol
|
||||
}
|
||||
}
|
||||
|
||||
+16
-3
@@ -19,13 +19,26 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
|
||||
class FirJavaConstructor(
|
||||
session: FirSession,
|
||||
symbol: FirFunctionSymbol,
|
||||
override val symbol: FirFunctionSymbol,
|
||||
visibility: Visibility,
|
||||
delegatedSelfTypeRef: FirTypeRef
|
||||
) : FirAbstractCallableMember(
|
||||
session, psi = null, symbol = symbol, name = NAME, visibility = visibility, modality = Modality.FINAL,
|
||||
isExpect = false, isActual = false, isOverride = false, receiverTypeRef = null, returnTypeRef = delegatedSelfTypeRef
|
||||
session,
|
||||
psi = null,
|
||||
name = NAME,
|
||||
visibility = visibility,
|
||||
modality = Modality.FINAL,
|
||||
isExpect = false,
|
||||
isActual = false,
|
||||
isOverride = false,
|
||||
receiverTypeRef = null,
|
||||
returnTypeRef = delegatedSelfTypeRef
|
||||
), FirConstructor {
|
||||
|
||||
init {
|
||||
symbol.bind(this)
|
||||
}
|
||||
|
||||
override val delegatedConstructor: FirDelegatedConstructorCall?
|
||||
get() = null
|
||||
|
||||
|
||||
@@ -12,12 +12,12 @@ import org.jetbrains.kotlin.fir.declarations.FirField
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirAbstractCallableMember
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.java.types.FirJavaTypeRef
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
class FirJavaField(
|
||||
session: FirSession,
|
||||
symbol: FirFieldSymbol,
|
||||
override val symbol: FirPropertySymbol,
|
||||
name: Name,
|
||||
visibility: Visibility,
|
||||
modality: Modality?,
|
||||
@@ -25,11 +25,15 @@ class FirJavaField(
|
||||
override val isVar: Boolean,
|
||||
isStatic: Boolean
|
||||
) : FirAbstractCallableMember(
|
||||
session, psi = null, symbol = symbol, name = name,
|
||||
session, psi = null, name = name,
|
||||
visibility = visibility, modality = modality,
|
||||
isExpect = false, isActual = false, isOverride = false,
|
||||
receiverTypeRef = null, returnTypeRef = returnTypeRef
|
||||
), FirField {
|
||||
init {
|
||||
symbol.bind(this)
|
||||
}
|
||||
|
||||
override val delegate: FirExpression?
|
||||
get() = null
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ private fun JavaClassifierType.enhanceInflexibleType(
|
||||
globalArgIndex++
|
||||
arg.toConeProjection(
|
||||
session,
|
||||
((originalSymbol as? FirBasedSymbol<*>)?.fir as? FirCallableMember)?.typeParameters?.getOrNull(localArgIndex)
|
||||
((originalSymbol as? FirBasedSymbol<*>)?.fir as? FirCallableMemberDeclaration)?.typeParameters?.getOrNull(localArgIndex)
|
||||
)
|
||||
} else {
|
||||
val argEnhancedTypeRef = arg.enhancePossiblyFlexible(session, annotations, qualifiers, globalArgIndex)
|
||||
|
||||
Reference in New Issue
Block a user