Classifier lookup fixed

This commit is contained in:
Andrey Breslav
2011-03-25 22:56:27 +03:00
parent 065e0f3bf9
commit 3e2b41a225
23 changed files with 143 additions and 196 deletions
@@ -74,6 +74,8 @@ public class ExpectedResolveData {
document.replaceString(start, matcher.end(), "");
text = document.getText();
}
// System.out.println("text = " + text);
}
public void checkResult(JetFile file) {
@@ -133,7 +135,7 @@ public class ExpectedResolveData {
JetType actualType = bindingContext.resolveTypeReference(typeReference);
assertNotNull("Type " + name + " not resolved for reference " + name, actualType);
ClassDescriptor expectedClass = lib.getLibraryScope().getClass(name.substring(5));
ClassifierDescriptor expectedClass = lib.getLibraryScope().getClassifier(name.substring(5));
assertNotNull("Expected class not found: " + name);
assertSame("Type resolution mismatch: ", expectedClass.getTypeConstructor(), actualType.getConstructor());
continue;
@@ -164,7 +166,7 @@ public class ExpectedResolveData {
JetType expressionType = bindingContext.getExpressionType(expression);
TypeConstructor expectedTypeConstructor;
if (typeName.startsWith("std::")) {
ClassDescriptor expectedClass = lib.getLibraryScope().getClass(typeName.substring(5));
ClassifierDescriptor expectedClass = lib.getLibraryScope().getClassifier(typeName.substring(5));
assertNotNull("Expected class not found: " + typeName, expectedClass);
expectedTypeConstructor = expectedClass.getTypeConstructor();
@@ -154,4 +154,8 @@ public class JetResolveTest extends ExtensibleResolveTestCase {
doTest("/resolve/PrimaryConstructors.jet", true, true);
}
public void testClassifiers() throws Exception {
doTest("/resolve/Classifiers.jet", true, true);
}
}
@@ -520,7 +520,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
public JetScope BASIC_SCOPE = new JetScopeAdapter(library.getLibraryScope()) {
@Override
public ClassDescriptor getClass(@NotNull String name) {
public ClassifierDescriptor getClassifier(@NotNull String name) {
if (CLASSES.isEmpty()) {
for (String classDeclaration : CLASS_DECLARATIONS) {
JetClass classElement = JetChangeUtil.createClass(getProject(), classDeclaration);
@@ -532,7 +532,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
if (classDescriptor != null) {
return classDescriptor;
}
return super.getClass(name);
return super.getClassifier(name);
}
@NotNull