Use VirtualFileFinder in JavaClassResolver

HACK: determine whether fqname is a name for class contained in class or namespace based on virtual file name
This commit introduces code duplication which is hard to avoid without major refactoring
This commit is contained in:
Pavel V. Talanov
2013-07-23 21:38:42 +04:00
parent 52de4215b5
commit e4988f9dba
4 changed files with 73 additions and 73 deletions
@@ -36,6 +36,7 @@ import org.jetbrains.jet.lang.resolve.calls.NeedSyntheticCallResolverExtension;
import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration;
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl;
import org.jetbrains.jet.lang.resolve.java.vfilefinder.VirtualFileFinder;
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
@@ -103,6 +104,9 @@ public class GenerateInjectors {
generator.addField(JavaDescriptorResolver.class);
generator.addField(PsiClassFinderImpl.class);
generator.addPublicField(NamespaceFactoryImpl.class);
generator.addField(false, VirtualFileFinder.class, "virtualFileFinder",
new GivenExpression(
"com.intellij.openapi.components.ServiceManager.getService(project, VirtualFileFinder.class)"));
generator.generate("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJvm",
GenerateInjectors.class);
}
@@ -117,6 +121,8 @@ public class GenerateInjectors {
// Fields
generator.addPublicField(JavaDescriptorResolver.class);
generator.addPublicField(PsiClassFinderImpl.class);
generator.addField(false, VirtualFileFinder.class, "virtualFileFinder",
new GivenExpression("com.intellij.openapi.components.ServiceManager.getService(project, VirtualFileFinder.class)"));
generator.generate("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForJavaDescriptorResolver",
GenerateInjectors.class);