Update modifier applicability tests for LV 1.2

This commit is contained in:
Dmitry Petrov
2017-09-12 11:54:04 +03:00
parent 6b6d1e80f8
commit 38d1d06e6e
8 changed files with 371 additions and 0 deletions
@@ -1,3 +1,4 @@
// !LANGUAGE: -InnerClassInEnumEntryClass
<!WRONG_MODIFIER_TARGET!>inner<!> fun foo() {}
<!WRONG_MODIFIER_TARGET!>inner<!> val prop = 42
@@ -0,0 +1,45 @@
// !LANGUAGE: +InnerClassInEnumEntryClass
<!WRONG_MODIFIER_TARGET!>inner<!> fun foo() {}
<!WRONG_MODIFIER_TARGET!>inner<!> val prop = 42
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class A
<!WRONG_MODIFIER_TARGET!>inner<!> interface B
<!WRONG_MODIFIER_TARGET!>inner<!> object C
class D {
inner class E
<!WRONG_MODIFIER_TARGET!>inner<!> interface F
<!WRONG_MODIFIER_TARGET!>inner<!> object G
<!WRONG_MODIFIER_TARGET!>inner<!> enum class R
<!WRONG_MODIFIER_TARGET!>inner<!> annotation class S
<!WRONG_MODIFIER_TARGET!>inner<!> companion object
}
enum class H {
I0 {
inner class II0
},
<!WRONG_MODIFIER_TARGET!>inner<!> I {
inner class II
};
inner class J
}
interface K {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class L
}
object N {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class O
}
class P {
companion object {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class Q
}
}
val R = object {
inner class S
}
@@ -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<D.R> {
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<D.R!>!
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<D.R>
}
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<H> {
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<H!>!
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<H>
}
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
}
}
}
@@ -1,3 +1,4 @@
// !LANGUAGE: -LateinitTopLevelProperties -LateinitLocalVariables
import kotlin.reflect.KProperty
class CustomDelegate {
@@ -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<T: Any, V: String?>(<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var p2: String) {
public <!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val a: String
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val b: T
private lateinit var c: CharSequence
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val d: String
get
public lateinit var e: String
get
private set
fun a() {
lateinit var <!UNUSED_VARIABLE!>a<!>: String
}
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e1: V
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e2: String?
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e3: Int
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e4: Int?
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e5 = "A"
// With initializer, primitive
<!INAPPLICABLE_LATEINIT_MODIFIER, INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e6 = 3
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e7 by CustomDelegate()
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e8: String
get() = "A"
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e9: String
set(v) { field = v }
abstract <!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e10: String
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var String.e11: String
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var String.e12: String
}
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val topLevel: String
lateinit var topLevelMutable: String
public interface Intf {
<!INAPPLICABLE_LATEINIT_MODIFIER!>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
}
}
@@ -0,0 +1,70 @@
package
public lateinit val topLevel: kotlin.String
public lateinit var topLevelMutable: kotlin.String
public abstract class A</*0*/ T : kotlin.Any, /*1*/ V : kotlin.String?> {
public constructor A</*0*/ T : kotlin.Any, /*1*/ V : kotlin.String?>(/*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
}
@@ -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");
@@ -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");