Allow to import members from object by name

Wrap object members so they do not require dispatch receiver
Hack jvm backend to make it work
This commit is contained in:
Pavel V. Talanov
2015-10-02 16:01:09 +03:00
parent 507293e1ff
commit 37d5c4b223
22 changed files with 713 additions and 45 deletions
@@ -6627,6 +6627,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("ImportFromCompanionObject.kt")
public void testImportFromCompanionObject() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/imports/ImportFromCompanionObject.kt");
doTest(fileName);
}
@TestMetadata("ImportFromCurrentWithDifferentName.kt")
public void testImportFromCurrentWithDifferentName() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/imports/ImportFromCurrentWithDifferentName.kt");
@@ -5697,6 +5697,18 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/objects/useAnonymousObjectAsIterator.kt");
doTest(fileName);
}
@TestMetadata("useImportedMember.kt")
public void testUseImportedMember() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/objects/useImportedMember.kt");
doTest(fileName);
}
@TestMetadata("useImportedMemberFromCompanion.kt")
public void testUseImportedMemberFromCompanion() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/objects/useImportedMemberFromCompanion.kt");
doTest(fileName);
}
}
@TestMetadata("compiler/testData/codegen/box/operatorConventions")
@@ -2473,6 +2473,12 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode
doTestWithStdlib(fileName);
}
@TestMetadata("importStaticMemberFromObject.kt")
public void testImportStaticMemberFromObject() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/platformStatic/importStaticMemberFromObject.kt");
doTestWithStdlib(fileName);
}
@TestMetadata("inline.kt")
public void testInline() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/platformStatic/inline.kt");