Repair after merge

This commit is contained in:
Georgy Bronnikov
2018-11-02 15:52:22 +03:00
parent a695e21e44
commit 5dd9cfca4d
5 changed files with 6 additions and 24 deletions
@@ -447,7 +447,7 @@ private fun buildFunctionDeclaration(irFunction: IrFunction, origin: IrDeclarati
IrSimpleFunctionSymbolImpl(descriptor),
name,
irFunction.visibility,
Modality.FINAL,
if (irFunction.modality === Modality.ABSTRACT) Modality.OPEN else irFunction.modality,
irFunction.returnType,
irFunction.isInline,
false,
@@ -89,7 +89,7 @@ open class ClassCodegen protected constructor(
signature.superclassName,
signature.interfaces.toTypedArray()
)
AnnotationCodegen.forClass(visitor.visitor, this, typeMapper).genAnnotations(descriptor, null)
AnnotationCodegen.forClass(visitor.visitor, this, context.state).genAnnotations(descriptor, null)
/* TODO: Temporary workaround: ClassBuilder needs a pathless name. */
val shortName = File(fileEntry.name).name
visitor.visitSource(shortName, null)
@@ -306,9 +306,7 @@ class BridgeLowering(val context: JvmBackendContext) : ClassLoweringPass {
when (typeSafeBarrierDescription) {
BuiltinMethodsWithSpecialGenericSignature.TypeSafeBarrierDescription.MAP_GET_OR_DEFAULT -> irGet(
bridgeDescriptor.valueParameters[1].type.toIrType()!!,
IrVariableSymbolImpl(
bridgeDescriptor.valueParameters[1]
)
bridgeFunction.valueParameters[1].symbol
)
BuiltinMethodsWithSpecialGenericSignature.TypeSafeBarrierDescription.NULL -> irNull()
BuiltinMethodsWithSpecialGenericSignature.TypeSafeBarrierDescription.INDEX -> IrConstImpl.int(
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.backend.jvm.lower
import org.jetbrains.kotlin.backend.common.ClassLoweringPass
import org.jetbrains.kotlin.backend.common.makePhase
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
import org.jetbrains.kotlin.backend.common.ir.copyParameterDeclarationsFrom
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
@@ -98,6 +97,7 @@ class InterfaceDelegationLowering(val context: JvmBackendContext) : IrElementTra
name,
Visibilities.PUBLIC,
inheritedFun.modality,
inheritedFun.returnType,
isInline = inheritedFun.isInline,
isExternal = false,
isTailrec = false,
@@ -105,7 +105,6 @@ class InterfaceDelegationLowering(val context: JvmBackendContext) : IrElementTra
).apply {
descriptor.bind(this)
parent = inheritedFun.parent
returnType = inheritedFun.returnType
overriddenSymbols.addAll(inheritedFun.overriddenSymbols)
copyParameterDeclarationsFrom(inheritedFun)
}
@@ -137,16 +136,4 @@ class InterfaceDelegationLowering(val context: JvmBackendContext) : IrElementTra
private fun IrSimpleFunction.isDefinitelyNotDefaultImplsMethod() =
resolveFakeOverride()?.let { origin == IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB } == true ||
hasAnnotation(PLATFORM_DEPENDENT_ANNOTATION_FQ_NAME)
private fun IrClass.getNonPrivateInterfaceMethods(): List<Pair<IrSimpleFunction, IrSimpleFunction>> {
return declarations.filterIsInstance<IrSimpleFunction>().mapNotNull { function ->
val resolved = function.resolveFakeOverride()
resolved?.takeIf {
resolved !== function && // TODO: take a better look
(resolved.parent as? IrClass)?.isInterface == true &&
!Visibilities.isPrivate(resolved.visibility) &&
resolved.visibility != Visibilities.INVISIBLE_FAKE
}?.let { Pair(resolved, function) }
}
}
}
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.backend.common.ir.copyTo
import org.jetbrains.kotlin.backend.common.ir.copyTypeParametersFrom
import org.jetbrains.kotlin.backend.common.lower.DECLARATION_ORIGIN_FUNCTION_FOR_DEFAULT_PARAMETER
import org.jetbrains.kotlin.backend.common.lower.InitializersLowering.Companion.clinitName
import org.jetbrains.kotlin.backend.common.makePhase
import org.jetbrains.kotlin.backend.common.lower.VariableRemapper
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
import org.jetbrains.kotlin.descriptors.*
@@ -37,9 +36,7 @@ class InterfaceLowering(val context: JvmBackendContext) : IrElementTransformerVo
val members = defaultImplsIrClass.declarations
irClass.declarations.filterIsInstance<IrFunction>().forEach {
if (it.origin == DECLARATION_ORIGIN_FUNCTION_FOR_DEFAULT_PARAMETER) {
members.add(it) //just copy $default to DefaultImpls
} else if (it is IrSimpleFunction && it.modality != Modality.ABSTRACT && it.origin != IrDeclarationOrigin.FAKE_OVERRIDE) {
if (it is IrSimpleFunction && it.modality != Modality.ABSTRACT && it.origin != IrDeclarationOrigin.FAKE_OVERRIDE) {
val element = context.declarationFactory.getDefaultImplsFunction(it)
members.add(element)
element.body = it.body
@@ -79,11 +76,11 @@ internal fun createStaticFunctionWithReceivers(
name,
oldFunction.visibility,
Modality.FINAL,
oldFunction.returnType,
isInline = false, isExternal = false, isTailrec = false, isSuspend = false
).apply {
descriptor.bind(this)
parent = irParent
returnType = oldFunction.returnType
copyTypeParametersFrom(oldFunction)