Implement kotlin.jvm.overloads annotation for generating all overloads of a method that has default parameter values.

#KT-2095 Fixed
This commit is contained in:
Dmitry Jemerov
2015-03-27 18:48:03 +01:00
parent c1c9d3b090
commit e15b984232
14 changed files with 321 additions and 46 deletions
@@ -46,6 +46,7 @@ import java.util.regex.Pattern;
BlackBoxWithStdlibCodegenTestGenerated.HashPMap.class,
BlackBoxWithStdlibCodegenTestGenerated.Intrinsics.class,
BlackBoxWithStdlibCodegenTestGenerated.JdkAnnotations.class,
BlackBoxWithStdlibCodegenTestGenerated.JvmOverloads.class,
BlackBoxWithStdlibCodegenTestGenerated.LazyCodegen.class,
BlackBoxWithStdlibCodegenTestGenerated.LocalFunInLambda.class,
BlackBoxWithStdlibCodegenTestGenerated.MultiDeclForArray.class,
@@ -1640,6 +1641,51 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode
}
}
@TestMetadata("compiler/testData/codegen/boxWithStdlib/jvmOverloads")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class JvmOverloads extends AbstractBlackBoxCodegenTest {
public void testAllFilesPresentInJvmOverloads() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxWithStdlib/jvmOverloads"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("companionObject.kt")
public void testCompanionObject() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/jvmOverloads/companionObject.kt");
doTestWithStdlib(fileName);
}
@TestMetadata("doubleParameters.kt")
public void testDoubleParameters() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/jvmOverloads/doubleParameters.kt");
doTestWithStdlib(fileName);
}
@TestMetadata("extensionMethod.kt")
public void testExtensionMethod() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/jvmOverloads/extensionMethod.kt");
doTestWithStdlib(fileName);
}
@TestMetadata("multipleDefaultParameters.kt")
public void testMultipleDefaultParameters() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/jvmOverloads/multipleDefaultParameters.kt");
doTestWithStdlib(fileName);
}
@TestMetadata("nonDefaultParameter.kt")
public void testNonDefaultParameter() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/jvmOverloads/nonDefaultParameter.kt");
doTestWithStdlib(fileName);
}
@TestMetadata("simple.kt")
public void testSimple() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/jvmOverloads/simple.kt");
doTestWithStdlib(fileName);
}
}
@TestMetadata("compiler/testData/codegen/boxWithStdlib/lazyCodegen")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({