From 38d1d06e6e41253f74bf71748ae83cbc5eed742b Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Tue, 12 Sep 2017 11:54:04 +0300 Subject: [PATCH] Update modifier applicability tests for LV 1.2 --- .../tests/inner/illegalModifier.kt | 1 + .../tests/inner/illegalModifier_lv12.kt | 45 +++++ .../tests/inner/illegalModifier_lv12.txt | 159 ++++++++++++++++++ .../tests/lateinit/modifierApplicability.kt | 1 + .../lateinit/modifierApplicability_lv12.kt | 71 ++++++++ .../lateinit/modifierApplicability_lv12.txt | 70 ++++++++ .../checkers/DiagnosticsTestGenerated.java | 12 ++ .../DiagnosticsUsingJavacTestGenerated.java | 12 ++ 8 files changed, 371 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/inner/illegalModifier_lv12.kt create mode 100644 compiler/testData/diagnostics/tests/inner/illegalModifier_lv12.txt create mode 100644 compiler/testData/diagnostics/tests/lateinit/modifierApplicability_lv12.kt create mode 100644 compiler/testData/diagnostics/tests/lateinit/modifierApplicability_lv12.txt diff --git a/compiler/testData/diagnostics/tests/inner/illegalModifier.kt b/compiler/testData/diagnostics/tests/inner/illegalModifier.kt index 744af34f31b..22306d92879 100644 --- a/compiler/testData/diagnostics/tests/inner/illegalModifier.kt +++ b/compiler/testData/diagnostics/tests/inner/illegalModifier.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -InnerClassInEnumEntryClass inner fun foo() {} inner val prop = 42 diff --git a/compiler/testData/diagnostics/tests/inner/illegalModifier_lv12.kt b/compiler/testData/diagnostics/tests/inner/illegalModifier_lv12.kt new file mode 100644 index 00000000000..06128c2870d --- /dev/null +++ b/compiler/testData/diagnostics/tests/inner/illegalModifier_lv12.kt @@ -0,0 +1,45 @@ +// !LANGUAGE: +InnerClassInEnumEntryClass +inner fun foo() {} +inner val prop = 42 + +inner class A +inner interface B +inner object C + +class D { + inner class E + inner interface F + inner object G + inner enum class R + inner annotation class S + inner companion object +} + +enum class H { + I0 { + inner class II0 + }, + inner I { + inner class II + }; + + inner class J +} + +interface K { + inner class L +} + +object N { + inner class O +} + +class P { + companion object { + inner class Q + } +} + +val R = object { + inner class S +} diff --git a/compiler/testData/diagnostics/tests/inner/illegalModifier_lv12.txt b/compiler/testData/diagnostics/tests/inner/illegalModifier_lv12.txt new file mode 100644 index 00000000000..b702ffd8ed6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inner/illegalModifier_lv12.txt @@ -0,0 +1,159 @@ +package + +public val R: kotlin.Any +public val prop: kotlin.Int = 42 +public fun foo(): kotlin.Unit + +public final class A { + public constructor A() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public interface B { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public object C { + private constructor C() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public final class D { + public constructor D() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + public companion object Companion { + private constructor Companion() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + public final inner class E { + public constructor E() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + public interface F { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + public object G { + private constructor G() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + public final enum class R : kotlin.Enum { + private constructor R() + public final override /*1*/ /*fake_override*/ val name: kotlin.String + public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int + protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any + public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: D.R): kotlin.Int + public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit + public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! + public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + // Static members + public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): D.R + public final /*synthesized*/ fun values(): kotlin.Array + } + + public final annotation class S : kotlin.Annotation { + public constructor S() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } +} + +public final enum class H : kotlin.Enum { + enum entry I0 + + enum entry I + + private constructor H() + public final override /*1*/ /*fake_override*/ val name: kotlin.String + public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int + protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any + public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: H): kotlin.Int + public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit + public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! + public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + public final inner class J { + public constructor J() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + // Static members + public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): H + public final /*synthesized*/ fun values(): kotlin.Array +} + +public interface K { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + public final class L { + public constructor L() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } +} + +public object N { + private constructor N() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + public final class O { + public constructor O() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } +} + +public final class P { + public constructor P() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + public companion object Companion { + private constructor Companion() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + public final class Q { + public constructor Q() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + } +} diff --git a/compiler/testData/diagnostics/tests/lateinit/modifierApplicability.kt b/compiler/testData/diagnostics/tests/lateinit/modifierApplicability.kt index b14bc48868d..07b6a1d4aa4 100644 --- a/compiler/testData/diagnostics/tests/lateinit/modifierApplicability.kt +++ b/compiler/testData/diagnostics/tests/lateinit/modifierApplicability.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -LateinitTopLevelProperties -LateinitLocalVariables import kotlin.reflect.KProperty class CustomDelegate { diff --git a/compiler/testData/diagnostics/tests/lateinit/modifierApplicability_lv12.kt b/compiler/testData/diagnostics/tests/lateinit/modifierApplicability_lv12.kt new file mode 100644 index 00000000000..37967b3d33f --- /dev/null +++ b/compiler/testData/diagnostics/tests/lateinit/modifierApplicability_lv12.kt @@ -0,0 +1,71 @@ +// !LANGUAGE: +LateinitTopLevelProperties +LateinitLocalVariables +import kotlin.reflect.KProperty + +class CustomDelegate { + operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name + operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: String) {} +} + +public abstract class A(lateinit var p2: String) { + + public lateinit val a: String + lateinit val b: T + private lateinit var c: CharSequence + + lateinit val d: String + get + + public lateinit var e: String + get + private set + + fun a() { + lateinit var a: String + } + + lateinit var e1: V + lateinit var e2: String? + lateinit var e3: Int + lateinit var e4: Int? + lateinit var e5 = "A" + + // With initializer, primitive + lateinit var e6 = 3 + + lateinit var e7 by CustomDelegate() + + lateinit var e8: String + get() = "A" + + lateinit var e9: String + set(v) { field = v } + + abstract lateinit var e10: String + + lateinit var String.e11: String + + lateinit var String.e12: String +} + +lateinit val topLevel: String +lateinit var topLevelMutable: String + +public interface Intf { + lateinit var str: String +} + +public abstract class AbstractClass { + abstract var str: String +} + +public class AbstractClassImpl : AbstractClass() { + override lateinit var str: String +} + +public class B { + lateinit var a: String + + init { + a.length + } +} diff --git a/compiler/testData/diagnostics/tests/lateinit/modifierApplicability_lv12.txt b/compiler/testData/diagnostics/tests/lateinit/modifierApplicability_lv12.txt new file mode 100644 index 00000000000..17e549155e6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/lateinit/modifierApplicability_lv12.txt @@ -0,0 +1,70 @@ +package + +public lateinit val topLevel: kotlin.String +public lateinit var topLevelMutable: kotlin.String + +public abstract class A { + public constructor A(/*0*/ p2: kotlin.String) + public final lateinit val a: kotlin.String + public final lateinit val b: T + private final lateinit var c: kotlin.CharSequence + public final lateinit val d: kotlin.String + public final lateinit var e: kotlin.String + public final lateinit var e1: V + public abstract lateinit var e10: kotlin.String + public final lateinit var e2: kotlin.String? + public final lateinit var e3: kotlin.Int + public final lateinit var e4: kotlin.Int? + public final lateinit var e5: kotlin.String + public final lateinit var e6: kotlin.Int + public final lateinit var e7: kotlin.String + public final lateinit var e8: kotlin.String + public final lateinit var e9: kotlin.String + public final var p2: kotlin.String + public final lateinit var kotlin.String.e11: kotlin.String + public final lateinit var kotlin.String.e12: kotlin.String + public final fun a(): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public abstract class AbstractClass { + public constructor AbstractClass() + public abstract var str: kotlin.String + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public final class AbstractClassImpl : AbstractClass { + public constructor AbstractClassImpl() + public open override /*1*/ lateinit var str: kotlin.String + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public final class B { + public constructor B() + public final lateinit var a: kotlin.String + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public final class CustomDelegate { + public constructor CustomDelegate() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ value: kotlin.String): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public interface Intf { + public abstract lateinit var str: kotlin.String + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index 16cc64c68d5..8937cafb7a2 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -11860,6 +11860,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("illegalModifier_lv12.kt") + public void testIllegalModifier_lv12() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inner/illegalModifier_lv12.kt"); + doTest(fileName); + } + @TestMetadata("innerClassInEnumEntryClassMemberResolve.kt") public void testInnerClassInEnumEntryClassMemberResolve() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inner/innerClassInEnumEntryClassMemberResolve.kt"); @@ -13156,6 +13162,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("modifierApplicability_lv12.kt") + public void testModifierApplicability_lv12() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/lateinit/modifierApplicability_lv12.kt"); + doTest(fileName); + } + @TestMetadata("setter.kt") public void testSetter() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/lateinit/setter.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java index fdc1e40aad8..a683568dca4 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java @@ -11860,6 +11860,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("illegalModifier_lv12.kt") + public void testIllegalModifier_lv12() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inner/illegalModifier_lv12.kt"); + doTest(fileName); + } + @TestMetadata("innerClassInEnumEntryClassMemberResolve.kt") public void testInnerClassInEnumEntryClassMemberResolve() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inner/innerClassInEnumEntryClassMemberResolve.kt"); @@ -13156,6 +13162,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("modifierApplicability_lv12.kt") + public void testModifierApplicability_lv12() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/lateinit/modifierApplicability_lv12.kt"); + doTest(fileName); + } + @TestMetadata("setter.kt") public void testSetter() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/lateinit/setter.kt");