Final in interfaces: deprecation ---> error + relevant test fixes

This commit is contained in:
Mikhail Glukhikh
2015-11-17 19:08:07 +03:00
parent 56af3a0af4
commit cd1b58f2eb
16 changed files with 13 additions and 79 deletions
@@ -104,12 +104,13 @@ public object ModifierCheckerCore {
ENUM_CLASS, ENUM_ENTRY, FILE),
PRIVATE_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, OBJECT, OBJECT_LITERAL,
INTERFACE, ENUM_CLASS, ENUM_ENTRY, FILE),
COMPANION_KEYWORD to EnumSet.of(CLASS_ONLY, ENUM_CLASS, INTERFACE)
COMPANION_KEYWORD to EnumSet.of(CLASS_ONLY, ENUM_CLASS, INTERFACE),
FINAL_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, OBJECT, OBJECT_LITERAL,
ENUM_CLASS, ENUM_ENTRY, ANNOTATION_CLASS, FILE)
)
val deprecatedParentTargetMap = mapOf<KtModifierKeywordToken, Set<KotlinTarget>>(
// Deprecated in M15
FINAL_KEYWORD to EnumSet.of(INTERFACE),
PROTECTED_KEYWORD to EnumSet.of(OBJECT)
)
-9
View File
@@ -1,9 +0,0 @@
//KT-2382
interface T {
final fun foo() = "OK"
}
class S : T { }
fun box(): String = S().foo()
+1 -1
View File
@@ -2,7 +2,7 @@ package test
interface InlineTrait {
inline final fun finalInline(s: () -> String): String {
fun finalInline(s: () -> String): String {
return s()
}
@@ -1,5 +1,5 @@
interface T {
<!DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>final<!> fun component1(): Int = 42
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>final<!> fun component1(): Int = 42
}
<!DATA_CLASS_OVERRIDE_CONFLICT!>data<!> class A(val x: Int) : T
@@ -2,14 +2,14 @@
package a
interface T {
<!FINAL_FUNCTION_WITH_NO_BODY, DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>final<!> fun foo()
<!FINAL_PROPERTY_IN_INTERFACE, DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>final<!> val b : Int
<!FINAL_FUNCTION_WITH_NO_BODY, WRONG_MODIFIER_CONTAINING_DECLARATION!>final<!> fun foo()
<!FINAL_PROPERTY_IN_INTERFACE, WRONG_MODIFIER_CONTAINING_DECLARATION!>final<!> val b : Int
<!DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>final<!> fun bar() {}
<!DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>final<!> val c : Int
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>final<!> fun bar() {}
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>final<!> val c : Int
get() = 42
<!DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>final<!> val d = <!PROPERTY_INITIALIZER_IN_INTERFACE!>1<!>
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>final<!> val d = <!PROPERTY_INITIALIZER_IN_INTERFACE!>1<!>
}
class A {
@@ -3,8 +3,8 @@ interface My {
<!INCOMPATIBLE_MODIFIERS!>private<!> <!ABSTRACT_MODIFIER_IN_INTERFACE, INCOMPATIBLE_MODIFIERS!>abstract<!> val xx: Int
private val xxx: Int
get() = 0
<!FINAL_PROPERTY_IN_INTERFACE, DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>final<!> val y: Int
<!DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>final<!> val yy: Int
<!FINAL_PROPERTY_IN_INTERFACE, WRONG_MODIFIER_CONTAINING_DECLARATION!>final<!> val y: Int
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>final<!> val yy: Int
get() = 1
<!PRIVATE_FUNCTION_WITH_NO_BODY!>private<!> fun foo(): Int
// ok
@@ -1,7 +0,0 @@
// KT-2228
package test
interface A {
final fun f(): String = "test"
}
@@ -7804,12 +7804,6 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
doTest(fileName);
}
@TestMetadata("finalMethod.kt")
public void testFinalMethod() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/traits/finalMethod.kt");
doTest(fileName);
}
@TestMetadata("genericMethod.kt")
public void testGenericMethod() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/traits/genericMethod.kt");
@@ -2710,12 +2710,6 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest {
doTestCompiledKotlin(fileName);
}
@TestMetadata("TraitFinalFun.kt")
public void testTraitFinalFun() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/classFun/TraitFinalFun.kt");
doTestCompiledKotlin(fileName);
}
@TestMetadata("TraitOpenFun.kt")
public void testTraitOpenFun() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/classFun/TraitOpenFun.kt");
@@ -799,12 +799,6 @@ public class LoadKotlinWithTypeTableTestGenerated extends AbstractLoadKotlinWith
doTest(fileName);
}
@TestMetadata("TraitFinalFun.kt")
public void testTraitFinalFun() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/classFun/TraitFinalFun.kt");
doTest(fileName);
}
@TestMetadata("TraitOpenFun.kt")
public void testTraitOpenFun() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/classFun/TraitOpenFun.kt");
@@ -801,12 +801,6 @@ public class JvmRuntimeDescriptorLoaderTestGenerated extends AbstractJvmRuntimeD
doTest(fileName);
}
@TestMetadata("TraitFinalFun.kt")
public void testTraitFinalFun() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/classFun/TraitFinalFun.kt");
doTest(fileName);
}
@TestMetadata("TraitOpenFun.kt")
public void testTraitOpenFun() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/classFun/TraitOpenFun.kt");