diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/ClassDescriptorFromJvmBytecode.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/ClassDescriptorFromJvmBytecode.java index cb2b23a1477..5175b35a1ba 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/ClassDescriptorFromJvmBytecode.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/ClassDescriptorFromJvmBytecode.java @@ -36,7 +36,8 @@ public class ClassDescriptorFromJvmBytecode extends MutableClassDescriptorLite { @NotNull private final JavaDescriptorResolver javaDescriptorResolver; - private ResolverClassData resolverBinaryClassData = null; + @NotNull + private final ResolverClassData resolverBinaryClassData; // lazy @@ -44,24 +45,21 @@ public class ClassDescriptorFromJvmBytecode extends MutableClassDescriptorLite { public ClassDescriptorFromJvmBytecode( @NotNull DeclarationDescriptor containingDeclaration, @NotNull ClassKind kind, - @NotNull JavaDescriptorResolver javaDescriptorResolver + @NotNull JavaDescriptorResolver javaDescriptorResolver, + @NotNull ResolverClassData data ) { super(containingDeclaration, kind); this.javaDescriptorResolver = javaDescriptorResolver; + resolverBinaryClassData = data; } @NotNull @Override public Collection getConstructors() { if (constructors == null) { - assert resolverBinaryClassData != null; this.constructors = javaDescriptorResolver.resolveConstructors(resolverBinaryClassData, this); } return constructors; } - - public void setClassData(@NotNull ResolverClassData resolverBinaryClassData) { - this.resolverBinaryClassData = resolverBinaryClassData; - } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassObjectResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassObjectResolver.java index b928d484c3d..ec855c918e0 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassObjectResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassObjectResolver.java @@ -110,10 +110,9 @@ public final class JavaClassObjectResolver { String qualifiedName = classObjectPsiClass.getQualifiedName(); assert qualifiedName != null; FqName fqName = new FqName(qualifiedName); - ClassDescriptorFromJvmBytecode classObjectDescriptor - = new ClassDescriptorFromJvmBytecode(containing, ClassKind.CLASS_OBJECT, javaDescriptorResolver); ResolverClassData classObjectData = ResolverClassData.createBinaryClassData(classObjectPsiClass, fqName); - classObjectDescriptor.setClassData(classObjectData); + ClassDescriptorFromJvmBytecode classObjectDescriptor + = new ClassDescriptorFromJvmBytecode(containing, ClassKind.CLASS_OBJECT, javaDescriptorResolver, classObjectData); classObjectDescriptor.setSupertypes(supertypesResolver.getSupertypes(classObjectDescriptor, new PsiClassWrapper(classObjectPsiClass), classObjectData, Collections.emptyList() )); @@ -151,10 +150,9 @@ public final class JavaClassObjectResolver { ) { FqNameUnsafe fqName = DescriptorResolverUtils.getFqNameForClassObject(psiClass); - ClassDescriptorFromJvmBytecode classObjectDescriptor = new ClassDescriptorFromJvmBytecode( - containing, ClassKind.CLASS_OBJECT, javaDescriptorResolver); ResolverClassData classData = ResolverClassData.createBinaryClassData(psiClass, null); - classObjectDescriptor.setClassData(classData); + ClassDescriptorFromJvmBytecode classObjectDescriptor = new ClassDescriptorFromJvmBytecode( + containing, ClassKind.CLASS_OBJECT, javaDescriptorResolver, classData); ResolverClassData data = ResolverClassData.createSyntheticClassObjectClassData(psiClass); setUpClassObjectDescriptor(classObjectDescriptor, containing, fqName, data, getClassObjectName(containing.getName().getName())); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java index cc055f75b00..b13e1006807 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java @@ -224,10 +224,9 @@ public final class JavaClassResolver { ) { JetClassAnnotation jetClassAnnotation = JetClassAnnotation.get(psiClass); ClassKind kind = getClassKind(psiClass, jetClassAnnotation); - ClassDescriptorFromJvmBytecode classDescriptor - = new ClassDescriptorFromJvmBytecode(containingDeclaration, kind, javaDescriptorResolver); ResolverClassData classData = ResolverClassData.createBinaryClassData(psiClass, fqName); - classDescriptor.setClassData(classData); + ClassDescriptorFromJvmBytecode classDescriptor + = new ClassDescriptorFromJvmBytecode(containingDeclaration, kind, javaDescriptorResolver, classData); cache(javaClassToKotlinFqName(fqName), classDescriptor); classDescriptor.setName(Name.identifier(psiClass.getName()));