diff --git a/idea/src/org/jetbrains/jet/plugin/structureView/KotlinStructureElementPresentation.java b/idea/src/org/jetbrains/jet/plugin/structureView/KotlinStructureElementPresentation.java index aae9815bba4..ba3c83fe861 100644 --- a/idea/src/org/jetbrains/jet/plugin/structureView/KotlinStructureElementPresentation.java +++ b/idea/src/org/jetbrains/jet/plugin/structureView/KotlinStructureElementPresentation.java @@ -151,7 +151,8 @@ class KotlinStructureElementPresentation implements ColoredItemPresentation, Loc return withRightArrow(ONLY_NAMES_WITH_SHORT_TYPES.render(firstOverriding.getContainingDeclaration())); } - throw new IllegalStateException("At least one element should be returned"); + // Location can be missing when base in synthesized + return null; } private static String withRightArrow(String str) { diff --git a/idea/testData/structureView/fileStructure/InheritedSAMConversion.Data.java b/idea/testData/structureView/fileStructure/InheritedSAMConversion.Data.java new file mode 100644 index 00000000000..7c44096e4a9 --- /dev/null +++ b/idea/testData/structureView/fileStructure/InheritedSAMConversion.Data.java @@ -0,0 +1,9 @@ +public class TestSAM { + public interface SamClass { + void foo(); + } + + void foo(SamClass samClass) { + + } +} diff --git a/idea/testData/structureView/fileStructure/InheritedSAMConversion.after b/idea/testData/structureView/fileStructure/InheritedSAMConversion.after new file mode 100644 index 00000000000..97f0777cc4c --- /dev/null +++ b/idea/testData/structureView/fileStructure/InheritedSAMConversion.after @@ -0,0 +1,14 @@ +-InheritedSAMConversion.kt + -KotlinTest + clone(): Any location=→Object + equals(Any?): Boolean location=→Object + finalize(): Unit location=→Object + foo((() -> Unit)?): Unit + getClass(): Class location=→Object + hashCode(): Int location=→Object + notify(): Unit location=→Object + notifyAll(): Unit location=→Object + toString(): String location=→Object + wait(): Unit location=→Object + wait(Long): Unit location=→Object + wait(Long, Int): Unit location=→Object diff --git a/idea/testData/structureView/fileStructure/InheritedSAMConversion.kt b/idea/testData/structureView/fileStructure/InheritedSAMConversion.kt new file mode 100644 index 00000000000..8921da07298 --- /dev/null +++ b/idea/testData/structureView/fileStructure/InheritedSAMConversion.kt @@ -0,0 +1,6 @@ +class KotlinTest : TestSAM + +// TODO: Show both methods - synthetic and original (base mehtod without Kotlin signature) +// TODO: Show location for synthetic method + +// WITH_INHERITED \ No newline at end of file diff --git a/idea/testData/structureView/fileStructure/InheritedSynthesizedFromDataClass.after b/idea/testData/structureView/fileStructure/InheritedSynthesizedFromDataClass.after new file mode 100644 index 00000000000..93275c3f79e --- /dev/null +++ b/idea/testData/structureView/fileStructure/InheritedSynthesizedFromDataClass.after @@ -0,0 +1,8 @@ +-InheritedSynthesizedFromDataClass.kt + -Derived + a: Int location=→TestData + equals(Any?): Boolean location=→Any + field: Int + hashCode(): Int location=→Any + some(): Unit location=→TestData + toString(): String location=→Any diff --git a/idea/testData/structureView/fileStructure/InheritedSynthesizedFromDataClass.kt b/idea/testData/structureView/fileStructure/InheritedSynthesizedFromDataClass.kt new file mode 100644 index 00000000000..d8600fd37c5 --- /dev/null +++ b/idea/testData/structureView/fileStructure/InheritedSynthesizedFromDataClass.kt @@ -0,0 +1,12 @@ +data open class TestData(val a: Int) { + fun some() {} +} + +class Derived: TestData(1) { + val field = component1() +} + +// TODO: show component1, component2 functions? +// TODO: should equals and hashCode be shown as declared in TestData? + +// WITH_INHERITED \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/structureView/KotlinFileStructureTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/structureView/KotlinFileStructureTestGenerated.java index ef791bcd5f2..49ea84a66f0 100644 --- a/idea/tests/org/jetbrains/jet/plugin/structureView/KotlinFileStructureTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/structureView/KotlinFileStructureTestGenerated.java @@ -86,6 +86,16 @@ public class KotlinFileStructureTestGenerated extends AbstractKotlinFileStructur doTest("idea/testData/structureView/fileStructure/InheritedMembersWithSubstitutedTypes.kt"); } + @TestMetadata("InheritedSAMConversion.kt") + public void testInheritedSAMConversion() throws Exception { + doTest("idea/testData/structureView/fileStructure/InheritedSAMConversion.kt"); + } + + @TestMetadata("InheritedSynthesizedFromDataClass.kt") + public void testInheritedSynthesizedFromDataClass() throws Exception { + doTest("idea/testData/structureView/fileStructure/InheritedSynthesizedFromDataClass.kt"); + } + @TestMetadata("Render.kt") public void testRender() throws Exception { doTest("idea/testData/structureView/fileStructure/Render.kt");