[FIR IR] add more strict type for explicit receiver

^KT-54417
This commit is contained in:
Dmitrii Gridin
2022-11-02 14:36:26 +01:00
committed by Space Team
parent 3cd85a4622
commit d6fbcef85a
2 changed files with 3 additions and 2 deletions
@@ -574,7 +574,7 @@ internal fun IrDeclarationParent.declareThisReceiverParameter(
startOffset: Int = this.startOffset,
endOffset: Int = this.endOffset,
name: Name = SpecialNames.THIS,
explicitReceiver: FirAnnotationContainer? = null,
explicitReceiver: FirReceiverParameter? = null,
): IrValueParameter {
return symbolTable.irFactory.createValueParameter(
startOffset, endOffset, thisOrigin, IrValueParameterSymbolImpl(),
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirReceiverParameter
import org.jetbrains.kotlin.fir.declarations.hasAnnotation
import org.jetbrains.kotlin.fir.declarations.utils.*
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
@@ -98,7 +99,7 @@ abstract class AbstractFir2IrLazyFunction<F : FirCallableDeclaration>(
(fir as? FirPropertyAccessor)?.propertySymbol?.fir?.hasAnnotation(JVM_STATIC_CLASS_ID) == true
}
protected fun createThisReceiverParameter(thisType: IrType, explicitReceiver: FirAnnotationContainer? = null): IrValueParameter {
protected fun createThisReceiverParameter(thisType: IrType, explicitReceiver: FirReceiverParameter? = null): IrValueParameter {
declarationStorage.enterScope(this)
return declareThisReceiverParameter(thisType, origin, explicitReceiver = explicitReceiver).apply {
declarationStorage.leaveScope(this@AbstractFir2IrLazyFunction)