Basic overload resolution supported
This commit is contained in:
@@ -36,18 +36,25 @@ public class JetResolveTest extends ExtensibleResolveTestCase {
|
||||
nameToDescriptor.put("std::Array.set(Int, Int)", descriptorForSet.getOriginal());
|
||||
|
||||
Map<String,PsiElement> nameToDeclaration = new HashMap<String, PsiElement>();
|
||||
nameToDeclaration.put("java::java.util.Collections.emptyList()", findMethod(findClass("java.util.Collections"), "emptyList"));
|
||||
nameToDeclaration.put("java::java.util.Collections", findClass("java.util.Collections"));
|
||||
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"));
|
||||
nameToDeclaration.put("java::java", findPackage("java"));
|
||||
nameToDeclaration.put("java::java.util", findPackage("java.util"));
|
||||
nameToDeclaration.put("java::java.lang", findPackage("java.lang"));
|
||||
nameToDeclaration.put("java::java.lang.Object", findClass("java.lang.Object"));
|
||||
nameToDeclaration.put("java::java.lang.System", findClass("java.lang.System"));
|
||||
PsiClass java_lang_System = findClass("java.lang.System");
|
||||
nameToDeclaration.put("java::java.lang.System", java_lang_System);
|
||||
PsiMethod[] methods = findClass("java.io.PrintStream").findMethodsByName("print", true);
|
||||
nameToDeclaration.put("java::java.io.PrintStream.print(Object)", methods[8]);
|
||||
nameToDeclaration.put("java::java.io.PrintStream.print(Int)", methods[2]);
|
||||
nameToDeclaration.put("java::java.lang.System.out", findClass("java.lang.System").findFieldByName("out", true));
|
||||
nameToDeclaration.put("java::java.io.PrintStream.print(char[])", methods[6]);
|
||||
nameToDeclaration.put("java::java.io.PrintStream.print(Double)", methods[5]);
|
||||
nameToDeclaration.put("java::java.lang.System.out", java_lang_System.findFieldByName("out", true));
|
||||
PsiClass java_lang_Number = findClass("java.lang.Number");
|
||||
nameToDeclaration.put("java::java.lang.Number", java_lang_Number);
|
||||
nameToDeclaration.put("java::java.lang.Number.intValue()", java_lang_Number.findMethodsByName("intValue", true)[0]);
|
||||
|
||||
return new ExpectedResolveData(nameToDescriptor, nameToDeclaration);
|
||||
}
|
||||
|
||||
@@ -342,7 +342,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
|
||||
assertType("new Functions<String>().f()", "Unit");
|
||||
assertType("new Functions<String>().f(1)", "Int");
|
||||
assertType("new Functions<String>().f(1d)", (String) null);
|
||||
assertType("new Functions<Double>().f(())", "Double");
|
||||
assertType("new Functions<Double>().f((1, 1))", "Double");
|
||||
assertType("new Functions<Double>().f(1d)", "Any");
|
||||
assertType("new Functions<Byte>().f<String>(\"\")", "Byte");
|
||||
assertType("new Functions<Byte>().f<String>(1)", (String) null);
|
||||
@@ -418,14 +418,14 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
|
||||
for (String type : types) {
|
||||
subtypes.add(makeType(type));
|
||||
}
|
||||
Type result = JetTypeChecker.INSTANCE.commonSupertype(subtypes);
|
||||
Type result = semanticServices.getTypeChecker().commonSupertype(subtypes);
|
||||
assertTrue(result + " != " + expected, TypeImpl.equalTypes(result, makeType(expected)));
|
||||
}
|
||||
|
||||
private void assertSubtypingRelation(String type1, String type2, boolean expected) {
|
||||
Type typeNode1 = makeType(type1);
|
||||
Type typeNode2 = makeType(type2);
|
||||
boolean result = JetTypeChecker.INSTANCE.isSubtypeOf(
|
||||
boolean result = semanticServices.getTypeChecker().isSubtypeOf(
|
||||
typeNode1,
|
||||
typeNode2);
|
||||
String modifier = expected ? "not " : "";
|
||||
@@ -436,14 +436,14 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
|
||||
JetExpression jetExpression = JetChangeUtil.createExpression(getProject(), expression);
|
||||
assertTrue(
|
||||
expression + " must be convertible to " + type,
|
||||
JetTypeChecker.INSTANCE.isConvertibleTo(jetExpression, type));
|
||||
semanticServices.getTypeChecker().isConvertibleTo(jetExpression, type));
|
||||
}
|
||||
|
||||
private void assertNotConvertibleTo(String expression, Type type) {
|
||||
JetExpression jetExpression = JetChangeUtil.createExpression(getProject(), expression);
|
||||
assertFalse(
|
||||
expression + " must not be convertible to " + type,
|
||||
JetTypeChecker.INSTANCE.isConvertibleTo(jetExpression, type));
|
||||
semanticServices.getTypeChecker().isConvertibleTo(jetExpression, type));
|
||||
}
|
||||
|
||||
private void assertType(String expression, Type expectedType) {
|
||||
@@ -509,7 +509,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
|
||||
"fun f() : Unit {} " +
|
||||
"fun f(a : Int) : Int {} " +
|
||||
"fun f(a : T) : Any {} " +
|
||||
"fun f(a : Unit) : T {} " +
|
||||
"fun f(a : (Int, Int)) : T {} " +
|
||||
"fun f<E>(a : E) : T {} " +
|
||||
"}"
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user