diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyImportScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyImportScope.java index 314257caa7f..920a9514666 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyImportScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyImportScope.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2013 JetBrains s.r.o. + * Copyright 2010-2014 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. @@ -93,7 +93,7 @@ public class LazyImportScope implements JetScope { directiveUnderResolve = directive; try { - resolveSession.getInjector().getQualifiedExpressionResolver().processImportReference( + resolveSession.getQualifiedExpressionResolver().processImportReference( directive, rootScope, packageDescriptor.getMemberScope(), diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java index 659c31cf944..e6d1fc4a50e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java @@ -30,8 +30,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.di.InjectorForLazyResolve; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.BindingTrace; +import org.jetbrains.jet.lang.resolve.*; import org.jetbrains.jet.lang.resolve.lazy.data.JetClassLikeInfo; import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory; import org.jetbrains.jet.lang.resolve.lazy.declarations.PackageMemberDeclarationProvider; @@ -70,7 +69,6 @@ public class ResolveSession implements KotlinCodeAnalyzer { private final Predicate specialClasses; - private final InjectorForLazyResolve injector; private final Function classifierAliases; @@ -122,6 +120,8 @@ public class ResolveSession implements KotlinCodeAnalyzer { return packageDescriptor.getDeclarationProvider().getAllDeclaredPackages(); } }; + + // TODO: parameter modification rootDescriptor.addFragmentProvider(DependencyKind.SOURCES, packageFragmentProvider); } @@ -147,11 +147,6 @@ public class ResolveSession implements KotlinCodeAnalyzer { return new LazyPackageDescriptor(module, fqName, this, provider); } - @NotNull - public InjectorForLazyResolve getInjector() { - return injector; - } - public boolean isClassSpecial(@NotNull FqNameUnsafe fqName) { return specialClasses.apply(fqName); } @@ -177,7 +172,7 @@ public class ResolveSession implements KotlinCodeAnalyzer { if (classOrObject.getParent() instanceof JetClassObject) { return getClassObjectDescriptor((JetClassObject) classOrObject.getParent()); } - JetScope resolutionScope = getInjector().getScopeProvider().getResolutionScopeForDeclaration(classOrObject); + JetScope resolutionScope = getScopeProvider().getResolutionScopeForDeclaration(classOrObject); Name name = safeNameForLazyResolve(classOrObject.getNameAsName()); // Why not use the result here. Because it may be that there is a redeclaration: @@ -310,7 +305,7 @@ public class ResolveSession implements KotlinCodeAnalyzer { @Override public DeclarationDescriptor visitNamedFunction(@NotNull JetNamedFunction function, Void data) { - JetScope scopeForDeclaration = getInjector().getScopeProvider().getResolutionScopeForDeclaration(function); + JetScope scopeForDeclaration = getScopeProvider().getResolutionScopeForDeclaration(function); scopeForDeclaration.getFunctions(safeNameForLazyResolve(function)); return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, function); } @@ -338,7 +333,7 @@ public class ResolveSession implements KotlinCodeAnalyzer { @Override public DeclarationDescriptor visitProperty(@NotNull JetProperty property, Void data) { - JetScope scopeForDeclaration = getInjector().getScopeProvider().getResolutionScopeForDeclaration(property); + JetScope scopeForDeclaration = getScopeProvider().getResolutionScopeForDeclaration(property); scopeForDeclaration.getProperties(safeNameForLazyResolve(property)); return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, property); } @@ -393,4 +388,34 @@ public class ResolveSession implements KotlinCodeAnalyzer { ForceResolveUtil.forceResolveAllContents(lazyPackage); } } + + @NotNull + public ScopeProvider getScopeProvider() { + return injector.getScopeProvider(); + } + + @NotNull + public JetImportsFactory getJetImportsFactory() { + return injector.getJetImportsFactory(); + } + + @NotNull + public AnnotationResolver getAnnotationResolver() { + return injector.getAnnotationResolver(); + } + + @NotNull + public DescriptorResolver getDescriptorResolver() { + return injector.getDescriptorResolver(); + } + + @NotNull + public TypeResolver getTypeResolver() { + return injector.getTypeResolver(); + } + + @NotNull + public QualifiedExpressionResolver getQualifiedExpressionResolver() { + return injector.getQualifiedExpressionResolver(); + } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java index fbcddbf0f39..bf010556650 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2013 JetBrains s.r.o. + * Copyright 2010-2014 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. @@ -92,7 +92,7 @@ public class ScopeProvider { throw new IllegalStateException("Root package not found"); } - JetImportsFactory importsFactory = resolveSession.getInjector().getJetImportsFactory(); + JetImportsFactory importsFactory = resolveSession.getJetImportsFactory(); List defaultImports = resolveSession.getModuleDescriptor().getDefaultImports(); Collection defaultImportDirectives = importsFactory.createImportDirectives(defaultImports); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/AbstractLazyMemberScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/AbstractLazyMemberScope.java index 3e1e4fb9195..a1b0b20e255 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/AbstractLazyMemberScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/AbstractLazyMemberScope.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2013 JetBrains s.r.o. + * Copyright 2010-2014 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. @@ -126,7 +126,7 @@ public abstract class AbstractLazyMemberScope declarations = declarationProvider.getFunctionDeclarations(name); for (JetNamedFunction functionDeclaration : declarations) { JetScope resolutionScope = getScopeForMemberDeclarationResolution(functionDeclaration); - result.add(resolveSession.getInjector().getDescriptorResolver().resolveFunctionDescriptorWithAnnotationArguments( + result.add(resolveSession.getDescriptorResolver().resolveFunctionDescriptorWithAnnotationArguments( thisDescriptor, resolutionScope, functionDeclaration, resolveSession.getTrace(), @@ -160,7 +160,7 @@ public abstract class AbstractLazyMemberScope allSupertypes = resolveSession.getInjector().getDescriptorResolver() + List allSupertypes = resolveSession.getDescriptorResolver() .resolveSupertypes(getScopeForClassHeaderResolution(), LazyClassDescriptor.this, classOrObject, resolveSession.getTrace()); @@ -468,6 +468,6 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti @NotNull private ScopeProvider getScopeProvider() { - return resolveSession.getInjector().getScopeProvider(); + return resolveSession.getScopeProvider(); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java index 7c556860d20..0166f6d1ff2 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassMemberScope.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2013 JetBrains s.r.o. + * Copyright 2010-2014 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. @@ -235,7 +235,7 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope