Refactoring: hide fact of using injector inside lazy resolve session
This commit is contained in:
@@ -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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with 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;
|
directiveUnderResolve = directive;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
resolveSession.getInjector().getQualifiedExpressionResolver().processImportReference(
|
resolveSession.getQualifiedExpressionResolver().processImportReference(
|
||||||
directive,
|
directive,
|
||||||
rootScope,
|
rootScope,
|
||||||
packageDescriptor.getMemberScope(),
|
packageDescriptor.getMemberScope(),
|
||||||
|
|||||||
@@ -30,8 +30,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import org.jetbrains.jet.di.InjectorForLazyResolve;
|
import org.jetbrains.jet.di.InjectorForLazyResolve;
|
||||||
import org.jetbrains.jet.lang.descriptors.*;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.data.JetClassLikeInfo;
|
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.DeclarationProviderFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.declarations.PackageMemberDeclarationProvider;
|
import org.jetbrains.jet.lang.resolve.lazy.declarations.PackageMemberDeclarationProvider;
|
||||||
@@ -70,7 +69,6 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
|
|
||||||
private final Predicate<FqNameUnsafe> specialClasses;
|
private final Predicate<FqNameUnsafe> specialClasses;
|
||||||
|
|
||||||
|
|
||||||
private final InjectorForLazyResolve injector;
|
private final InjectorForLazyResolve injector;
|
||||||
|
|
||||||
private final Function<FqName, Name> classifierAliases;
|
private final Function<FqName, Name> classifierAliases;
|
||||||
@@ -122,6 +120,8 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
return packageDescriptor.getDeclarationProvider().getAllDeclaredPackages();
|
return packageDescriptor.getDeclarationProvider().getAllDeclaredPackages();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// TODO: parameter modification
|
||||||
rootDescriptor.addFragmentProvider(DependencyKind.SOURCES, packageFragmentProvider);
|
rootDescriptor.addFragmentProvider(DependencyKind.SOURCES, packageFragmentProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -147,11 +147,6 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
return new LazyPackageDescriptor(module, fqName, this, provider);
|
return new LazyPackageDescriptor(module, fqName, this, provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public InjectorForLazyResolve getInjector() {
|
|
||||||
return injector;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isClassSpecial(@NotNull FqNameUnsafe fqName) {
|
public boolean isClassSpecial(@NotNull FqNameUnsafe fqName) {
|
||||||
return specialClasses.apply(fqName);
|
return specialClasses.apply(fqName);
|
||||||
}
|
}
|
||||||
@@ -177,7 +172,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
if (classOrObject.getParent() instanceof JetClassObject) {
|
if (classOrObject.getParent() instanceof JetClassObject) {
|
||||||
return getClassObjectDescriptor((JetClassObject) classOrObject.getParent());
|
return getClassObjectDescriptor((JetClassObject) classOrObject.getParent());
|
||||||
}
|
}
|
||||||
JetScope resolutionScope = getInjector().getScopeProvider().getResolutionScopeForDeclaration(classOrObject);
|
JetScope resolutionScope = getScopeProvider().getResolutionScopeForDeclaration(classOrObject);
|
||||||
Name name = safeNameForLazyResolve(classOrObject.getNameAsName());
|
Name name = safeNameForLazyResolve(classOrObject.getNameAsName());
|
||||||
|
|
||||||
// Why not use the result here. Because it may be that there is a redeclaration:
|
// 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
|
@Override
|
||||||
public DeclarationDescriptor visitNamedFunction(@NotNull JetNamedFunction function, Void data) {
|
public DeclarationDescriptor visitNamedFunction(@NotNull JetNamedFunction function, Void data) {
|
||||||
JetScope scopeForDeclaration = getInjector().getScopeProvider().getResolutionScopeForDeclaration(function);
|
JetScope scopeForDeclaration = getScopeProvider().getResolutionScopeForDeclaration(function);
|
||||||
scopeForDeclaration.getFunctions(safeNameForLazyResolve(function));
|
scopeForDeclaration.getFunctions(safeNameForLazyResolve(function));
|
||||||
return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, function);
|
return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, function);
|
||||||
}
|
}
|
||||||
@@ -338,7 +333,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DeclarationDescriptor visitProperty(@NotNull JetProperty property, Void data) {
|
public DeclarationDescriptor visitProperty(@NotNull JetProperty property, Void data) {
|
||||||
JetScope scopeForDeclaration = getInjector().getScopeProvider().getResolutionScopeForDeclaration(property);
|
JetScope scopeForDeclaration = getScopeProvider().getResolutionScopeForDeclaration(property);
|
||||||
scopeForDeclaration.getProperties(safeNameForLazyResolve(property));
|
scopeForDeclaration.getProperties(safeNameForLazyResolve(property));
|
||||||
return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, property);
|
return getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, property);
|
||||||
}
|
}
|
||||||
@@ -393,4 +388,34 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
ForceResolveUtil.forceResolveAllContents(lazyPackage);
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with 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");
|
throw new IllegalStateException("Root package not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
JetImportsFactory importsFactory = resolveSession.getInjector().getJetImportsFactory();
|
JetImportsFactory importsFactory = resolveSession.getJetImportsFactory();
|
||||||
List<ImportPath> defaultImports = resolveSession.getModuleDescriptor().getDefaultImports();
|
List<ImportPath> defaultImports = resolveSession.getModuleDescriptor().getDefaultImports();
|
||||||
|
|
||||||
Collection<JetImportDirective> defaultImportDirectives = importsFactory.createImportDirectives(defaultImports);
|
Collection<JetImportDirective> defaultImportDirectives = importsFactory.createImportDirectives(defaultImports);
|
||||||
|
|||||||
+4
-4
@@ -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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -126,7 +126,7 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
|
|||||||
Collection<JetNamedFunction> declarations = declarationProvider.getFunctionDeclarations(name);
|
Collection<JetNamedFunction> declarations = declarationProvider.getFunctionDeclarations(name);
|
||||||
for (JetNamedFunction functionDeclaration : declarations) {
|
for (JetNamedFunction functionDeclaration : declarations) {
|
||||||
JetScope resolutionScope = getScopeForMemberDeclarationResolution(functionDeclaration);
|
JetScope resolutionScope = getScopeForMemberDeclarationResolution(functionDeclaration);
|
||||||
result.add(resolveSession.getInjector().getDescriptorResolver().resolveFunctionDescriptorWithAnnotationArguments(
|
result.add(resolveSession.getDescriptorResolver().resolveFunctionDescriptorWithAnnotationArguments(
|
||||||
thisDescriptor, resolutionScope,
|
thisDescriptor, resolutionScope,
|
||||||
functionDeclaration,
|
functionDeclaration,
|
||||||
resolveSession.getTrace(),
|
resolveSession.getTrace(),
|
||||||
@@ -160,7 +160,7 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
|
|||||||
for (JetProperty propertyDeclaration : declarations) {
|
for (JetProperty propertyDeclaration : declarations) {
|
||||||
JetScope resolutionScope = getScopeForMemberDeclarationResolution(propertyDeclaration);
|
JetScope resolutionScope = getScopeForMemberDeclarationResolution(propertyDeclaration);
|
||||||
PropertyDescriptor propertyDescriptor =
|
PropertyDescriptor propertyDescriptor =
|
||||||
resolveSession.getInjector().getDescriptorResolver().resolvePropertyDescriptor(
|
resolveSession.getDescriptorResolver().resolvePropertyDescriptor(
|
||||||
thisDescriptor, resolutionScope,
|
thisDescriptor, resolutionScope,
|
||||||
propertyDeclaration,
|
propertyDeclaration,
|
||||||
resolveSession.getTrace(),
|
resolveSession.getTrace(),
|
||||||
@@ -168,7 +168,7 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
|
|||||||
// thus doesn't have a surrounding data flow
|
// thus doesn't have a surrounding data flow
|
||||||
DataFlowInfo.EMPTY);
|
DataFlowInfo.EMPTY);
|
||||||
result.add(propertyDescriptor);
|
result.add(propertyDescriptor);
|
||||||
resolveSession.getInjector().getAnnotationResolver().resolveAnnotationsArguments(propertyDescriptor, resolveSession.getTrace(), resolutionScope);
|
resolveSession.getAnnotationResolver().resolveAnnotationsArguments(propertyDescriptor, resolveSession.getTrace(), resolutionScope);
|
||||||
}
|
}
|
||||||
|
|
||||||
getNonDeclaredProperties(name, result);
|
getNonDeclaredProperties(name, result);
|
||||||
|
|||||||
+4
-4
@@ -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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -302,7 +302,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti
|
|||||||
JetClassLikeInfo classInfo = declarationProvider.getOwnerInfo();
|
JetClassLikeInfo classInfo = declarationProvider.getOwnerInfo();
|
||||||
JetModifierList modifierList = classInfo.getModifierList();
|
JetModifierList modifierList = classInfo.getModifierList();
|
||||||
if (modifierList != null) {
|
if (modifierList != null) {
|
||||||
AnnotationResolver annotationResolver = resolveSession.getInjector().getAnnotationResolver();
|
AnnotationResolver annotationResolver = resolveSession.getAnnotationResolver();
|
||||||
JetScope scopeForDeclaration = getScopeProvider().getResolutionScopeForDeclaration(classInfo.getScopeAnchor());
|
JetScope scopeForDeclaration = getScopeProvider().getResolutionScopeForDeclaration(classInfo.getScopeAnchor());
|
||||||
return annotationResolver.resolveAnnotationsWithArguments(scopeForDeclaration, modifierList, resolveSession.getTrace());
|
return annotationResolver.resolveAnnotationsWithArguments(scopeForDeclaration, modifierList, resolveSession.getTrace());
|
||||||
}
|
}
|
||||||
@@ -361,7 +361,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti
|
|||||||
return Collections.singleton(KotlinBuiltIns.getInstance().getAnyType());
|
return Collections.singleton(KotlinBuiltIns.getInstance().getAnyType());
|
||||||
}
|
}
|
||||||
|
|
||||||
List<JetType> allSupertypes = resolveSession.getInjector().getDescriptorResolver()
|
List<JetType> allSupertypes = resolveSession.getDescriptorResolver()
|
||||||
.resolveSupertypes(getScopeForClassHeaderResolution(), LazyClassDescriptor.this, classOrObject,
|
.resolveSupertypes(getScopeForClassHeaderResolution(), LazyClassDescriptor.this, classOrObject,
|
||||||
resolveSession.getTrace());
|
resolveSession.getTrace());
|
||||||
|
|
||||||
@@ -468,6 +468,6 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private ScopeProvider getScopeProvider() {
|
private ScopeProvider getScopeProvider() {
|
||||||
return resolveSession.getInjector().getScopeProvider();
|
return resolveSession.getScopeProvider();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -235,7 +235,7 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope<LazyClassDescr
|
|||||||
JetParameter parameter = primaryConstructorParameters.get(valueParameterDescriptor.getIndex());
|
JetParameter parameter = primaryConstructorParameters.get(valueParameterDescriptor.getIndex());
|
||||||
if (parameter.getValOrVarNode() != null && name.equals(parameter.getNameAsName())) {
|
if (parameter.getValOrVarNode() != null && name.equals(parameter.getNameAsName())) {
|
||||||
PropertyDescriptor propertyDescriptor =
|
PropertyDescriptor propertyDescriptor =
|
||||||
resolveSession.getInjector().getDescriptorResolver().resolvePrimaryConstructorParameterToAProperty(
|
resolveSession.getDescriptorResolver().resolvePrimaryConstructorParameterToAProperty(
|
||||||
thisDescriptor,
|
thisDescriptor,
|
||||||
valueParameterDescriptor,
|
valueParameterDescriptor,
|
||||||
thisDescriptor.getScopeForClassHeaderResolution(),
|
thisDescriptor.getScopeForClassHeaderResolution(),
|
||||||
@@ -271,7 +271,7 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope<LazyClassDescr
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public JetType resolve(@NotNull JetTypeReference reference) {
|
public JetType resolve(@NotNull JetTypeReference reference) {
|
||||||
return resolveSession.getInjector().getTypeResolver().resolveType(
|
return resolveSession.getTypeResolver().resolveType(
|
||||||
thisDescriptor.getScopeForClassHeaderResolution(),
|
thisDescriptor.getScopeForClassHeaderResolution(),
|
||||||
reference,
|
reference,
|
||||||
resolveSession.getTrace(),
|
resolveSession.getTrace(),
|
||||||
@@ -359,7 +359,7 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope<LazyClassDescr
|
|||||||
JetClassOrObject classOrObject = declarationProvider.getOwnerInfo().getCorrespondingClassOrObject();
|
JetClassOrObject classOrObject = declarationProvider.getOwnerInfo().getCorrespondingClassOrObject();
|
||||||
if (!thisDescriptor.getKind().isSingleton()) {
|
if (!thisDescriptor.getKind().isSingleton()) {
|
||||||
JetClass jetClass = (JetClass) classOrObject;
|
JetClass jetClass = (JetClass) classOrObject;
|
||||||
ConstructorDescriptorImpl constructor = resolveSession.getInjector().getDescriptorResolver()
|
ConstructorDescriptorImpl constructor = resolveSession.getDescriptorResolver()
|
||||||
.resolvePrimaryConstructorDescriptor(thisDescriptor.getScopeForClassHeaderResolution(),
|
.resolvePrimaryConstructorDescriptor(thisDescriptor.getScopeForClassHeaderResolution(),
|
||||||
thisDescriptor,
|
thisDescriptor,
|
||||||
jetClass,
|
jetClass,
|
||||||
|
|||||||
+2
-2
@@ -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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -54,7 +54,7 @@ public class LazyPackageMemberScope extends AbstractLazyMemberScope<PackageFragm
|
|||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
protected JetScope getScopeForMemberDeclarationResolution(JetDeclaration declaration) {
|
protected JetScope getScopeForMemberDeclarationResolution(JetDeclaration declaration) {
|
||||||
return resolveSession.getInjector().getScopeProvider().getFileScope((JetFile) declaration.getContainingFile());
|
return resolveSession.getScopeProvider().getFileScope((JetFile) declaration.getContainingFile());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+2
-2
@@ -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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -101,7 +101,7 @@ public class LazyTypeParameterDescriptor extends AbstractLazyTypeParameterDescri
|
|||||||
}
|
}
|
||||||
|
|
||||||
private JetType resolveBoundType(@NotNull JetTypeReference boundTypeReference) {
|
private JetType resolveBoundType(@NotNull JetTypeReference boundTypeReference) {
|
||||||
return resolveSession.getInjector().getTypeResolver()
|
return resolveSession.getTypeResolver()
|
||||||
.resolveType(getContainingDeclaration().getScopeForClassHeaderResolution(), boundTypeReference,
|
.resolveType(getContainingDeclaration().getScopeForClassHeaderResolution(), boundTypeReference,
|
||||||
resolveSession.getTrace(), false);
|
resolveSession.getTrace(), false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -142,7 +142,7 @@ public class ResolveElementCache {
|
|||||||
}
|
}
|
||||||
else if (resolveElement instanceof JetImportDirective) {
|
else if (resolveElement instanceof JetImportDirective) {
|
||||||
JetImportDirective importDirective = (JetImportDirective) resolveElement;
|
JetImportDirective importDirective = (JetImportDirective) resolveElement;
|
||||||
JetScope scope = resolveSession.getInjector().getScopeProvider().getFileScope((JetFile) importDirective.getContainingFile());
|
JetScope scope = resolveSession.getScopeProvider().getFileScope((JetFile) importDirective.getContainingFile());
|
||||||
|
|
||||||
// Get all descriptors to force resolving all imports
|
// Get all descriptors to force resolving all imports
|
||||||
scope.getAllDescriptors();
|
scope.getAllDescriptors();
|
||||||
@@ -242,8 +242,7 @@ public class ResolveElementCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void propertyAdditionalResolve(ResolveSession resolveSession, final JetProperty jetProperty, BindingTrace trace, JetFile file) {
|
private static void propertyAdditionalResolve(ResolveSession resolveSession, final JetProperty jetProperty, BindingTrace trace, JetFile file) {
|
||||||
final JetScope propertyResolutionScope = resolveSession.getInjector().getScopeProvider().getResolutionScopeForDeclaration(
|
final JetScope propertyResolutionScope = resolveSession.getScopeProvider().getResolutionScopeForDeclaration(jetProperty);
|
||||||
jetProperty);
|
|
||||||
|
|
||||||
BodyResolveContextForLazy bodyResolveContext = new BodyResolveContextForLazy(
|
BodyResolveContextForLazy bodyResolveContext = new BodyResolveContextForLazy(
|
||||||
resolveSession.getStorageManager(),
|
resolveSession.getStorageManager(),
|
||||||
@@ -279,7 +278,7 @@ public class ResolveElementCache {
|
|||||||
) {
|
) {
|
||||||
BodyResolver bodyResolver = createBodyResolverWithEmptyContext(resolveSession.getStorageManager(),
|
BodyResolver bodyResolver = createBodyResolverWithEmptyContext(resolveSession.getStorageManager(),
|
||||||
trace, file, resolveSession.getModuleDescriptor());
|
trace, file, resolveSession.getModuleDescriptor());
|
||||||
JetScope scope = resolveSession.getInjector().getScopeProvider().getResolutionScopeForDeclaration(namedFunction);
|
JetScope scope = resolveSession.getScopeProvider().getResolutionScopeForDeclaration(namedFunction);
|
||||||
FunctionDescriptor functionDescriptor = (FunctionDescriptor) resolveSession.resolveToDescriptor(namedFunction);
|
FunctionDescriptor functionDescriptor = (FunctionDescriptor) resolveSession.resolveToDescriptor(namedFunction);
|
||||||
bodyResolver.resolveFunctionBody(trace, namedFunction, functionDescriptor, scope);
|
bodyResolver.resolveFunctionBody(trace, namedFunction, functionDescriptor, scope);
|
||||||
}
|
}
|
||||||
@@ -292,7 +291,7 @@ public class ResolveElementCache {
|
|||||||
) {
|
) {
|
||||||
BodyResolver bodyResolver = createBodyResolverWithEmptyContext(resolveSession.getStorageManager(),
|
BodyResolver bodyResolver = createBodyResolverWithEmptyContext(resolveSession.getStorageManager(),
|
||||||
trace, file, resolveSession.getModuleDescriptor());
|
trace, file, resolveSession.getModuleDescriptor());
|
||||||
JetScope scope = resolveSession.getInjector().getScopeProvider().getResolutionScopeForDeclaration(klass);
|
JetScope scope = resolveSession.getScopeProvider().getResolutionScopeForDeclaration(klass);
|
||||||
|
|
||||||
ClassDescriptor classDescriptor = (ClassDescriptor) resolveSession.resolveToDescriptor(klass);
|
ClassDescriptor classDescriptor = (ClassDescriptor) resolveSession.resolveToDescriptor(klass);
|
||||||
ConstructorDescriptor constructorDescriptor = classDescriptor.getUnsubstitutedPrimaryConstructor();
|
ConstructorDescriptor constructorDescriptor = classDescriptor.getUnsubstitutedPrimaryConstructor();
|
||||||
@@ -336,7 +335,7 @@ public class ResolveElementCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static JetScope getExpressionResolutionScope(@NotNull ResolveSession resolveSession, @NotNull JetExpression expression) {
|
private static JetScope getExpressionResolutionScope(@NotNull ResolveSession resolveSession, @NotNull JetExpression expression) {
|
||||||
ScopeProvider provider = resolveSession.getInjector().getScopeProvider();
|
ScopeProvider provider = resolveSession.getScopeProvider();
|
||||||
JetDeclaration parentDeclaration = PsiTreeUtil.getParentOfType(expression, JetDeclaration.class);
|
JetDeclaration parentDeclaration = PsiTreeUtil.getParentOfType(expression, JetDeclaration.class);
|
||||||
if (parentDeclaration == null) {
|
if (parentDeclaration == null) {
|
||||||
return provider.getFileScope((JetFile) expression.getContainingFile());
|
return provider.getFileScope((JetFile) expression.getContainingFile());
|
||||||
@@ -349,7 +348,7 @@ public class ResolveElementCache {
|
|||||||
resolveSession.getBindingContext(), "trace to resolve a member scope of expression", expression));
|
resolveSession.getBindingContext(), "trace to resolve a member scope of expression", expression));
|
||||||
|
|
||||||
if (BindingContextUtils.isExpressionWithValidReference(expression, resolveSession.getBindingContext())) {
|
if (BindingContextUtils.isExpressionWithValidReference(expression, resolveSession.getBindingContext())) {
|
||||||
QualifiedExpressionResolver qualifiedExpressionResolver = resolveSession.getInjector().getQualifiedExpressionResolver();
|
QualifiedExpressionResolver qualifiedExpressionResolver = resolveSession.getQualifiedExpressionResolver();
|
||||||
|
|
||||||
// In some type declaration
|
// In some type declaration
|
||||||
if (expression.getParent() instanceof JetUserType) {
|
if (expression.getParent() instanceof JetUserType) {
|
||||||
|
|||||||
Reference in New Issue
Block a user