Drop DependencyClassByQualifiedNameResolver and implementation

This commit is contained in:
Pavel V. Talanov
2014-06-16 15:00:57 +04:00
parent 245919d691
commit 55ae3cab19
6 changed files with 1 additions and 94 deletions
@@ -1,33 +0,0 @@
/*
* Copyright 2010-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.lang.types;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
public class DependencyClassByQualifiedNameResolverDummyImpl implements DependencyClassByQualifiedNameResolver {
@Override
public ClassDescriptor resolveClass(@NotNull FqName qualifiedName) {
if (qualifiedName.isRoot()) return null;
if (KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME.equals(qualifiedName.parent())) {
return KotlinBuiltIns.getInstance().getBuiltInClassByName(qualifiedName.shortName());
}
return null;
}
}
@@ -24,11 +24,9 @@ import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageFragmentProvider;
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolver;
public class JavaDescriptorResolver implements DependencyClassByQualifiedNameResolver {
public class JavaDescriptorResolver {
public static final Name JAVA_ROOT = Name.special("<java_root>");
private final ModuleDescriptor module;
@@ -50,12 +48,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
return lazyJavaPackageFragmentProvider;
}
@Nullable
@Override
public ClassDescriptor resolveClass(@NotNull FqName qualifiedName) {
return lazyJavaPackageFragmentProvider.getClass(qualifiedName);
}
@Nullable
public ClassDescriptor resolveClass(@NotNull JavaClass javaClass) {
return lazyJavaPackageFragmentProvider.getClass(javaClass);
@@ -104,22 +104,6 @@ public class LazyJavaPackageFragmentProvider(
fun getClass(javaClass: JavaClass): ClassDescriptor? = c.javaClassResolver.resolveClass(javaClass)
fun getClass(fqName: FqName): ClassDescriptor? {
val builtinClass = DescriptorResolverUtils.getKotlinBuiltinClassDescriptor(fqName)
if (builtinClass != null) return builtinClass
// TODO Here we prefer sources (something outside JDR subsystem) to binaries, which should actually be driven by module dependencies separation
// See DeserializedDescriptorResolver.javaDescriptorFinder
val classFromSources = c.javaResolverCache.getClassResolvedFromSource(fqName)
if (classFromSources != null) return classFromSources
val (jClass, kClass) = c.findClassInJava(fqName)
if (jClass != null) return c.javaClassResolver.resolveClass(jClass)
if (kClass != null) return kClass
return null
}
private inner class FragmentClassResolver : LazyJavaClassResolver {
override fun resolveClass(javaClass: JavaClass): ClassDescriptor? {
// TODO: there's no notion of module separation here. We must refuse to resolve classes from other modules
@@ -16,14 +16,12 @@
package org.jetbrains.jet.lang.resolve.kotlin
import org.jetbrains.annotations.Nullable
import org.jetbrains.jet.descriptors.serialization.ClassId
import org.jetbrains.jet.descriptors.serialization.DescriptorFinder
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider
import org.jetbrains.jet.lang.resolve.name.FqName
import org.jetbrains.jet.lang.resolve.name.Name
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolver
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils.kotlinFqNameToJavaFqName
import java.util.Collections
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver
@@ -1,27 +0,0 @@
/*
* Copyright 2010-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.lang.types;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.resolve.name.FqName;
public interface DependencyClassByQualifiedNameResolver {
@Nullable
ClassDescriptor resolveClass(@NotNull FqName qualifiedName);
}
@@ -28,7 +28,6 @@ import org.jetbrains.jet.lang.resolve.java.resolver.*
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices
import org.jetbrains.jet.di.*
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents
@@ -81,15 +80,11 @@ private fun DependencyInjectorGenerator.commonForTopDownAnalyzer() {
private fun generatorForTopDownAnalyzerBasic() =
generator("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerBasic") {
commonForTopDownAnalyzer()
field(javaClass<DependencyClassByQualifiedNameResolverDummyImpl>())
}
private fun generatorForTopDownAnalyzerForJs() =
generator("js/js.translator/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJs") {
commonForTopDownAnalyzer()
field(javaClass<DependencyClassByQualifiedNameResolverDummyImpl>())
}
private fun generatorForTopDownAnalyzerForJvm() =
@@ -216,8 +211,6 @@ private fun generatorForLazyResolve() =
parameter(javaClass<BindingTrace>())
publicField(javaClass<ResolveSession>())
field(javaClass<DependencyClassByQualifiedNameResolverDummyImpl>())
}
private fun generator(