diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/JetSemanticServices.java b/compiler/frontend/src/org/jetbrains/jet/lang/JetSemanticServices.java index 2d4c059a84f..e05beea88c9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/JetSemanticServices.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/JetSemanticServices.java @@ -9,8 +9,6 @@ import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; /** - * Stores a number of semantic services. Should be created once for each kotlin project. - * * @author abreslav */ public class JetSemanticServices { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetTypeReference.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetTypeReference.java index fca01a74182..8dc33d8aa50 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetTypeReference.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetTypeReference.java @@ -39,15 +39,6 @@ public class JetTypeReference extends JetElement { return findChildByClass(JetTypeElement.class); } - /** - * Will return not null for type references with internal user type. - * There could be other JetTypeReferences, see parsing of in {@link org.jetbrains.jet.lang.parsing.JetParsing} - */ - @Nullable - public JetUserType getUserType() { - return findChildByClass(JetUserType.class); - } - public List getAnnotations() { List answer = null; for (JetAnnotation annotation : getAttributeAnnotations()) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java index 2061bf240d5..5e8557fd62a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java @@ -49,7 +49,7 @@ public interface BindingContext { WritableSlice AUTO_CREATED_IT = Slices.createSimpleSetSlice(); WritableSlice VARIABLE_ASSIGNMENT = Slices.createSimpleSlice(); - /** Was type of current expression has been already resolved */ + /** Has type of current expression has been already resolved */ WritableSlice PROCESSED = Slices.createSimpleSetSlice(); WritableSlice STATEMENT = Slices.createRemovableSetSlice(); WritableSlice DELEGATED = Slices.createRemovableSetSlice(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java index f3694bf4ec4..8896830d305 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java @@ -50,12 +50,6 @@ public class TypeResolver { JetType type = resolveTypeElement(scope, annotations, typeElement, false); trace.record(BindingContext.TYPE, typeReference, type); - final JetUserType jetUserType = typeReference.getUserType(); - if (jetUserType != null) { - final JetSimpleNameExpression referenceExpression = jetUserType.getReferenceExpression(); - trace.record(BindingContext.RESOLUTION_SCOPE, referenceExpression, scope); - } - return type; } @@ -278,6 +272,8 @@ public class TypeResolver { ClassifierDescriptor classifierDescriptor; if (userType.isAbsoluteInRootNamespace()) { classifierDescriptor = JetModuleUtil.getRootNamespaceType(userType).getMemberScope().getClassifier(referencedName); + trace.record(BindingContext.RESOLUTION_SCOPE, userType.getReferenceExpression(), + JetModuleUtil.getRootNamespaceType(userType).getMemberScope()); } else { JetUserType qualifier = userType.getQualifier(); @@ -288,7 +284,9 @@ public class TypeResolver { return ErrorUtils.getErrorClass(); } classifierDescriptor = scope.getClassifier(referencedName); + trace.record(BindingContext.RESOLUTION_SCOPE, userType.getReferenceExpression(), scope); } + return classifierDescriptor; } diff --git a/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java b/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java index 49cead70134..a4ccddf8fa0 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java +++ b/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java @@ -78,7 +78,6 @@ class JetSimpleNameReference extends JetPsiReference { private Object[] collectLookupElements(BindingContext bindingContext, JetScope scope) { List result = Lists.newArrayList(); for (final DeclarationDescriptor descriptor : scope.getAllDescriptors()) { - PsiElement declaration = bindingContext.get(BindingContext.DESCRIPTOR_TO_DECLARATION, descriptor.getOriginal()); LookupElementBuilder element = LookupElementBuilder.create(descriptor.getName()); String typeText = ""; String tailText = ""; @@ -107,9 +106,12 @@ class JetSimpleNameReference extends JetPsiReference { typeText = DescriptorRenderer.TEXT.render(descriptor); } element = element.setTailText(tailText, tailTextGrayed).setTypeText(typeText); + + PsiElement declaration = bindingContext.get(BindingContext.DESCRIPTOR_TO_DECLARATION, descriptor.getOriginal()); if (declaration != null) { element = element.setIcon(declaration.getIcon(Iconable.ICON_FLAG_OPEN | Iconable.ICON_FLAG_VISIBILITY)); } + result.add(element); } return result.toArray();