From f750d083503b07439e74d3d5ccfa263c55f010aa Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 15 May 2017 19:57:12 +0300 Subject: [PATCH] Light classes: test extending Number and CharSequence --- .../ImplementingCharSequenceAndNumber.java | 38 +++++++++++++++ .../ImplementingCharSequenceAndNumber.kt | 47 +++++++++++++++++++ .../resolve/IdeLightClassTestGenerated.java | 6 +++ 3 files changed, 91 insertions(+) create mode 100644 compiler/testData/asJava/lightClasses/ideRegression/ImplementingCharSequenceAndNumber.java create mode 100644 compiler/testData/asJava/lightClasses/ideRegression/ImplementingCharSequenceAndNumber.kt diff --git a/compiler/testData/asJava/lightClasses/ideRegression/ImplementingCharSequenceAndNumber.java b/compiler/testData/asJava/lightClasses/ideRegression/ImplementingCharSequenceAndNumber.java new file mode 100644 index 00000000000..c2b37a047f2 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/ideRegression/ImplementingCharSequenceAndNumber.java @@ -0,0 +1,38 @@ +public final class Container { + public Container() { /* compiled code */ } + + public static final class MyString implements java.lang.CharSequence { + public int getLength() { /* compiled code */ } + + @org.jetbrains.annotations.NotNull + public error.NonExistentClass chars() { /* compiled code */ } + + @org.jetbrains.annotations.NotNull + public error.NonExistentClass codePoints() { /* compiled code */ } + + public char get(int index) { /* compiled code */ } + + @org.jetbrains.annotations.NotNull + public java.lang.CharSequence subSequence(int startIndex, int endIndex) { /* compiled code */ } + + public MyString() { /* compiled code */ } + } + + public static final class MyNumber extends java.lang.Number { + public byte toByte() { /* compiled code */ } + + public char toChar() { /* compiled code */ } + + public double toDouble() { /* compiled code */ } + + public float toFloat() { /* compiled code */ } + + public int toInt() { /* compiled code */ } + + public long toLong() { /* compiled code */ } + + public short toShort() { /* compiled code */ } + + public MyNumber() { /* compiled code */ } + } +} diff --git a/compiler/testData/asJava/lightClasses/ideRegression/ImplementingCharSequenceAndNumber.kt b/compiler/testData/asJava/lightClasses/ideRegression/ImplementingCharSequenceAndNumber.kt new file mode 100644 index 00000000000..d19fc5fda77 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/ideRegression/ImplementingCharSequenceAndNumber.kt @@ -0,0 +1,47 @@ +// p1.Container +package p1 + +class Container { + class MyString : CharSequence { + override val length: Int + get() = 0 + + override fun chars(): IntStream = error("") + + override fun codePoints(): IntStream = error("") + + override fun get(index: Int): Char = 'c' + + override fun subSequence(startIndex: Int, endIndex: Int): CharSequence = MyString() + } + + class MyNumber : Number { + override fun toByte(): Byte { + TODO("not implemented") + } + + override fun toChar(): Char { + TODO("not implemented") + } + + override fun toDouble(): Double { + TODO("not implemented") + } + + override fun toFloat(): Float { + TODO("not implemented") + } + + override fun toInt(): Int { + TODO("not implemented") + } + + override fun toLong(): Long { + TODO("not implemented") + } + + override fun toShort(): Short { + TODO("not implemented") + } + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java index 5ce4380f8dd..0acdb4964e8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java @@ -236,6 +236,12 @@ public class IdeLightClassTestGenerated extends AbstractIdeLightClassTest { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/asJava/lightClasses/ideRegression"), Pattern.compile("^([^.]+)\\.kt$"), TargetBackend.ANY, true); } + @TestMetadata("ImplementingCharSequenceAndNumber.kt") + public void testImplementingCharSequenceAndNumber() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/ideRegression/ImplementingCharSequenceAndNumber.kt"); + doTest(fileName); + } + @TestMetadata("ImplementingMap.kt") public void testImplementingMap() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/ideRegression/ImplementingMap.kt");