diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java b/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java index 84e21d32698..5fbb91f4388 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java @@ -101,16 +101,17 @@ public abstract class CodegenContext { return thisDescriptor != null; } - public DeclarationDescriptor getClassOrPackageDescriptor() { + @NotNull + public ClassOrPackageFragmentDescriptor getClassOrPackageDescriptor() { CodegenContext c = this; while (true) { assert c != null; DeclarationDescriptor contextDescriptor = c.getContextDescriptor(); - if (!(contextDescriptor instanceof ClassDescriptor) && !(contextDescriptor instanceof PackageFragmentDescriptor)) { - c = c.getParentContext(); + if (contextDescriptor instanceof ClassOrPackageFragmentDescriptor) { + return (ClassOrPackageFragmentDescriptor) contextDescriptor; } else { - return contextDescriptor; + c = c.getParentContext(); } } }