From d2fa6abf4a383ad13a52c068883691b369790479 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 3 Sep 2012 18:49:33 +0400 Subject: [PATCH] Refactor method - remove null value warnings --- .../resolve/lazy/ResolveSessionUtils.java | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java index 9e46b39a7b3..51ef3b3aef5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java @@ -138,41 +138,45 @@ public class ResolveSessionUtils { DelegatingBindingTrace trace = new DelegatingBindingTrace(resolveSession.getBindingContext()); if (expression instanceof JetReferenceExpression) { + QualifiedExpressionResolver qualifiedExpressionResolver = resolveSession.getInjector().getQualifiedExpressionResolver(); + // In some type declaration if (expression.getParent() instanceof JetUserType) { JetUserType qualifier = ((JetUserType) expression.getParent()).getQualifier(); if (qualifier != null) { - Collection descriptors = resolveSession.getInjector().getQualifiedExpressionResolver() + Collection descriptors = qualifiedExpressionResolver .lookupDescriptorsForUserType(qualifier, getExpressionOuterScope(resolveSession, expression), trace); for (DeclarationDescriptor descriptor : descriptors) { if (descriptor instanceof LazyPackageDescriptor) { return ((LazyPackageDescriptor) descriptor).getMemberScope(); } - } } } // Inside import if (PsiTreeUtil.getParentOfType(expression, JetImportDirective.class, false) != null) { + NamespaceDescriptor rootPackage = resolveSession.getPackageDescriptorByFqName(FqName.ROOT); + assert rootPackage != null; + if (expression.getParent() instanceof JetDotQualifiedExpression) { JetExpression element = ((JetDotQualifiedExpression) expression.getParent()).getReceiverExpression(); + String name = ((JetFile) expression.getContainingFile()).getPackageName(); - NamespaceDescriptor filePackage = resolveSession.getPackageDescriptorByFqName( - new FqName(((JetFile) expression.getContainingFile()).getPackageName())); - - NamespaceDescriptor rootPackage = resolveSession.getPackageDescriptorByFqName(FqName.ROOT); + NamespaceDescriptor filePackage = name != null ? resolveSession.getPackageDescriptorByFqName(new FqName(name)) : rootPackage; + assert filePackage != null : "File package should be already resolved and be found"; + JetScope scope = filePackage.getMemberScope(); Collection descriptors; if (element instanceof JetDotQualifiedExpression) { - descriptors = resolveSession.getInjector().getQualifiedExpressionResolver().lookupDescriptorsForQualifiedExpression( - (JetDotQualifiedExpression) element, rootPackage.getMemberScope(), filePackage.getMemberScope(), trace, false, false); + descriptors = qualifiedExpressionResolver.lookupDescriptorsForQualifiedExpression( + (JetDotQualifiedExpression) element, rootPackage.getMemberScope(), scope, trace, false, false); } else { - descriptors = resolveSession.getInjector().getQualifiedExpressionResolver().lookupDescriptorsForSimpleNameReference( - (JetSimpleNameExpression) element, rootPackage.getMemberScope(), filePackage.getMemberScope(), trace, false, false, false); + descriptors = qualifiedExpressionResolver.lookupDescriptorsForSimpleNameReference( + (JetSimpleNameExpression) element, rootPackage.getMemberScope(), scope, trace, false, false, false); } for (DeclarationDescriptor descriptor : descriptors) { @@ -182,7 +186,7 @@ public class ResolveSessionUtils { } } else { - return resolveSession.getPackageDescriptorByFqName(FqName.ROOT).getMemberScope(); + return rootPackage.getMemberScope(); } }