diff --git a/idea/testData/codegen/extensionFunctions/generic.jet b/idea/testData/codegen/extensionFunctions/generic.jet new file mode 100644 index 00000000000..bc3efc03f14 --- /dev/null +++ b/idea/testData/codegen/extensionFunctions/generic.jet @@ -0,0 +1,21 @@ +import java.util.* + +fun ArrayList.findAll(predicate: {(T) : Boolean}): ArrayList { + val result = ArrayList() + for(val t in this) { + if (predicate(t)) result.add(t) + } + return result +} + + +fun box(): String { + val list: ArrayList = ArrayList() + list.add("Prague") + list.add("St.Petersburg") + list.add("Moscow") + list.add("Munich") + + val m: ArrayList = list.findAll({(name: String) => name.startsWith("M")}) + return if (m.size() == 2) "OK" else "fail" +} diff --git a/idea/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java b/idea/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java index 3305c6f551e..46a00736ddc 100644 --- a/idea/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java +++ b/idea/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java @@ -23,4 +23,8 @@ public class ExtensionFunctionsTest extends CodegenTestCase { Method foo = generateFunction("foo"); assertThrows(foo, Exception.class, null, new StringBuilder()); } + + public void _testGeneric() throws Exception { + blackBoxFile("extensionFunctions/generic.jet"); + } }