KT-5524 Support [platformName] annotation for class members

@platformName is now supported for final non-overriding class member functions
(including property accessors).
Front-end provides diagnostics for inapplicable annotation cases.
Code generation updated:
- ignore kotlin.platform.platformName annotation for Java class methods;
- bridges generation generates proper JVM declarations in case of methods renamed with @platformName.
@platformName-related tests added.

#KT-5524 Fixed
This commit is contained in:
dnpetrov
2015-06-04 15:48:10 +03:00
parent 0bf249d6ae
commit 50ea67ba13
16 changed files with 392 additions and 30 deletions
@@ -59,6 +59,12 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege
doTestWithJava(fileName);
}
@TestMetadata("platformName")
public void testPlatformName() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/platformName/");
doTestWithJava(fileName);
}
@TestMetadata("referenceToJavaFieldOfKotlinSubclass")
public void testReferenceToJavaFieldOfKotlinSubclass() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/referenceToJavaFieldOfKotlinSubclass/");
@@ -2194,6 +2194,12 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode
doTestWithStdlib(fileName);
}
@TestMetadata("classMembers.kt")
public void testClassMembers() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/platformNames/classMembers.kt");
doTestWithStdlib(fileName);
}
@TestMetadata("functionName.kt")
public void testFunctionName() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/platformNames/functionName.kt");