JVM_IR: specify facadeClassGenerator properly in Psi2IrTranslator

This commit is contained in:
Georgy Bronnikov
2019-07-05 14:59:01 +03:00
committed by Alexander Udalov
parent 1d3b1ed0cb
commit 0423d0f41e
2 changed files with 18 additions and 3 deletions
@@ -382,7 +382,15 @@ open class WrappedSimpleFunctionDescriptor(
var originalDescriptor: FunctionDescriptor? = null
override fun getOverriddenDescriptors() = owner.overriddenSymbols.map { it.descriptor }
override fun getContainingDeclaration() = (owner.parent as IrSymbolOwner).symbol.descriptor
override fun getContainingDeclaration(): DeclarationDescriptor {
val parent = owner.parent
return if (parent is IrClass && parent.origin == IrDeclarationOrigin.FILE_CLASS && parent.parent is IrExternalPackageFragment) {
return (parent.parent as IrExternalPackageFragment).packageFragmentDescriptor
} else {
(parent as IrSymbolOwner).symbol.descriptor
}
}
override fun getModality() = owner.modality
override fun getName() = owner.name
override fun getVisibility() = owner.visibility
@@ -833,7 +841,14 @@ open class WrappedPropertyDescriptor(
override fun isConst() = owner.isConst
override fun getContainingDeclaration() = (owner.parent as IrSymbolOwner).symbol.descriptor
override fun getContainingDeclaration(): DeclarationDescriptor {
val parent = owner.parent
return if (parent is IrClass && parent.origin == IrDeclarationOrigin.FILE_CLASS && parent.parent is IrExternalPackageFragment) {
return (parent.parent as IrExternalPackageFragment).packageFragmentDescriptor
} else {
(parent as IrSymbolOwner).symbol.descriptor
}
}
override fun isLateInit() = owner.isLateinit
@@ -77,7 +77,7 @@ class Psi2IrTranslator(
val irModule = moduleGenerator.generateModuleFragmentWithoutDependencies(ktFiles)
// This is required for implicit casts insertion on IrTypes (work-in-progress).
moduleGenerator.generateUnboundSymbolsAsDependencies(irModule, deserializer)
moduleGenerator.generateUnboundSymbolsAsDependencies(irModule, deserializer, facadeClassGenerator)
irModule.patchDeclarationParents()
postprocess(context, irModule)