@Override protected ExpectedResolveData getExpectedResolveData() { Project project = getProject(); JetStandardLibrary lib = JetStandardLibrary.getInstance(); Map<String, DeclarationDescriptor> nameToDescriptor = new HashMap<String, DeclarationDescriptor>(); nameToDescriptor.put( "kotlin::Int.plus(Int)", standardFunction(lib.getInt(), "plus", lib.getIntType())); FunctionDescriptor descriptorForGet = standardFunction( lib.getArray(), Collections.singletonList(new TypeProjection(lib.getIntType())), "get", lib.getIntType()); nameToDescriptor.put("kotlin::Array.get(Int)", descriptorForGet.getOriginal()); nameToDescriptor.put( "kotlin::Int.compareTo(Double)", standardFunction(lib.getInt(), "compareTo", lib.getDoubleType())); @NotNull FunctionDescriptor descriptorForSet = standardFunction( lib.getArray(), Collections.singletonList(new TypeProjection(lib.getIntType())), "set", lib.getIntType(), lib.getIntType()); nameToDescriptor.put("kotlin::Array.set(Int, Int)", descriptorForSet.getOriginal()); Map<String, PsiElement> nameToDeclaration = new HashMap<String, PsiElement>(); 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); 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")); nameToDeclaration.put("java::java.lang.Object", findClass("java.lang.Object")); 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.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) { @Override protected JetFile createJetFile(String fileName, String text) { return createCheckAndReturnPsiFile(fileName, text); } }; }