From 78e40114cafb710757e0b650302c20194b7fed02 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Wed, 13 Nov 2013 04:55:20 +0400 Subject: [PATCH] More straightforward caching. --- .../resolver/JavaPackageFragmentProvider.java | 26 +++---------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPackageFragmentProvider.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPackageFragmentProvider.java index 9f79de14b0d..b449ab6bfda 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPackageFragmentProvider.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPackageFragmentProvider.java @@ -48,8 +48,6 @@ import java.util.*; public final class JavaPackageFragmentProvider implements PackageFragmentProvider { @NotNull private final Map packageFragments = Maps.newHashMap(); - @NotNull - private final Set unresolvedCache = new HashSet(); private JavaClassFinder javaClassFinder; private JavaResolverCache cache; @@ -119,16 +117,11 @@ public final class JavaPackageFragmentProvider implements PackageFragmentProvide @Nullable public JavaPackageFragmentDescriptor getOrCreatePackage(@NotNull final FqName fqName) { - // TODO 1 use one cache - if (unresolvedCache.contains(fqName)) { - return null; - } - JavaPackageFragmentDescriptor packageFragment = packageFragments.get(fqName); - if (packageFragment != null) { - return packageFragment; + if (packageFragments.containsKey(fqName)) { + return packageFragments.get(fqName); } - packageFragment = JavaPackageFragmentDescriptor.create(this, fqName, new NullableFunction() { + JavaPackageFragmentDescriptor packageFragment = JavaPackageFragmentDescriptor.create(this, fqName, new NullableFunction() { @Override @Nullable public JetScope fun(JavaPackageFragmentDescriptor packageFragment) { @@ -136,7 +129,7 @@ public final class JavaPackageFragmentProvider implements PackageFragmentProvide } }); - cache(fqName, packageFragment); + packageFragments.put(fqName, packageFragment); return packageFragment; } @@ -175,17 +168,6 @@ public final class JavaPackageFragmentProvider implements PackageFragmentProvide return !DescriptorResolverUtils.isCompiledKotlinClassOrPackageClass(javaClass) && hasStaticMembers(javaClass); } - private void cache(@NotNull FqName fqName, @Nullable JavaPackageFragmentDescriptor packageFragment) { - if (packageFragment == null) { - unresolvedCache.add(fqName); - return; - } - JavaPackageFragmentDescriptor oldValue = packageFragments.put(fqName, packageFragment); - if (oldValue != null) { - throw new IllegalStateException("rewrite at " + fqName); - } - } - private static boolean hasStaticMembers(@NotNull JavaClass javaClass) { for (JavaMethod method : javaClass.getMethods()) { if (method.isStatic() && !DescriptorResolverUtils.shouldBeInEnumClassObject(method)) {