Rename: AnnotationDeserializer, ConstantDeserializer -> *Loader

This commit is contained in:
Pavel V. Talanov
2014-06-17 16:04:11 +04:00
parent 2673510e8b
commit f8e5fa1b2f
18 changed files with 110 additions and 127 deletions
@@ -53,7 +53,7 @@ import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames;
import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.java.JvmClassName;
import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature; import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature;
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaPackageFragmentScope; import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaPackageFragmentScope;
import org.jetbrains.jet.lang.resolve.kotlin.BaseDescriptorDeserializer; import org.jetbrains.jet.lang.resolve.kotlin.BaseDescriptorLoader;
import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.org.objectweb.asm.AnnotationVisitor; import org.jetbrains.org.objectweb.asm.AnnotationVisitor;
@@ -370,7 +370,7 @@ public class PackageCodegen {
@NotNull @NotNull
public static String getPackagePartInternalName(@NotNull DeserializedCallableMemberDescriptor callable) { public static String getPackagePartInternalName(@NotNull DeserializedCallableMemberDescriptor callable) {
FqName packageFqName = ((PackageFragmentDescriptor) callable.getContainingDeclaration()).getFqName(); FqName packageFqName = ((PackageFragmentDescriptor) callable.getContainingDeclaration()).getFqName();
FqName packagePartFqName = packageFqName.child(BaseDescriptorDeserializer.getPackagePartClassName(callable)); FqName packagePartFqName = packageFqName.child(BaseDescriptorLoader.getPackagePartClassName(callable));
return JvmClassName.byFqNameWithoutInnerClasses(packagePartFqName).getInternalName(); return JvmClassName.byFqNameWithoutInnerClasses(packagePartFqName).getInternalName();
} }
} }
@@ -36,9 +36,9 @@ import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver; import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava; import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava;
import org.jetbrains.jet.lang.resolve.kotlin.JavaDescriptorFinder; import org.jetbrains.jet.lang.resolve.kotlin.JavaDescriptorFinder;
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer; import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorLoader;
import org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage; import org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage;
import org.jetbrains.jet.lang.resolve.kotlin.ConstantDescriptorDeserializer; import org.jetbrains.jet.lang.resolve.kotlin.ConstantDescriptorLoader;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.annotation.PreDestroy; import javax.annotation.PreDestroy;
@@ -66,9 +66,9 @@ public class InjectorForJavaDescriptorResolver {
private final DeserializedDescriptorResolver deserializedDescriptorResolver; private final DeserializedDescriptorResolver deserializedDescriptorResolver;
private final DeserializationGlobalContextForJava deserializationGlobalContextForJava; private final DeserializationGlobalContextForJava deserializationGlobalContextForJava;
private final JavaDescriptorFinder javaDescriptorFinder; private final JavaDescriptorFinder javaDescriptorFinder;
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer; private final AnnotationDescriptorLoader annotationDescriptorLoader;
private final DescriptorDeserializersStorage descriptorDeserializersStorage; private final DescriptorDeserializersStorage descriptorDeserializersStorage;
private final ConstantDescriptorDeserializer constantDescriptorDeserializer; private final ConstantDescriptorLoader constantDescriptorLoader;
public InjectorForJavaDescriptorResolver( public InjectorForJavaDescriptorResolver(
@NotNull Project project, @NotNull Project project,
@@ -93,9 +93,9 @@ public class InjectorForJavaDescriptorResolver {
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModule()); this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModule());
this.memberFilter = org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter.ALWAYS_TRUE; this.memberFilter = org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter.ALWAYS_TRUE;
this.javaDescriptorFinder = new JavaDescriptorFinder(getJavaDescriptorResolver(), lazyJavaPackageFragmentProvider); this.javaDescriptorFinder = new JavaDescriptorFinder(getJavaDescriptorResolver(), lazyJavaPackageFragmentProvider);
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(); this.annotationDescriptorLoader = new AnnotationDescriptorLoader();
this.constantDescriptorDeserializer = new ConstantDescriptorDeserializer(); this.constantDescriptorLoader = new ConstantDescriptorLoader();
this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(lockBasedStorageManager, javaDescriptorFinder, annotationDescriptorDeserializer, constantDescriptorDeserializer, lazyJavaPackageFragmentProvider, memberFilter); this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(lockBasedStorageManager, javaDescriptorFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider, memberFilter);
this.descriptorDeserializersStorage = new DescriptorDeserializersStorage(lockBasedStorageManager); this.descriptorDeserializersStorage = new DescriptorDeserializersStorage(lockBasedStorageManager);
this.javaClassFinder.setProject(project); this.javaClassFinder.setProject(project);
@@ -114,18 +114,18 @@ public class InjectorForJavaDescriptorResolver {
deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava); deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava);
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter); deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorDeserializer.setClassResolver(javaDescriptorResolver); annotationDescriptorLoader.setClassResolver(javaDescriptorResolver);
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter); annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder); annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
annotationDescriptorDeserializer.setStorage(descriptorDeserializersStorage); annotationDescriptorLoader.setStorage(descriptorDeserializersStorage);
descriptorDeserializersStorage.setClassResolver(javaDescriptorResolver); descriptorDeserializersStorage.setClassResolver(javaDescriptorResolver);
descriptorDeserializersStorage.setErrorReporter(traceBasedErrorReporter); descriptorDeserializersStorage.setErrorReporter(traceBasedErrorReporter);
constantDescriptorDeserializer.setClassResolver(javaDescriptorResolver); constantDescriptorLoader.setClassResolver(javaDescriptorResolver);
constantDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter); constantDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
constantDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder); constantDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
constantDescriptorDeserializer.setStorage(descriptorDeserializersStorage); constantDescriptorLoader.setStorage(descriptorDeserializersStorage);
javaClassFinder.initialize(); javaClassFinder.initialize();
@@ -58,9 +58,9 @@ import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver; import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava; import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava;
import org.jetbrains.jet.lang.resolve.kotlin.JavaDescriptorFinder; import org.jetbrains.jet.lang.resolve.kotlin.JavaDescriptorFinder;
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer; import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorLoader;
import org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage; import org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage;
import org.jetbrains.jet.lang.resolve.kotlin.ConstantDescriptorDeserializer; import org.jetbrains.jet.lang.resolve.kotlin.ConstantDescriptorLoader;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.annotation.PreDestroy; import javax.annotation.PreDestroy;
@@ -110,9 +110,9 @@ public class InjectorForLazyResolveWithJava {
private final DeserializedDescriptorResolver deserializedDescriptorResolver; private final DeserializedDescriptorResolver deserializedDescriptorResolver;
private final DeserializationGlobalContextForJava deserializationGlobalContextForJava; private final DeserializationGlobalContextForJava deserializationGlobalContextForJava;
private final JavaDescriptorFinder javaDescriptorFinder; private final JavaDescriptorFinder javaDescriptorFinder;
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer; private final AnnotationDescriptorLoader annotationDescriptorLoader;
private final DescriptorDeserializersStorage descriptorDeserializersStorage; private final DescriptorDeserializersStorage descriptorDeserializersStorage;
private final ConstantDescriptorDeserializer constantDescriptorDeserializer; private final ConstantDescriptorLoader constantDescriptorLoader;
public InjectorForLazyResolveWithJava( public InjectorForLazyResolveWithJava(
@NotNull Project project, @NotNull Project project,
@@ -161,9 +161,9 @@ public class InjectorForLazyResolveWithJava {
this.scopeProvider = new ScopeProvider(getResolveSession()); this.scopeProvider = new ScopeProvider(getResolveSession());
this.scriptBodyResolver = new ScriptBodyResolver(); this.scriptBodyResolver = new ScriptBodyResolver();
this.javaDescriptorFinder = new JavaDescriptorFinder(getJavaDescriptorResolver(), lazyJavaPackageFragmentProvider); this.javaDescriptorFinder = new JavaDescriptorFinder(getJavaDescriptorResolver(), lazyJavaPackageFragmentProvider);
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(); this.annotationDescriptorLoader = new AnnotationDescriptorLoader();
this.constantDescriptorDeserializer = new ConstantDescriptorDeserializer(); this.constantDescriptorLoader = new ConstantDescriptorLoader();
this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(lockBasedStorageManager, javaDescriptorFinder, annotationDescriptorDeserializer, constantDescriptorDeserializer, lazyJavaPackageFragmentProvider, memberFilter); this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(lockBasedStorageManager, javaDescriptorFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider, memberFilter);
this.descriptorDeserializersStorage = new DescriptorDeserializersStorage(lockBasedStorageManager); this.descriptorDeserializersStorage = new DescriptorDeserializersStorage(lockBasedStorageManager);
this.resolveSession.setAnnotationResolve(annotationResolver); this.resolveSession.setAnnotationResolve(annotationResolver);
@@ -244,18 +244,18 @@ public class InjectorForLazyResolveWithJava {
deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava); deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava);
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter); deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorDeserializer.setClassResolver(javaDescriptorResolver); annotationDescriptorLoader.setClassResolver(javaDescriptorResolver);
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter); annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder); annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
annotationDescriptorDeserializer.setStorage(descriptorDeserializersStorage); annotationDescriptorLoader.setStorage(descriptorDeserializersStorage);
descriptorDeserializersStorage.setClassResolver(javaDescriptorResolver); descriptorDeserializersStorage.setClassResolver(javaDescriptorResolver);
descriptorDeserializersStorage.setErrorReporter(traceBasedErrorReporter); descriptorDeserializersStorage.setErrorReporter(traceBasedErrorReporter);
constantDescriptorDeserializer.setClassResolver(javaDescriptorResolver); constantDescriptorLoader.setClassResolver(javaDescriptorResolver);
constantDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter); constantDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
constantDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder); constantDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
constantDescriptorDeserializer.setStorage(descriptorDeserializersStorage); constantDescriptorLoader.setStorage(descriptorDeserializersStorage);
javaClassFinder.initialize(); javaClassFinder.initialize();
@@ -68,9 +68,9 @@ import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver; import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava; import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava;
import org.jetbrains.jet.lang.resolve.kotlin.JavaDescriptorFinder; import org.jetbrains.jet.lang.resolve.kotlin.JavaDescriptorFinder;
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer; import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorLoader;
import org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage; import org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage;
import org.jetbrains.jet.lang.resolve.kotlin.ConstantDescriptorDeserializer; import org.jetbrains.jet.lang.resolve.kotlin.ConstantDescriptorLoader;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.annotation.PreDestroy; import javax.annotation.PreDestroy;
@@ -130,9 +130,9 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
private final DeserializedDescriptorResolver deserializedDescriptorResolver; private final DeserializedDescriptorResolver deserializedDescriptorResolver;
private final DeserializationGlobalContextForJava deserializationGlobalContextForJava; private final DeserializationGlobalContextForJava deserializationGlobalContextForJava;
private final JavaDescriptorFinder javaDescriptorFinder; private final JavaDescriptorFinder javaDescriptorFinder;
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer; private final AnnotationDescriptorLoader annotationDescriptorLoader;
private final DescriptorDeserializersStorage descriptorDeserializersStorage; private final DescriptorDeserializersStorage descriptorDeserializersStorage;
private final ConstantDescriptorDeserializer constantDescriptorDeserializer; private final ConstantDescriptorLoader constantDescriptorLoader;
public InjectorForTopDownAnalyzerForJvm( public InjectorForTopDownAnalyzerForJvm(
@NotNull Project project, @NotNull Project project,
@@ -192,9 +192,9 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
this.typeHierarchyResolver = new TypeHierarchyResolver(); this.typeHierarchyResolver = new TypeHierarchyResolver();
this.scriptHeaderResolver = new ScriptHeaderResolver(); this.scriptHeaderResolver = new ScriptHeaderResolver();
this.javaDescriptorFinder = new JavaDescriptorFinder(getJavaDescriptorResolver(), lazyJavaPackageFragmentProvider); this.javaDescriptorFinder = new JavaDescriptorFinder(getJavaDescriptorResolver(), lazyJavaPackageFragmentProvider);
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(); this.annotationDescriptorLoader = new AnnotationDescriptorLoader();
this.constantDescriptorDeserializer = new ConstantDescriptorDeserializer(); this.constantDescriptorLoader = new ConstantDescriptorLoader();
this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(storageManager, javaDescriptorFinder, annotationDescriptorDeserializer, constantDescriptorDeserializer, lazyJavaPackageFragmentProvider, memberFilter); this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(storageManager, javaDescriptorFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider, memberFilter);
this.descriptorDeserializersStorage = new DescriptorDeserializersStorage(storageManager); this.descriptorDeserializersStorage = new DescriptorDeserializersStorage(storageManager);
this.topDownAnalyzer.setBodyResolver(bodyResolver); this.topDownAnalyzer.setBodyResolver(bodyResolver);
@@ -325,18 +325,18 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava); deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava);
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter); deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorDeserializer.setClassResolver(javaDescriptorResolver); annotationDescriptorLoader.setClassResolver(javaDescriptorResolver);
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter); annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder); annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
annotationDescriptorDeserializer.setStorage(descriptorDeserializersStorage); annotationDescriptorLoader.setStorage(descriptorDeserializersStorage);
descriptorDeserializersStorage.setClassResolver(javaDescriptorResolver); descriptorDeserializersStorage.setClassResolver(javaDescriptorResolver);
descriptorDeserializersStorage.setErrorReporter(traceBasedErrorReporter); descriptorDeserializersStorage.setErrorReporter(traceBasedErrorReporter);
constantDescriptorDeserializer.setClassResolver(javaDescriptorResolver); constantDescriptorLoader.setClassResolver(javaDescriptorResolver);
constantDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter); constantDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
constantDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder); constantDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
constantDescriptorDeserializer.setStorage(descriptorDeserializersStorage); constantDescriptorLoader.setStorage(descriptorDeserializersStorage);
javaClassFinder.initialize(); javaClassFinder.initialize();
@@ -21,7 +21,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf; import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf;
import org.jetbrains.jet.descriptors.serialization.NameResolver; import org.jetbrains.jet.descriptors.serialization.NameResolver;
import org.jetbrains.jet.descriptors.serialization.ProtoBuf; import org.jetbrains.jet.descriptors.serialization.ProtoBuf;
import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotationDeserializer; import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotationLoader;
import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptorImpl; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptorImpl;
@@ -49,7 +49,7 @@ import java.util.Map;
import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotatedCallableKind; import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotatedCallableKind;
import static org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage.MemberSignature; import static org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage.MemberSignature;
public class AnnotationDescriptorDeserializer extends BaseDescriptorDeserializer implements AnnotationDeserializer { public class AnnotationDescriptorLoader extends BaseDescriptorLoader implements AnnotationLoader {
@Inject @Inject
@Override @Override
public void setStorage(@NotNull DescriptorDeserializersStorage storage) { public void setStorage(@NotNull DescriptorDeserializersStorage storage) {
@@ -38,7 +38,7 @@ import static org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStora
import static org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils.kotlinFqNameToJavaFqName; import static org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils.kotlinFqNameToJavaFqName;
import static org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils.naiveKotlinFqName; import static org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils.naiveKotlinFqName;
public abstract class BaseDescriptorDeserializer { public abstract class BaseDescriptorLoader {
protected DependencyClassByQualifiedNameResolver classResolver; protected DependencyClassByQualifiedNameResolver classResolver;
protected KotlinClassFinder kotlinClassFinder; protected KotlinClassFinder kotlinClassFinder;
protected ErrorReporter errorReporter; protected ErrorReporter errorReporter;
@@ -20,7 +20,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.descriptors.serialization.NameResolver; import org.jetbrains.jet.descriptors.serialization.NameResolver;
import org.jetbrains.jet.descriptors.serialization.ProtoBuf; import org.jetbrains.jet.descriptors.serialization.ProtoBuf;
import org.jetbrains.jet.descriptors.serialization.descriptors.ConstantDeserializer; import org.jetbrains.jet.descriptors.serialization.descriptors.ConstantLoader;
import org.jetbrains.jet.lang.descriptors.ClassOrPackageFragmentDescriptor; import org.jetbrains.jet.lang.descriptors.ClassOrPackageFragmentDescriptor;
import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
import org.jetbrains.jet.lang.resolve.java.resolver.ErrorReporter; import org.jetbrains.jet.lang.resolve.java.resolver.ErrorReporter;
@@ -31,7 +31,7 @@ import javax.inject.Inject;
import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotatedCallableKind; import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotatedCallableKind;
import static org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage.MemberSignature; import static org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage.MemberSignature;
public class ConstantDescriptorDeserializer extends BaseDescriptorDeserializer implements ConstantDeserializer { public class ConstantDescriptorLoader extends BaseDescriptorLoader implements ConstantLoader {
@Inject @Inject
@Override @Override
public void setStorage(@NotNull DescriptorDeserializersStorage storage) { public void setStorage(@NotNull DescriptorDeserializersStorage storage) {
@@ -108,7 +108,7 @@ public class DescriptorDeserializersStorage {
result = new ArrayList<AnnotationDescriptor>(); result = new ArrayList<AnnotationDescriptor>();
memberAnnotations.put(paramSignature, result); memberAnnotations.put(paramSignature, result);
} }
return AnnotationDescriptorDeserializer.resolveAnnotation(className, result, classResolver); return AnnotationDescriptorLoader.resolveAnnotation(className, result, classResolver);
} }
} }
@@ -123,7 +123,7 @@ public class DescriptorDeserializersStorage {
@Nullable @Nullable
@Override @Override
public KotlinJvmBinaryClass.AnnotationArgumentVisitor visitAnnotation(@NotNull JvmClassName className) { public KotlinJvmBinaryClass.AnnotationArgumentVisitor visitAnnotation(@NotNull JvmClassName className) {
return AnnotationDescriptorDeserializer.resolveAnnotation(className, result, classResolver); return AnnotationDescriptorLoader.resolveAnnotation(className, result, classResolver);
} }
@Override @Override
@@ -18,19 +18,14 @@ package org.jetbrains.jet.lang.resolve.kotlin
import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobalContext import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobalContext
import org.jetbrains.jet.storage.StorageManager import org.jetbrains.jet.storage.StorageManager
import org.jetbrains.jet.descriptors.serialization.DescriptorFinder
import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotationDeserializer
import org.jetbrains.jet.descriptors.serialization.descriptors.ConstantDeserializer
import org.jetbrains.jet.lang.descriptors.PackageFragmentProvider
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider
import org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter import org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter
public class DeserializationGlobalContextForJava( public class DeserializationGlobalContextForJava(
storageManager: StorageManager, storageManager: StorageManager,
descriptorFinder: JavaDescriptorFinder, descriptorFinder: JavaDescriptorFinder,
annotationDeserializer: AnnotationDescriptorDeserializer, annotationLoader: AnnotationDescriptorLoader,
constantDeserializer: ConstantDescriptorDeserializer, constantLoader: ConstantDescriptorLoader,
packageFragmentProvider: LazyJavaPackageFragmentProvider, packageFragmentProvider: LazyJavaPackageFragmentProvider,
memberFilter: MemberFilter memberFilter: MemberFilter
) : DeserializationGlobalContext(storageManager, descriptorFinder, annotationDeserializer, ) : DeserializationGlobalContext(storageManager, descriptorFinder, annotationLoader, constantLoader, packageFragmentProvider, memberFilter)
constantDeserializer, packageFragmentProvider, memberFilter)
@@ -54,7 +54,7 @@ class BuiltinsPackageFragment extends PackageFragmentDescriptorImpl {
DeserializationContext context = new DeserializationContext( DeserializationContext context = new DeserializationContext(
storageManager, new BuiltInsDescriptorFinder(storageManager), storageManager, new BuiltInsDescriptorFinder(storageManager),
// TODO: support annotations // TODO: support annotations
AnnotationDeserializer.UNSUPPORTED, ConstantDeserializer.UNSUPPORTED, packageFragmentProvider, AnnotationLoader.UNSUPPORTED, ConstantLoader.UNSUPPORTED, packageFragmentProvider,
MemberFilter.ALWAYS_TRUE, nameResolver MemberFilter.ALWAYS_TRUE, nameResolver
); );
members = new DeserializedPackageMemberScope(this, loadPackage(), context); members = new DeserializedPackageMemberScope(this, loadPackage(), context);
@@ -122,7 +122,7 @@ class BuiltinsPackageFragment extends PackageFragmentDescriptorImpl {
public BuiltInsDescriptorFinder(@NotNull StorageManager storageManager) { public BuiltInsDescriptorFinder(@NotNull StorageManager storageManager) {
// TODO: support annotations // TODO: support annotations
super(storageManager, AnnotationDeserializer.UNSUPPORTED, ConstantDeserializer.UNSUPPORTED, packageFragmentProvider); super(storageManager, AnnotationLoader.UNSUPPORTED, ConstantLoader.UNSUPPORTED, packageFragmentProvider);
classNames = storageManager.createLazyValue(new Function0<Collection<Name>>() { classNames = storageManager.createLazyValue(new Function0<Collection<Name>>() {
@Override @Override
@@ -31,12 +31,12 @@ public abstract class AbstractDescriptorFinder implements DescriptorFinder {
public AbstractDescriptorFinder( public AbstractDescriptorFinder(
@NotNull StorageManager storageManager, @NotNull StorageManager storageManager,
@NotNull AnnotationDeserializer annotationDeserializer, @NotNull AnnotationLoader annotationLoader,
@NotNull ConstantDeserializer constantDeserializer, @NotNull ConstantLoader constantLoader,
@NotNull PackageFragmentProvider packageFragmentProvider @NotNull PackageFragmentProvider packageFragmentProvider
) { ) {
final DeserializationGlobalContext deserializationGlobalContext = final DeserializationGlobalContext deserializationGlobalContext =
new DeserializationGlobalContext(storageManager, this, annotationDeserializer, constantDeserializer, new DeserializationGlobalContext(storageManager, this, annotationLoader, constantLoader,
packageFragmentProvider, MemberFilter.ALWAYS_TRUE); packageFragmentProvider, MemberFilter.ALWAYS_TRUE);
this.findClass = storageManager.createMemoizedFunctionWithNullableValues(new Function1<ClassId, ClassDescriptor>() { this.findClass = storageManager.createMemoizedFunctionWithNullableValues(new Function1<ClassId, ClassDescriptor>() {
@Override @Override
@@ -20,10 +20,7 @@ import kotlin.Function0;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.descriptors.serialization.context.DeserializationContextWithTypes; import org.jetbrains.jet.descriptors.serialization.context.DeserializationContextWithTypes;
import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotationDeserializer; import org.jetbrains.jet.descriptors.serialization.descriptors.*;
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedPropertyDescriptor;
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedSimpleFunctionDescriptor;
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedTypeParameterDescriptor;
import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.Annotations; import org.jetbrains.jet.lang.descriptors.annotations.Annotations;
import org.jetbrains.jet.lang.descriptors.impl.ConstructorDescriptorImpl; import org.jetbrains.jet.lang.descriptors.impl.ConstructorDescriptorImpl;
@@ -42,8 +39,6 @@ import static org.jetbrains.jet.descriptors.serialization.ProtoBuf.Callable;
import static org.jetbrains.jet.descriptors.serialization.ProtoBuf.TypeParameter; import static org.jetbrains.jet.descriptors.serialization.ProtoBuf.TypeParameter;
import static org.jetbrains.jet.descriptors.serialization.SerializationPackage.*; import static org.jetbrains.jet.descriptors.serialization.SerializationPackage.*;
import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotatedCallableKind;
public class DescriptorDeserializer { public class DescriptorDeserializer {
private final DeserializationContextWithTypes context; private final DeserializationContextWithTypes context;
@@ -144,10 +139,9 @@ public class DescriptorDeserializer {
DeclarationDescriptor containingDeclaration = context.getContainingDeclaration(); DeclarationDescriptor containingDeclaration = context.getContainingDeclaration();
assert containingDeclaration instanceof ClassOrPackageFragmentDescriptor assert containingDeclaration instanceof ClassOrPackageFragmentDescriptor
: "Only members in classes or package fragments should be serialized: " + containingDeclaration; : "Only members in classes or package fragments should be serialized: " + containingDeclaration;
return context.getConstantDeserializer().loadPropertyConstant( return context.getConstantLoader().loadPropertyConstant(
(ClassOrPackageFragmentDescriptor) containingDeclaration, (ClassOrPackageFragmentDescriptor) containingDeclaration, proto,
proto, context.getNameResolver(), context.getNameResolver(), AnnotatedCallableKind.PROPERTY);
AnnotatedCallableKind.PROPERTY);
} }
}) })
); );
@@ -162,9 +156,7 @@ public class DescriptorDeserializer {
private CallableMemberDescriptor loadFunction(@NotNull Callable proto) { private CallableMemberDescriptor loadFunction(@NotNull Callable proto) {
int flags = proto.getFlags(); int flags = proto.getFlags();
DeserializedSimpleFunctionDescriptor function = DeserializedSimpleFunctionDescriptor.create( DeserializedSimpleFunctionDescriptor function = DeserializedSimpleFunctionDescriptor.create(
context.getContainingDeclaration(), proto, context.getContainingDeclaration(), proto, context.getAnnotationLoader(), context.getNameResolver()
context.getAnnotationDeserializer(),
context.getNameResolver()
); );
List<TypeParameterDescriptor> typeParameters = new ArrayList<TypeParameterDescriptor>(proto.getTypeParameterCount()); List<TypeParameterDescriptor> typeParameters = new ArrayList<TypeParameterDescriptor>(proto.getTypeParameterCount());
DeserializationContextWithTypes local = context.childContext(function, proto.getTypeParameterList(), typeParameters); DeserializationContextWithTypes local = context.childContext(function, proto.getTypeParameterList(), typeParameters);
@@ -209,7 +201,7 @@ public class DescriptorDeserializer {
@NotNull @NotNull
private Annotations getAnnotations(@NotNull Callable proto, int flags, @NotNull AnnotatedCallableKind kind) { private Annotations getAnnotations(@NotNull Callable proto, int flags, @NotNull AnnotatedCallableKind kind) {
return getAnnotations(context.getContainingDeclaration(), proto, flags, kind, context.getAnnotationDeserializer(), context.getNameResolver()); return getAnnotations(context.getContainingDeclaration(), proto, flags, kind, context.getAnnotationLoader(), context.getNameResolver());
} }
public static Annotations getAnnotations( public static Annotations getAnnotations(
@@ -217,15 +209,13 @@ public class DescriptorDeserializer {
@NotNull Callable proto, @NotNull Callable proto,
int flags, int flags,
@NotNull AnnotatedCallableKind kind, @NotNull AnnotatedCallableKind kind,
@NotNull AnnotationDeserializer annotationDeserializer, @NotNull AnnotationLoader annotationLoader,
@NotNull NameResolver nameResolver @NotNull NameResolver nameResolver
) { ) {
assert containingDeclaration instanceof ClassOrPackageFragmentDescriptor assert containingDeclaration instanceof ClassOrPackageFragmentDescriptor
: "Only members in classes or package fragments should be serialized: " + containingDeclaration; : "Only members in classes or package fragments should be serialized: " + containingDeclaration;
return Flags.HAS_ANNOTATIONS.get(flags) return Flags.HAS_ANNOTATIONS.get(flags) ? annotationLoader.loadCallableAnnotations(
? annotationDeserializer (ClassOrPackageFragmentDescriptor) containingDeclaration, proto, nameResolver, kind) : Annotations.EMPTY;
.loadCallableAnnotations((ClassOrPackageFragmentDescriptor) containingDeclaration, proto, nameResolver, kind)
: Annotations.EMPTY;
} }
@NotNull @NotNull
@@ -283,9 +273,8 @@ public class DescriptorDeserializer {
@NotNull AnnotatedCallableKind kind, @NotNull AnnotatedCallableKind kind,
@NotNull Callable.ValueParameter valueParameter @NotNull Callable.ValueParameter valueParameter
) { ) {
return Flags.HAS_ANNOTATIONS.get(valueParameter.getFlags()) return Flags.HAS_ANNOTATIONS.get(valueParameter.getFlags()) ? context.getAnnotationLoader()
? context.getAnnotationDeserializer() .loadValueParameterAnnotations(classOrPackage, callable, context.getNameResolver(), kind, valueParameter)
.loadValueParameterAnnotations(classOrPackage, callable, context.getNameResolver(), kind, valueParameter)
: Annotations.EMPTY; : Annotations.EMPTY;
} }
} }
@@ -17,11 +17,10 @@
package org.jetbrains.jet.descriptors.serialization.context package org.jetbrains.jet.descriptors.serialization.context
import org.jetbrains.jet.storage.StorageManager import org.jetbrains.jet.storage.StorageManager
import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotationDeserializer import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotationLoader
import org.jetbrains.jet.lang.descriptors.PackageFragmentProvider import org.jetbrains.jet.lang.descriptors.PackageFragmentProvider
import org.jetbrains.jet.descriptors.serialization.DescriptorFinder import org.jetbrains.jet.descriptors.serialization.DescriptorFinder
import org.jetbrains.jet.descriptors.serialization.NameResolver import org.jetbrains.jet.descriptors.serialization.NameResolver
import org.jetbrains.jet.descriptors.serialization.descriptors.ConstantDeserializer
import org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter import org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
import org.jetbrains.jet.descriptors.serialization.TypeDeserializer import org.jetbrains.jet.descriptors.serialization.TypeDeserializer
@@ -29,19 +28,19 @@ import org.jetbrains.jet.descriptors.serialization.DescriptorDeserializer
import org.jetbrains.jet.descriptors.serialization.ProtoBuf.TypeParameter import org.jetbrains.jet.descriptors.serialization.ProtoBuf.TypeParameter
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedTypeParameterDescriptor import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedTypeParameterDescriptor
import org.jetbrains.jet.descriptors.serialization.TypeDeserializer.TypeParameterResolver import org.jetbrains.jet.descriptors.serialization.descriptors.ConstantLoader
public open class DeserializationGlobalContext( public open class DeserializationGlobalContext(
public val storageManager: StorageManager, public val storageManager: StorageManager,
public val descriptorFinder: DescriptorFinder, public val descriptorFinder: DescriptorFinder,
public val annotationDeserializer: AnnotationDeserializer, public val annotationLoader: AnnotationLoader,
public val constantDeserializer: ConstantDeserializer, public val constantLoader: ConstantLoader,
public val packageFragmentProvider: PackageFragmentProvider, public val packageFragmentProvider: PackageFragmentProvider,
public val memberFilter: MemberFilter public val memberFilter: MemberFilter
) { ) {
public fun withNameResolver(nameResolver: NameResolver): DeserializationContext { public fun withNameResolver(nameResolver: NameResolver): DeserializationContext {
return DeserializationContext(storageManager, descriptorFinder, annotationDeserializer, return DeserializationContext(storageManager, descriptorFinder, annotationLoader,
constantDeserializer, packageFragmentProvider, memberFilter, nameResolver) constantLoader, packageFragmentProvider, memberFilter, nameResolver)
} }
} }
@@ -49,13 +48,13 @@ public open class DeserializationGlobalContext(
public open class DeserializationContext( public open class DeserializationContext(
storageManager: StorageManager, storageManager: StorageManager,
descriptorFinder: DescriptorFinder, descriptorFinder: DescriptorFinder,
annotationDeserializer: AnnotationDeserializer, annotationLoader: AnnotationLoader,
constantDeserializer: ConstantDeserializer, constantLoader: ConstantLoader,
packageFragmentProvider: PackageFragmentProvider, packageFragmentProvider: PackageFragmentProvider,
memberFilter: MemberFilter, memberFilter: MemberFilter,
public val nameResolver: NameResolver public val nameResolver: NameResolver
) : DeserializationGlobalContext(storageManager, descriptorFinder, annotationDeserializer, ) : DeserializationGlobalContext(storageManager, descriptorFinder, annotationLoader,
constantDeserializer, packageFragmentProvider, memberFilter) { constantLoader, packageFragmentProvider, memberFilter) {
fun withTypes(containingDeclaration: DeclarationDescriptor): DeserializationContextWithTypes { fun withTypes(containingDeclaration: DeclarationDescriptor): DeserializationContextWithTypes {
val typeDeserializer = TypeDeserializer(this, null, "Deserializer for ${containingDeclaration.getName()}", val typeDeserializer = TypeDeserializer(this, null, "Deserializer for ${containingDeclaration.getName()}",
TypeDeserializer.TypeParameterResolver.NONE) TypeDeserializer.TypeParameterResolver.NONE)
@@ -63,8 +62,8 @@ public open class DeserializationContext(
} }
fun withTypes(containingDeclaration: DeclarationDescriptor, typeDeserializer: TypeDeserializer): DeserializationContextWithTypes { fun withTypes(containingDeclaration: DeclarationDescriptor, typeDeserializer: TypeDeserializer): DeserializationContextWithTypes {
return DeserializationContextWithTypes(storageManager, descriptorFinder, annotationDeserializer, return DeserializationContextWithTypes(storageManager, descriptorFinder, annotationLoader,
constantDeserializer, packageFragmentProvider, memberFilter, constantLoader, packageFragmentProvider, memberFilter,
nameResolver, containingDeclaration, nameResolver, containingDeclaration,
typeDeserializer) typeDeserializer)
} }
@@ -75,15 +74,15 @@ public open class DeserializationContext(
class DeserializationContextWithTypes( class DeserializationContextWithTypes(
storageManager: StorageManager, storageManager: StorageManager,
descriptorFinder: DescriptorFinder, descriptorFinder: DescriptorFinder,
annotationDeserializer: AnnotationDeserializer, annotationLoader: AnnotationLoader,
constantDeserializer: ConstantDeserializer, constantLoader: ConstantLoader,
packageFragmentProvider: PackageFragmentProvider, packageFragmentProvider: PackageFragmentProvider,
memberFilter: MemberFilter, memberFilter: MemberFilter,
nameResolver: NameResolver, nameResolver: NameResolver,
val containingDeclaration: DeclarationDescriptor, val containingDeclaration: DeclarationDescriptor,
val typeDeserializer: TypeDeserializer val typeDeserializer: TypeDeserializer
) : DeserializationContext(storageManager, descriptorFinder, annotationDeserializer, ) : DeserializationContext(storageManager, descriptorFinder, annotationLoader,
constantDeserializer, packageFragmentProvider, memberFilter, nameResolver) { constantLoader, packageFragmentProvider, memberFilter, nameResolver) {
val deserializer: DescriptorDeserializer = DescriptorDeserializer(this) val deserializer: DescriptorDeserializer = DescriptorDeserializer(this)
public fun childContext( public fun childContext(
@@ -23,8 +23,8 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.ClassOrPackageFragmentDescriptor; import org.jetbrains.jet.lang.descriptors.ClassOrPackageFragmentDescriptor;
import org.jetbrains.jet.lang.descriptors.annotations.Annotations; import org.jetbrains.jet.lang.descriptors.annotations.Annotations;
public interface AnnotationDeserializer { public interface AnnotationLoader {
AnnotationDeserializer UNSUPPORTED = new AnnotationDeserializer() { AnnotationLoader UNSUPPORTED = new AnnotationLoader() {
@NotNull @NotNull
@Override @Override
public Annotations loadClassAnnotations(@NotNull ClassDescriptor descriptor, @NotNull ProtoBuf.Class classProto) { public Annotations loadClassAnnotations(@NotNull ClassDescriptor descriptor, @NotNull ProtoBuf.Class classProto) {
@@ -23,8 +23,8 @@ import org.jetbrains.jet.descriptors.serialization.ProtoBuf;
import org.jetbrains.jet.lang.descriptors.ClassOrPackageFragmentDescriptor; import org.jetbrains.jet.lang.descriptors.ClassOrPackageFragmentDescriptor;
import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
public interface ConstantDeserializer { public interface ConstantLoader {
ConstantDeserializer UNSUPPORTED = new ConstantDeserializer() { ConstantLoader UNSUPPORTED = new ConstantLoader() {
@Nullable @Nullable
@Override @Override
public CompileTimeConstant<?> loadPropertyConstant( public CompileTimeConstant<?> loadPropertyConstant(
@@ -180,7 +180,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
if (!Flags.HAS_ANNOTATIONS.get(classProto.getFlags())) { if (!Flags.HAS_ANNOTATIONS.get(classProto.getFlags())) {
return Annotations.EMPTY; return Annotations.EMPTY;
} }
return context.getAnnotationDeserializer().loadClassAnnotations(this, classProto); return context.getAnnotationLoader().loadClassAnnotations(this, classProto);
} }
@NotNull @NotNull
@@ -84,12 +84,12 @@ public class DeserializedSimpleFunctionDescriptor extends SimpleFunctionDescript
public static DeserializedSimpleFunctionDescriptor create( public static DeserializedSimpleFunctionDescriptor create(
@NotNull DeclarationDescriptor containingDeclaration, @NotNull DeclarationDescriptor containingDeclaration,
@NotNull ProtoBuf.Callable proto, @NotNull ProtoBuf.Callable proto,
@NotNull AnnotationDeserializer annotationDeserializer, @NotNull AnnotationLoader annotationLoader,
@NotNull NameResolver nameResolver @NotNull NameResolver nameResolver
) { ) {
Annotations annotations = DescriptorDeserializer.getAnnotations(containingDeclaration, proto, proto.getFlags(), Annotations annotations = DescriptorDeserializer.getAnnotations(containingDeclaration, proto, proto.getFlags(),
AnnotatedCallableKind.FUNCTION, AnnotatedCallableKind.FUNCTION,
annotationDeserializer, annotationLoader,
nameResolver); nameResolver);
return new DeserializedSimpleFunctionDescriptor( return new DeserializedSimpleFunctionDescriptor(
containingDeclaration, containingDeclaration,
@@ -33,7 +33,7 @@ import com.intellij.openapi.vfs.VirtualFile
import org.jetbrains.jet.lang.resolve.kotlin.KotlinBinaryClassCache import org.jetbrains.jet.lang.resolve.kotlin.KotlinBinaryClassCache
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils import org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedPackageMemberScope import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedPackageMemberScope
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorLoader
import org.jetbrains.jet.lang.resolve.java.resolver.ErrorReporter import org.jetbrains.jet.lang.resolve.java.resolver.ErrorReporter
import org.jetbrains.jet.lang.types.error.MissingDependencyErrorClassDescriptor import org.jetbrains.jet.lang.types.error.MissingDependencyErrorClassDescriptor
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils import org.jetbrains.jet.lang.resolve.java.PackageClassUtils
@@ -41,7 +41,7 @@ import com.intellij.openapi.diagnostic.Logger
import org.jetbrains.jet.lang.resolve.kotlin.KotlinClassFinder import org.jetbrains.jet.lang.resolve.kotlin.KotlinClassFinder
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe
import org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage import org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage
import org.jetbrains.jet.lang.resolve.kotlin.ConstantDescriptorDeserializer import org.jetbrains.jet.lang.resolve.kotlin.ConstantDescriptorLoader
import org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter import org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobalContext import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobalContext
@@ -107,26 +107,26 @@ public class DeserializerForDecompiler(val packageDirectory: VirtualFile, val di
deserializerStorage.setErrorReporter(LOGGING_REPORTER) deserializerStorage.setErrorReporter(LOGGING_REPORTER)
} }
private val annotationDeserializer = AnnotationDescriptorDeserializer(); private val annotationLoader = AnnotationDescriptorLoader();
{ {
annotationDeserializer.setClassResolver { annotationLoader.setClassResolver {
fqName -> fqName ->
classes(fqName.toClassId()) classes(fqName.toClassId())
} }
annotationDeserializer.setKotlinClassFinder(localClassFinder) annotationLoader.setKotlinClassFinder(localClassFinder)
annotationDeserializer.setErrorReporter(LOGGING_REPORTER) annotationLoader.setErrorReporter(LOGGING_REPORTER)
annotationDeserializer.setStorage(deserializerStorage) annotationLoader.setStorage(deserializerStorage)
} }
private val constantDeserializer = ConstantDescriptorDeserializer(); private val constantLoader = ConstantDescriptorLoader();
{ {
constantDeserializer.setClassResolver { constantLoader.setClassResolver {
fqName -> fqName ->
classes(fqName.toClassId()) classes(fqName.toClassId())
} }
constantDeserializer.setKotlinClassFinder(localClassFinder) constantLoader.setKotlinClassFinder(localClassFinder)
constantDeserializer.setErrorReporter(LOGGING_REPORTER) constantLoader.setErrorReporter(LOGGING_REPORTER)
constantDeserializer.setStorage(deserializerStorage) constantLoader.setStorage(deserializerStorage)
} }
private val descriptorFinder = object : DescriptorFinder { private val descriptorFinder = object : DescriptorFinder {
@@ -149,8 +149,8 @@ public class DeserializerForDecompiler(val packageDirectory: VirtualFile, val di
} }
} }
val deserializationContext = DeserializationGlobalContext(storageManager, descriptorFinder, annotationDeserializer, val deserializationContext = DeserializationGlobalContext(storageManager, descriptorFinder, annotationLoader,
constantDeserializer, packageFragmentProvider, MemberFilter.ALWAYS_TRUE) constantLoader, packageFragmentProvider, MemberFilter.ALWAYS_TRUE)
private fun createDummyPackageFragment(fqName: FqName): MutablePackageFragmentDescriptor { private fun createDummyPackageFragment(fqName: FqName): MutablePackageFragmentDescriptor {
return MutablePackageFragmentDescriptor(ErrorUtils.getErrorModule(), fqName) return MutablePackageFragmentDescriptor(ErrorUtils.getErrorModule(), fqName)