Classifier lookup fixed
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user