Tests with SAM conversions.

Original commit: 21105fcae4
This commit is contained in:
Evgeny Gerashchenko
2014-10-24 16:28:32 +04:00
parent 6447c4183d
commit e6dd4fac0c
13 changed files with 97 additions and 1 deletions
@@ -327,7 +327,7 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({})
@InnerTestClasses({JavaUsedInKotlin.SamConversions.class})
@RunWith(JUnit3RunnerWithInners.class)
public static class JavaUsedInKotlin extends AbstractIncrementalJpsTest {
public void testAllFilesPresentInJavaUsedInKotlin() throws Exception {
@@ -376,6 +376,28 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({})
@RunWith(JUnit3RunnerWithInners.class)
public static class SamConversions extends AbstractIncrementalJpsTest {
public void testAllFilesPresentInSamConversions() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions"), Pattern.compile("^([^\\.]+)$"), true);
}
@TestMetadata("methodAdded")
public void testMethodAdded() throws Exception {
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions/methodAdded/");
doTest(fileName);
}
@TestMetadata("methodSignatureChanged")
public void testMethodSignatureChanged() throws Exception {
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/samConversions/methodSignatureChanged/");
doTest(fileName);
}
}
}
@TestMetadata("jps-plugin/testData/incremental/withJava/kotlinUsedInJava")
@@ -0,0 +1,3 @@
public interface SamInterface {
Object run();
}
@@ -0,0 +1,4 @@
public interface SamInterface {
Object run();
Object walk();
}
@@ -0,0 +1,23 @@
Cleaning output files:
out/production/module/SamInterface.class
End of files
Compiling files:
src/SamInterface.java
End of files
Cleaning output files:
out/production/module/_DefaultPackage$sam$SamInterface$*.class
out/production/module/_DefaultPackage$usageWithFunctionExpression$*$usageWithFunctionExpression$a$1.class
out/production/module/_DefaultPackage$usageWithFunctionExpression$*.class
out/production/module/_DefaultPackage$usageWithFunctionLiteral$*$usageWithFunctionLiteral$1.class
out/production/module/_DefaultPackage$usageWithFunctionLiteral$*.class
out/production/module/_DefaultPackage.class
End of files
Compiling files:
src/usageWithFunctionExpression.kt
src/usageWithFunctionLiteral.kt
End of files
COMPILATION FAILED
Kotlin:ERROR:Expression 'SamInterface' cannot be invoked as a function. The function invoke() is not found
Kotlin:ERROR:Please specify constructor invocation; classifier 'SamInterface' does not have a class object
Kotlin:ERROR:Expression 'SamInterface' cannot be invoked as a function. The function invoke() is not found
Kotlin:ERROR:Please specify constructor invocation; classifier 'SamInterface' does not have a class object
@@ -0,0 +1,3 @@
fun notUsage() {
println("!")
}
@@ -0,0 +1,4 @@
fun usageWithFunctionExpression() {
val a = { ":)" }
SamInterface(a)
}
@@ -0,0 +1,3 @@
fun usageWithFunctionLiteral() {
SamInterface { ":)" }
}
@@ -0,0 +1,3 @@
public interface SamInterface {
Object run();
}
@@ -0,0 +1,3 @@
public interface SamInterface {
String run();
}
@@ -0,0 +1,18 @@
Cleaning output files:
out/production/module/SamInterface.class
End of files
Compiling files:
src/SamInterface.java
End of files
Cleaning output files:
out/production/module/_DefaultPackage$sam$SamInterface$*.class
out/production/module/_DefaultPackage$usageWithFunctionExpression$*$usageWithFunctionExpression$a$1.class
out/production/module/_DefaultPackage$usageWithFunctionExpression$*.class
out/production/module/_DefaultPackage$usageWithFunctionLiteral$*$usageWithFunctionLiteral$1.class
out/production/module/_DefaultPackage$usageWithFunctionLiteral$*.class
out/production/module/_DefaultPackage.class
End of files
Compiling files:
src/usageWithFunctionExpression.kt
src/usageWithFunctionLiteral.kt
End of files
@@ -0,0 +1,3 @@
fun notUsage() {
println("!")
}
@@ -0,0 +1,4 @@
fun usageWithFunctionExpression() {
val a = { ":)" }
SamInterface(a)
}
@@ -0,0 +1,3 @@
fun usageWithFunctionLiteral() {
SamInterface { ":)" }
}