From 3260e41111585a834f113cbcae1faecaaf20b046 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Wed, 8 Jan 2020 15:16:37 +0100 Subject: [PATCH] Improve investigation info in PackageCodegenImpl Relates to #EA-218779 --- .../kotlin/codegen/PackageCodegenImpl.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegenImpl.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegenImpl.java index d117b158301..4f63e424beb 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegenImpl.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegenImpl.java @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.codegen; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.SmartList; @@ -37,6 +38,7 @@ import org.jetbrains.kotlin.resolve.BindingContext; import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker; import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKt; import org.jetbrains.kotlin.resolve.lazy.descriptors.PackageDescriptorUtilKt; +import org.jetbrains.kotlin.utils.KotlinExceptionWithAttachments; import org.jetbrains.org.objectweb.asm.Type; import java.util.ArrayList; @@ -44,6 +46,8 @@ import java.util.Collection; import java.util.List; public class PackageCodegenImpl implements PackageCodegen { + private static final Logger LOG = Logger.getInstance(PackageCodegenImpl.class); + private final GenerationState state; private final Collection files; private final PackageFragmentDescriptor packageFragment; @@ -147,10 +151,13 @@ public class PackageCodegenImpl implements PackageCodegen { for (KtFile file : files) { PackageFragmentDescriptor fragment = PackageDescriptorUtilKt.findPackageFragmentForFile(state.getModule(), file); - assert fragment != null : "package fragment is null for " + file + "\n" + file.getText(); - - assert expectedPackageFqName.equals(fragment.getFqName()) : - "expected package fq name: " + expectedPackageFqName + ", actual: " + fragment.getFqName(); + if (fragment == null) { + LOG.error(new KotlinExceptionWithAttachments( + "package fragment is not found for module:" + state.getModule() + " file:" + file) + .withAttachment("file.kt", file.getText())); + } else if (!expectedPackageFqName.equals(fragment.getFqName())) { + LOG.error("expected package fq name: " + expectedPackageFqName + ", actual: " + fragment.getFqName()); + } if (!fragments.contains(fragment)) { fragments.add(fragment);