Complete resolve for array access expressions
This commit is contained in:
@@ -3,6 +3,7 @@ package org.jetbrains.jet.resolve;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.jet.lang.ErrorHandler;
|
||||
import org.jetbrains.jet.lang.JetSemanticServices;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
@@ -79,7 +80,7 @@ public class ExpectedResolveData {
|
||||
JetSemanticServices semanticServices = JetSemanticServices.createSemanticServices(file.getProject(), new ErrorHandler() {
|
||||
@Override
|
||||
public void unresolvedReference(JetReferenceExpression referenceExpression) {
|
||||
unresolvedReferences.add(referenceExpression.getReferencedNameElement());
|
||||
unresolvedReferences.add(referenceExpression);
|
||||
}
|
||||
});
|
||||
JetStandardLibrary lib = semanticServices.getStandardLibrary();
|
||||
@@ -105,7 +106,8 @@ public class ExpectedResolveData {
|
||||
PsiElement element = file.findElementAt(position);
|
||||
|
||||
if ("!".equals(name)) {
|
||||
assertTrue("Must have been unresolved: " + element, unresolvedReferences.contains(element));
|
||||
JetReferenceExpression referenceExpression = PsiTreeUtil.getParentOfType(element, JetReferenceExpression.class);
|
||||
assertTrue("Must have been unresolved: " + referenceExpression.getText(), unresolvedReferences.contains(referenceExpression));
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -141,8 +143,9 @@ public class ExpectedResolveData {
|
||||
actualName = actual.toString();
|
||||
}
|
||||
}
|
||||
assertNotNull(reference);
|
||||
assertSame(
|
||||
"Reference `" + name + "`" + reference.getReferencedName() + " at " + reference.getTextOffset() + " is resolved into " + actualName + ".",
|
||||
"Reference `" + name + "`" + reference.getText() + " at " + reference.getTextOffset() + " is resolved into " + actualName + ".",
|
||||
expected, actual);
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,10 @@ public class JetResolveTest extends ExtensibleResolveTestCase {
|
||||
PsiClass java_util_Collections = findClass("java.util.Collections");
|
||||
nameToDeclaration.put("java::java.util.Collections.emptyList()", findMethod(java_util_Collections, "emptyList"));
|
||||
nameToDeclaration.put("java::java.util.Collections", java_util_Collections);
|
||||
nameToDeclaration.put("java::java.util.List", findClass("java.util.List"));
|
||||
PsiClass java_util_List = findClass("java.util.List");
|
||||
nameToDeclaration.put("java::java.util.List", java_util_List);
|
||||
nameToDeclaration.put("java::java.util.List.set()", java_util_List.findMethodsByName("set", true)[0]);
|
||||
nameToDeclaration.put("java::java.util.List.get()", java_util_List.findMethodsByName("get", true)[0]);
|
||||
nameToDeclaration.put("java::java", findPackage("java"));
|
||||
nameToDeclaration.put("java::java.util", findPackage("java.util"));
|
||||
nameToDeclaration.put("java::java.lang", findPackage("java.lang"));
|
||||
|
||||
Reference in New Issue
Block a user