FIR: add 'isInner' parameter to constructors
This is helpful because inner class constructors are resolved in a bit different way (like non-static vs static)
This commit is contained in:
@@ -17,6 +17,8 @@ interface FirConstructor : @VisitedSupertype FirMemberFunction<FirConstructor> {
|
||||
|
||||
override val isOverride: Boolean get() = status.isOverride
|
||||
|
||||
val isInner: Boolean
|
||||
|
||||
val delegatedConstructor: FirDelegatedConstructorCall?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
|
||||
@@ -30,6 +30,12 @@ open class FirConstructorImpl : FirAbstractCallableMember<FirConstructor>, FirCo
|
||||
|
||||
final override var delegatedConstructor: FirDelegatedConstructorCall? = null
|
||||
|
||||
final override var isInner: Boolean
|
||||
get() = status.isInner
|
||||
set(isInner) {
|
||||
status.isInner = isInner
|
||||
}
|
||||
|
||||
constructor(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
@@ -37,6 +43,7 @@ open class FirConstructorImpl : FirAbstractCallableMember<FirConstructor>, FirCo
|
||||
visibility: Visibility,
|
||||
isExpect: Boolean,
|
||||
isActual: Boolean,
|
||||
isInner: Boolean,
|
||||
delegatedSelfTypeRef: FirTypeRef,
|
||||
delegatedConstructor: FirDelegatedConstructorCall?
|
||||
) : super(
|
||||
@@ -44,6 +51,7 @@ open class FirConstructorImpl : FirAbstractCallableMember<FirConstructor>, FirCo
|
||||
isExpect, isActual, isOverride = false, receiverTypeRef = null, returnTypeRef = delegatedSelfTypeRef
|
||||
) {
|
||||
this.symbol = symbol
|
||||
this.isInner = isInner
|
||||
this.delegatedConstructor = delegatedConstructor
|
||||
symbol.bind(this)
|
||||
}
|
||||
|
||||
+2
-1
@@ -19,9 +19,10 @@ class FirPrimaryConstructorImpl(
|
||||
visibility: Visibility,
|
||||
isExpect: Boolean,
|
||||
isActual: Boolean,
|
||||
isInner: Boolean,
|
||||
delegatedSelfTypeRef: FirTypeRef,
|
||||
delegatedConstructor: FirDelegatedConstructorCall?
|
||||
) : FirConstructorImpl(session, psi, symbol, visibility, isExpect, isActual, delegatedSelfTypeRef, delegatedConstructor) {
|
||||
) : FirConstructorImpl(session, psi, symbol, visibility, isExpect, isActual, isInner, delegatedSelfTypeRef, delegatedConstructor) {
|
||||
override val isPrimary: Boolean
|
||||
get() = true
|
||||
}
|
||||
Reference in New Issue
Block a user