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:
Mikhail Glukhikh
2019-10-04 15:39:51 +03:00
parent aad9cbbf01
commit 26e8202771
10 changed files with 27 additions and 3 deletions
@@ -229,7 +229,8 @@ class JavaSymbolProvider(
val firJavaConstructor = FirJavaConstructor(
this@JavaSymbolProvider.session, psi,
constructorSymbol, visibility, isPrimary,
FirResolvedTypeRefImpl(
isInner = !javaClass.isStatic,
delegatedSelfTypeRef = FirResolvedTypeRefImpl(
null,
firSymbol.constructType(
classTypeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) }.toTypedArray(),
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirConstructorImpl.Companion.N
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.references.FirEmptyControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -29,6 +28,7 @@ class FirJavaConstructor(
override val symbol: FirConstructorSymbol,
visibility: Visibility,
override val isPrimary: Boolean,
override val isInner: Boolean,
delegatedSelfTypeRef: FirTypeRef
) : FirAbstractCallableMember<FirConstructor>(
session,
@@ -190,6 +190,7 @@ class JavaClassEnhancementScope(
firMethod.visibility,
isExpect = false,
isActual = false,
isInner = firMethod.isInner,
delegatedSelfTypeRef = newReturnTypeRef,
delegatedConstructor = null
)