Merge branch 'master' of git.labs.intellij.net:jet
This commit is contained in:
@@ -108,16 +108,9 @@ public class ExpectedResolveData {
|
||||
|
||||
if ("!".equals(name)) {
|
||||
JetReferenceExpression referenceExpression = PsiTreeUtil.getParentOfType(element, JetReferenceExpression.class);
|
||||
JetExpression statement = referenceExpression;
|
||||
while (true) {
|
||||
PsiElement parent = statement.getParent();
|
||||
if (!(parent instanceof JetExpression)) break;
|
||||
if (parent instanceof JetBlockExpression) break;
|
||||
statement = (JetExpression) parent;
|
||||
}
|
||||
assertTrue(
|
||||
"Must have been unresolved: " + referenceExpression.getText() +
|
||||
" in " + statement.getText() +
|
||||
"Must have been unresolved: " +
|
||||
renderReferenceInContext(referenceExpression) +
|
||||
" but was resolved to " + DescriptorUtil.renderPresentableText(bindingContext.resolveReferenceExpression(referenceExpression)),
|
||||
unresolvedReferences.contains(referenceExpression));
|
||||
continue;
|
||||
@@ -157,7 +150,7 @@ public class ExpectedResolveData {
|
||||
}
|
||||
assertNotNull(reference);
|
||||
assertSame(
|
||||
"Reference `" + name + "`" + reference.getText() + " at " + reference.getTextOffset() + " is resolved into " + actualName + ".",
|
||||
"Reference `" + name + "`" + renderReferenceInContext(reference) + " is resolved into " + actualName + ".",
|
||||
expected, actual);
|
||||
}
|
||||
|
||||
@@ -196,12 +189,25 @@ public class ExpectedResolveData {
|
||||
}
|
||||
}
|
||||
|
||||
assertNotNull(expression.getText(), expressionType);
|
||||
assertNotNull(expression.getText() + " type is null", expressionType);
|
||||
assertSame("At " + position + ": ", expectedTypeConstructor, expressionType.getConstructor());
|
||||
}
|
||||
}
|
||||
|
||||
private <T> T getAncestorOfType(Class<T> type, PsiElement element) {
|
||||
private static String renderReferenceInContext(JetReferenceExpression referenceExpression) {
|
||||
JetExpression statement = referenceExpression;
|
||||
while (true) {
|
||||
PsiElement parent = statement.getParent();
|
||||
if (!(parent instanceof JetExpression)) break;
|
||||
if (parent instanceof JetBlockExpression) break;
|
||||
statement = (JetExpression) parent;
|
||||
}
|
||||
JetDeclaration declaration = PsiTreeUtil.getParentOfType(referenceExpression, JetDeclaration.class);
|
||||
return referenceExpression.getText() +
|
||||
" in " + statement.getText() + (declaration == null ? "" : " in " + declaration.getText());
|
||||
}
|
||||
|
||||
private static <T> T getAncestorOfType(Class<T> type, PsiElement element) {
|
||||
while (element != null && !type.isInstance(element)) {
|
||||
element = element.getParent();
|
||||
}
|
||||
|
||||
@@ -150,4 +150,8 @@ public class JetResolveTest extends ExtensibleResolveTestCase {
|
||||
doTest("/resolve/Projections.jet", true, true);
|
||||
}
|
||||
|
||||
public void testPrimaryConstructors() throws Exception {
|
||||
doTest("/resolve/PrimaryConstructors.jet", true, true);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user