Psi2ir: add file name to exception when generating synthetic declarations
This commit is contained in:
+14
@@ -5,16 +5,30 @@
|
||||
|
||||
package org.jetbrains.kotlin.psi2ir.generators
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.BackendException
|
||||
import org.jetbrains.kotlin.backend.common.CodegenUtil
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.PsiIrFileEntry
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||
import org.jetbrains.kotlin.ir.util.withScope
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
|
||||
class IrSyntheticDeclarationGenerator(context: GeneratorContext) : IrElementVisitorVoid {
|
||||
fun generateSyntheticDeclarations(file: IrFile) {
|
||||
try {
|
||||
file.acceptChildrenVoid(this)
|
||||
} catch (e: BackendException) {
|
||||
throw e
|
||||
} catch (e: Throwable) {
|
||||
val psiFile = (file.fileEntry as? PsiIrFileEntry)?.psiFile
|
||||
CodegenUtil.reportBackendException(e, "psi2ir", psiFile?.virtualFile?.path ?: psiFile?.name ?: file.fileEntry.name)
|
||||
}
|
||||
}
|
||||
|
||||
private val descriptorGenerator = SyntheticDeclarationsGenerator(context)
|
||||
private val symbolTable = context.symbolTable
|
||||
|
||||
@@ -89,7 +89,7 @@ class ModuleGenerator(
|
||||
referenceExpectsForUsedActuals(expectDescriptorToSymbol, context.symbolTable, irFile)
|
||||
}
|
||||
|
||||
irFile.acceptChildrenVoid(IrSyntheticDeclarationGenerator(context))
|
||||
IrSyntheticDeclarationGenerator(context).generateSyntheticDeclarations(irFile)
|
||||
|
||||
insertImplicitCasts(irFile, context)
|
||||
context.callToSubstitutedDescriptorMap.clear()
|
||||
|
||||
Reference in New Issue
Block a user