Make additional resolution work for descriptors

This commit is contained in:
Nikolay Krasko
2013-07-12 15:32:01 +04:00
parent 51f690ed4d
commit f8e3275861
4 changed files with 17 additions and 27 deletions
@@ -120,9 +120,6 @@ public class ResolveSessionUtils {
@NotNull ResolveSession resolveSession,
@NotNull JetElement jetElement
) {
// All additional resolve should be done to separate trace
DelegatingBindingTrace trace = new DelegatingBindingTrace(resolveSession.getBindingContext(), "trace to resolve element", jetElement);
@SuppressWarnings("unchecked")
PsiElement resolveElement = JetPsiUtil.getTopmostParentOfTypes(jetElement,
JetNamedFunction.class, JetClassInitializer.class,
@@ -132,6 +129,9 @@ public class ResolveSessionUtils {
JetNamespaceHeader.class);
if (resolveElement != null) {
// All additional resolve should be done to separate trace
DelegatingBindingTrace trace = new DelegatingBindingTrace(resolveSession.getBindingContext(), "trace to resolve element", jetElement);
JetFile file = (JetFile) jetElement.getContainingFile();
if (resolveElement instanceof JetNamedFunction) {
@@ -176,7 +176,13 @@ public class ResolveSessionUtils {
return trace.getBindingContext();
}
return trace.getBindingContext();
JetDeclaration declaration = PsiTreeUtil.getParentOfType(jetElement, JetDeclaration.class, false);
if (declaration != null) {
// Activate descriptor resolution
resolveSession.resolveToDescriptor(declaration);
}
return resolveSession.getBindingContext();
}
private static void namespaceRefAdditionalResolve(