[FIR] Fix TEST SPEC tests
Ensure the test data contents for both the frontends are identical. This is needed for proper analysis of K2-differences.
This commit is contained in:
committed by
Space Team
parent
e6633d3d92
commit
7541732752
-26
@@ -1,26 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
abstract class Base() {
|
||||
<!ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun foo() = {}
|
||||
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>fun boo() : Unit<!>
|
||||
abstract val a = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>""<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val b<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var d<!>
|
||||
}
|
||||
|
||||
class Impl : Base() {
|
||||
override fun foo(): () -> Unit {
|
||||
TODO("not implemented")
|
||||
}
|
||||
|
||||
override val a: String
|
||||
get() = TODO("not implemented")
|
||||
|
||||
}
|
||||
|
||||
fun case1() {
|
||||
val impl = Impl()
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-118
@@ -1,118 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
<!REDUNDANT_MODIFIER!>open<!> abstract class Base {
|
||||
|
||||
abstract val a: Any
|
||||
abstract var b: Any
|
||||
internal abstract val c: Any
|
||||
internal abstract var d: Any
|
||||
|
||||
|
||||
abstract fun foo()
|
||||
internal abstract fun boo(): Any
|
||||
}
|
||||
|
||||
fun case1() {
|
||||
val impl = BaseImplCase2(1, "1", 1.0)
|
||||
}
|
||||
|
||||
class BaseImplCase2(
|
||||
override var a: Any, override
|
||||
<!VAR_OVERRIDDEN_BY_VAL!>val<!> b: Any, override var c: Any, override
|
||||
|
||||
<!VAR_OVERRIDDEN_BY_VAL!>val<!> d: Any = "5") : Base()
|
||||
{
|
||||
override fun foo() {}
|
||||
override internal fun boo() {}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
|
||||
fun case2() {
|
||||
val impl = ImplBaseCase2()
|
||||
}
|
||||
|
||||
class ImplBaseCase2() : Base() {
|
||||
override var a: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
override
|
||||
|
||||
<!VAR_OVERRIDDEN_BY_VAL!>val<!> b: Any
|
||||
get() = TODO()
|
||||
override var c: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
override
|
||||
|
||||
<!VAR_OVERRIDDEN_BY_VAL!>val<!> d: Any
|
||||
get() = TODO()
|
||||
|
||||
override fun foo() {}
|
||||
|
||||
override fun boo(): Any {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 3
|
||||
* NOTE: property is not implemented
|
||||
*/
|
||||
fun case3() {
|
||||
ImplBaseCase3()
|
||||
}
|
||||
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class ImplBaseCase3<!>() : Base() {
|
||||
override var b: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
override val c: Any
|
||||
get() = TODO()
|
||||
override var d: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
|
||||
override fun foo() {
|
||||
TODO()
|
||||
}
|
||||
|
||||
override fun boo(): Any {
|
||||
TODO()
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 4
|
||||
* NOTE: function is not implemented
|
||||
*/
|
||||
|
||||
fun case4() {
|
||||
ImplBaseCase4()
|
||||
}
|
||||
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class ImplBaseCase4<!>() : Base() {
|
||||
override var b: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
override val c: Any
|
||||
get() = TODO()
|
||||
override var d: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
|
||||
override fun foo() {}
|
||||
|
||||
override fun boo(): Any {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 5
|
||||
* NOTE: incompatible modifiers final and abstract
|
||||
*/
|
||||
<!INCOMPATIBLE_MODIFIERS!>final<!> <!INCOMPATIBLE_MODIFIERS!>abstract<!> class Case5() {}
|
||||
+4
-3
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
@@ -11,7 +12,7 @@
|
||||
*/
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER:1
|
||||
// TESTCASE NUMBER: 1
|
||||
package testPackCase1
|
||||
<!REDUNDANT_MODIFIER!>open<!> abstract class Base {
|
||||
|
||||
@@ -24,6 +25,7 @@ package testPackCase1
|
||||
abstract fun foo()
|
||||
internal abstract fun boo(): Any
|
||||
}
|
||||
|
||||
fun case1() {
|
||||
val impl = BaseImplCase1(1, "1", 1.0)
|
||||
}
|
||||
@@ -134,7 +136,6 @@ package testPackCase4
|
||||
internal abstract fun boo(): Any
|
||||
}
|
||||
|
||||
|
||||
fun case4() {
|
||||
ImplBaseCase4()
|
||||
}
|
||||
@@ -160,4 +161,4 @@ fun case4() {
|
||||
* TESTCASE NUMBER: 5
|
||||
* NOTE: incompatible modifiers final and abstract
|
||||
*/
|
||||
<!INCOMPATIBLE_MODIFIERS!>final<!> <!INCOMPATIBLE_MODIFIERS!>abstract<!> class Case5() {}
|
||||
<!INCOMPATIBLE_MODIFIERS!>final<!> <!INCOMPATIBLE_MODIFIERS!>abstract<!> class Case5() {}
|
||||
|
||||
-89
@@ -1,89 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
private abstract class Base {
|
||||
|
||||
abstract val a: Any
|
||||
abstract var b: Any
|
||||
internal abstract val c: Any
|
||||
internal abstract var d: Any
|
||||
|
||||
|
||||
abstract fun foo()
|
||||
internal abstract fun boo(): Any
|
||||
}
|
||||
|
||||
|
||||
fun case1() {
|
||||
val impl = object : Base() {
|
||||
override var a: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
override <!VAR_OVERRIDDEN_BY_VAL!>val<!> b: Any
|
||||
get() = TODO()
|
||||
override var c: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
override <!VAR_OVERRIDDEN_BY_VAL!>val<!> d: Any
|
||||
get() = TODO()
|
||||
|
||||
override fun foo() {}
|
||||
|
||||
override fun boo(): Any {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 2
|
||||
* NOTE: property is not implemented
|
||||
*/
|
||||
fun case2() {
|
||||
val impl = <!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>object<!> : Base() {
|
||||
override var b: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
override val c: Any
|
||||
get() = TODO()
|
||||
override var d: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
|
||||
override fun foo() {
|
||||
TODO()
|
||||
}
|
||||
|
||||
override fun boo(): Any {
|
||||
TODO()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 3
|
||||
* NOTE: function is not implemented
|
||||
*/
|
||||
|
||||
fun case3() {
|
||||
val impl = <!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>object<!> : Base() {
|
||||
override var b: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
override val c: Any
|
||||
get() = TODO()
|
||||
override var d: Any
|
||||
get() = TODO()
|
||||
set(value) {}
|
||||
|
||||
override fun foo() {}
|
||||
|
||||
override fun boo(): Any {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-3
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
@@ -46,7 +47,6 @@ fun case1() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
/*
|
||||
* TESTCASE NUMBER: 2
|
||||
@@ -65,8 +65,6 @@ private abstract class Base {
|
||||
internal abstract fun boo(): Any
|
||||
}
|
||||
|
||||
|
||||
|
||||
fun case2() {
|
||||
val impl = <!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>object<!> : Base() {
|
||||
override var b: Any
|
||||
|
||||
-54
@@ -1,54 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
abstract class Base {
|
||||
abstract val a: CharSequence
|
||||
abstract var b: CharSequence
|
||||
|
||||
abstract fun foo(): CharSequence
|
||||
}
|
||||
|
||||
class Case1 : Base() {
|
||||
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>Any<!>
|
||||
{
|
||||
return ""
|
||||
}
|
||||
|
||||
override val a: <!PROPERTY_TYPE_MISMATCH_ON_OVERRIDE!>Any?<!>
|
||||
get() = TODO()
|
||||
override var b: <!VAR_TYPE_MISMATCH_ON_OVERRIDE!>String<!>
|
||||
get() = TODO()
|
||||
set(value)
|
||||
{}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 2
|
||||
*/
|
||||
|
||||
class Case2(override val a: String, override var b: <!VAR_TYPE_MISMATCH_ON_OVERRIDE!>String<!>) : Base() {
|
||||
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>CharSequence?<!> {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 3
|
||||
* NOTE: abstract nested class members are not implemented
|
||||
*/
|
||||
|
||||
class Case3 {
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class ImplBase1<!> : MainClass.Base1() {}
|
||||
}
|
||||
|
||||
class MainClass {
|
||||
abstract class Base1() {
|
||||
abstract val a: CharSequence
|
||||
abstract var b: CharSequence
|
||||
|
||||
abstract fun foo(): CharSequence
|
||||
}
|
||||
|
||||
}
|
||||
+1
-4
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
@@ -34,8 +35,6 @@ class Case1 : Base() {
|
||||
{}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testPackCase2
|
||||
@@ -76,5 +75,3 @@ class MainClass {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
// FULL_JDK
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, abstract-classes -> paragraph 2 -> sentence 1
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: Abstract classes may contain abstract members, which should be implemented in an inner class that inherits from that abstract type
|
||||
*/
|
||||
|
||||
class MainClass {
|
||||
abstract class Base1() {
|
||||
abstract val a: CharSequence
|
||||
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
// !LANGUAGE: +ProhibitInvisibleAbstractMethodsInSuperclasses
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
// FULL_JDK
|
||||
|
||||
// FILE: base/BaseJava.java
|
||||
package base;
|
||||
|
||||
public abstract class BaseJava {
|
||||
|
||||
public BaseJavaCase1()
|
||||
{}
|
||||
|
||||
public BaseJavaCase1(Boolean b)
|
||||
{ foo(b); }
|
||||
|
||||
public void boo(Boolean b)
|
||||
{ foo(b); }
|
||||
|
||||
abstract void foo(Boolean b);
|
||||
}
|
||||
|
||||
// FILE: Impl.kt
|
||||
package implBase
|
||||
import base.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
<!INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_ERROR!>class Case1<!> : BaseJava() {}
|
||||
|
||||
fun case1() {
|
||||
val v = Case1()
|
||||
v.boo(true)
|
||||
}
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 2
|
||||
*/
|
||||
abstract class AbstractClassCase2 : BaseJava() {}
|
||||
|
||||
<!INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_ERROR!>class Case2<!> : AbstractClassCase2() {}
|
||||
|
||||
fun case2() {
|
||||
val v = Case2()
|
||||
v.boo(true)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +ProhibitInvisibleAbstractMethodsInSuperclasses
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
-71
@@ -1,71 +0,0 @@
|
||||
// !LANGUAGE: +ProhibitInvisibleAbstractMethodsInSuperclasses
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
// FULL_JDK
|
||||
|
||||
// FILE: base/BaseJava.java
|
||||
package base;
|
||||
|
||||
public abstract class BaseJava {
|
||||
|
||||
public BaseJavaCase1()
|
||||
{}
|
||||
|
||||
public BaseJavaCase1(Boolean b)
|
||||
{ foo(b); }
|
||||
|
||||
public void boo(Boolean b)
|
||||
{ foo(b); }
|
||||
|
||||
abstract void foo(Boolean b);
|
||||
}
|
||||
|
||||
// FILE: Impl.kt
|
||||
package implBase
|
||||
import base.*
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
class Case1 : BaseJava() {
|
||||
<!CANNOT_OVERRIDE_INVISIBLE_MEMBER!>override<!> fun foo(b: Boolean?) {}
|
||||
}
|
||||
|
||||
fun case1() {
|
||||
val v = Case1()
|
||||
v.boo(true)
|
||||
}
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 2
|
||||
*/
|
||||
abstract class AbstractClassCase2 : BaseJava() {}
|
||||
|
||||
class Case2: AbstractClassCase2() {
|
||||
<!CANNOT_OVERRIDE_INVISIBLE_MEMBER!>override<!> fun foo(b: Boolean?) {}
|
||||
}
|
||||
|
||||
fun case2() {
|
||||
val v = Case2()
|
||||
v.boo(true)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
|
||||
<!INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_ERROR!>class Case3<!> : BaseJava() {}
|
||||
|
||||
fun case3() {
|
||||
val v = Case3()
|
||||
v.boo(true)
|
||||
}
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 4
|
||||
*/
|
||||
abstract class AbstractClassCase4 : BaseJava() {}
|
||||
|
||||
<!INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_ERROR!>class Case4<!> : AbstractClassCase4() {}
|
||||
|
||||
fun case4() {
|
||||
val v = Case4()
|
||||
v.boo(true)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +ProhibitInvisibleAbstractMethodsInSuperclasses
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
-83
@@ -1,83 +0,0 @@
|
||||
// !LANGUAGE: +ProhibitInvisibleAbstractMethodsInSuperclasses
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
// FULL_JDK
|
||||
|
||||
// MODULE: base
|
||||
// FILE: BaseKotlin.kt
|
||||
package base
|
||||
abstract class BaseKotlin() {
|
||||
|
||||
fun boo(b: Boolean?) {
|
||||
foo(b)
|
||||
}
|
||||
|
||||
internal abstract fun foo(b: Boolean?)
|
||||
}
|
||||
|
||||
|
||||
//MODULE: implBase(base)
|
||||
//FILE: Impl.kt
|
||||
|
||||
|
||||
package implBase
|
||||
import base.*
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
class Case1 : BaseKotlin() {
|
||||
<!CANNOT_OVERRIDE_INVISIBLE_MEMBER!>override<!> fun foo(b: Boolean?) {}
|
||||
}
|
||||
|
||||
fun case1() {
|
||||
val v = Case1()
|
||||
v.boo(true)
|
||||
|
||||
val o = object : BaseKotlin() {
|
||||
<!CANNOT_OVERRIDE_INVISIBLE_MEMBER!>override<!> fun foo(b: Boolean?) {}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 2
|
||||
*/
|
||||
abstract class AbstractClassCase2 : BaseKotlin() {}
|
||||
|
||||
class Case2: AbstractClassCase2() {
|
||||
<!CANNOT_OVERRIDE_INVISIBLE_MEMBER!>override<!> fun foo(b: Boolean?) {}
|
||||
}
|
||||
|
||||
fun case2() {
|
||||
val v = Case2()
|
||||
v.boo(true)
|
||||
|
||||
val o = object : AbstractClassCase2() {
|
||||
<!CANNOT_OVERRIDE_INVISIBLE_MEMBER!>override<!> fun foo(b: Boolean?) {}
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
|
||||
<!INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_ERROR!>class Case3<!> : BaseKotlin() {}
|
||||
|
||||
fun case3() {
|
||||
val v = Case3()
|
||||
v.boo(true)
|
||||
|
||||
val o = <!INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_ERROR!>object<!> : BaseKotlin() {}
|
||||
}
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 4
|
||||
*/
|
||||
abstract class AbstractClassCase4 : BaseKotlin() {}
|
||||
|
||||
<!INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_ERROR!>class Case4<!> : AbstractClassCase4() {}
|
||||
|
||||
fun case4() {
|
||||
val v = Case4()
|
||||
v.boo(true)
|
||||
val o = <!INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_ERROR!>object<!> : AbstractClassCase4() {}
|
||||
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +ProhibitInvisibleAbstractMethodsInSuperclasses
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
+13
@@ -3,6 +3,19 @@
|
||||
// SKIP_TXT
|
||||
// FULL_JDK
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, abstract-classes -> paragraph 2 -> sentence 1
|
||||
* PRIMARY LINKS: inheritance, overriding -> paragraph 7 -> sentence 1
|
||||
* NUMBER: 8
|
||||
* DESCRIPTION: Abstract classes may contain one or more abstract members, which should be implemented in a subtype of this abstract class
|
||||
* ISSUES: KT-27825
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// MODULE: base
|
||||
// FILE: AbstractClassCase1.kt
|
||||
package base
|
||||
|
||||
-65
@@ -1,65 +0,0 @@
|
||||
// !LANGUAGE: +ProhibitInvisibleAbstractMethodsInSuperclasses
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
// FULL_JDK
|
||||
|
||||
// MODULE: libModule
|
||||
// FILE: libModule/BaseJava1.java
|
||||
package libModule;
|
||||
|
||||
public abstract class BaseJava1 {
|
||||
/*package-private*/ abstract void boojava();
|
||||
}
|
||||
|
||||
|
||||
// FILE: BaseKotlin1.kt
|
||||
package libModule
|
||||
|
||||
public abstract class BaseKotlin1 {
|
||||
internal abstract fun bookotlin()
|
||||
}
|
||||
|
||||
// MODULE: mainModule(libModule)
|
||||
// FILE: mainModule/JavaClassWithAbstractKotlinClass.java
|
||||
package mainModule
|
||||
import libModule.*
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 1
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
* ISSUES: KT-35325
|
||||
*/
|
||||
public class JavaClassWithAbstractKotlinClass {
|
||||
|
||||
public void zoo()
|
||||
{
|
||||
//todo: INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER should be expected
|
||||
BaseKotlin1 baseKotlin = new BaseKotlin1() {};
|
||||
|
||||
BaseKotlin1 baseKotlin = new BaseKotlinImpl();
|
||||
baseKotlin.bookotlin$libModule(); //highlight Error: usage of Kotlin internal declaration from different module
|
||||
|
||||
BaseKotlinImpl baseKotlinImpl = new BaseKotlinImpl();
|
||||
baseKotlinImpl.bookotlin$libModule(); //there is no any Error, but should be
|
||||
}
|
||||
|
||||
class BaseKotlinImpl extends BaseKotlin1 {
|
||||
@Override
|
||||
public void bookotlin$libModule() {
|
||||
System.out.println("wefrgth");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// FILE: KotlinClassWithAbstractJavaClass.kt
|
||||
package mainModule
|
||||
import libModule.*
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
class KotlinClassWithAbstractJavaClass() {
|
||||
fun foo() {
|
||||
val baseJava1 = <!INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_ERROR!>object<!> : BaseJava1() {}
|
||||
val baseKotlin = <!INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_ERROR!>object<!> : BaseKotlin1() {}
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +ProhibitInvisibleAbstractMethodsInSuperclasses
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
+11
@@ -1,6 +1,17 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, abstract-classes -> paragraph 2 -> sentence 1
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: Abstract classes may contain one or more abstract members, which should be implemented in a subtype of this abstract class
|
||||
* HELPERS: checkType, functions
|
||||
* ISSUES: KT-27825
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
fun case1(){
|
||||
|
||||
+11
@@ -1,6 +1,17 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-213
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, abstract-classes -> paragraph 2 -> sentence 1
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: Abstract classes may contain one or more abstract members, which should be implemented in a subtype of this abstract class
|
||||
* HELPERS: checkType, functions
|
||||
*/
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
// NOTE: attempt to implement inner abstract class as anonymous class
|
||||
open class MainCase1() {
|
||||
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class C1(x1: Boolean, val x2: Boolean, var x3: Boolean)
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
class C2(x1: Boolean, var x2: Boolean, vararg var x3: Boolean)
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
class C3(x1: Boolean, vararg val x2: Boolean, var x3: Boolean)
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1<T>() {
|
||||
class A(t: <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
class B(x: List<<!UNRESOLVED_REFERENCE!>T<!>>)
|
||||
class C(c: () -> <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
class E(n: Nothing, t: <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
class Case2<T>() {
|
||||
data class A(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: <!UNRESOLVED_REFERENCE!>T<!><!>)
|
||||
data class B(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>x: List<<!UNRESOLVED_REFERENCE!>T<!>><!>)
|
||||
data class C(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>c: () -> <!UNRESOLVED_REFERENCE!>T<!><!>)
|
||||
data class E(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>n: Nothing<!>, <!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: <!UNRESOLVED_REFERENCE!>T<!><!>)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
class Case3<T>() {
|
||||
enum class A(t: <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
enum class B(x: List<<!UNRESOLVED_REFERENCE!>T<!>>)
|
||||
enum class C(c: () -> <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
enum class E(n: Nothing, t: <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
data class A(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>x: Any?<!>)
|
||||
data class B(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>x: Any<!>)
|
||||
data class C(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>c: () -> Any<!>)
|
||||
data class D(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>e: Enum<*><!>)
|
||||
data class E(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>n: Nothing<!>)
|
||||
data class F<T>(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: T<!>)
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
class Case2<T>() {
|
||||
data class A(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: <!UNRESOLVED_REFERENCE!>T<!><!>)
|
||||
data class B(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>x: List<<!UNRESOLVED_REFERENCE!>T<!>><!>)
|
||||
data class C(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>c: () -> <!UNRESOLVED_REFERENCE!>T<!><!>)
|
||||
data class E(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>n: Nothing<!>, <!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: <!UNRESOLVED_REFERENCE!>T<!><!>)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1<T>() {
|
||||
class A(val t: <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
class B(val x: List<<!UNRESOLVED_REFERENCE!>T<!>>)
|
||||
class C(val c: () -> <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
class E(val n: Nothing, val t: <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1<T>() {
|
||||
class A(var t: <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
class B(var x: List<<!UNRESOLVED_REFERENCE!>T<!>>)
|
||||
class C(var c: () -> <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
class E(var n: Nothing, var t: <!UNRESOLVED_REFERENCE!>T<!>)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+15
@@ -1,6 +1,21 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-544
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 5 -> sentence 1
|
||||
* PRIMARY LINKS: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 4 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 1 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 2 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 6 -> sentence 1
|
||||
* SECONDARY LINKS: declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 2
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 6
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: top level declaration primary constructor with regular constructor parameter
|
||||
* HELPERS: checkType
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class A(x: Any?){
|
||||
|
||||
+15
@@ -1,6 +1,21 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-544
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 5 -> sentence 1
|
||||
* PRIMARY LINKS: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 4 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 1 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 2 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 6 -> sentence 1
|
||||
* SECONDARY LINKS: declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 2
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 6
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: Primary constructor for nested class with regular constructor parameter
|
||||
* HELPERS: checkType
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1 {
|
||||
|
||||
+15
@@ -1,6 +1,21 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-544
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 5 -> sentence 1
|
||||
* PRIMARY LINKS: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 4 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 1 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 2 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 6 -> sentence 1
|
||||
* SECONDARY LINKS: declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 2
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 6
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: Primary constructor for inner class with regular constructor parameter
|
||||
* HELPERS: checkType
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1 {
|
||||
|
||||
-38
@@ -1,38 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun <T> List<T>.case1() {
|
||||
class Case1(t: T)
|
||||
class A(t: T)
|
||||
class B(x: List<T>)
|
||||
class C(c: () -> T)
|
||||
class E(n: Nothing, t: T)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
val <T> List<T>.case2: Int
|
||||
get() = {
|
||||
class A(t: T)
|
||||
class B(x: List<T>)
|
||||
class C(c: () -> T)
|
||||
class E(n: Nothing, t: T)
|
||||
1
|
||||
}()
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
var <T> List<T>.case3: Unit
|
||||
get() {
|
||||
class A(t: T)
|
||||
class B(x: List<T>)
|
||||
class C(c: () -> T)
|
||||
class E(n: Nothing, t: T)
|
||||
1
|
||||
}
|
||||
set(i: Unit) {
|
||||
class A(t: T)
|
||||
class B(x: List<T>)
|
||||
class C(c: () -> T)
|
||||
class E(n: Nothing, t: T)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-38
@@ -1,38 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun <T> List<T>.case1() {
|
||||
class Case1(t: T)
|
||||
class A(t: T)
|
||||
class B(x: List<T>)
|
||||
class C(c: () -> T)
|
||||
class E(n: Nothing, t: T)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
val <T> List<T>.case2: Int
|
||||
get() = {
|
||||
class A(t: T)
|
||||
class B(x: List<T>)
|
||||
class C(c: () -> T)
|
||||
class E(n: Nothing, t: T)
|
||||
1
|
||||
}()
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
var <T> List<T>.case3: Unit
|
||||
get() {
|
||||
class A(t: T)
|
||||
class B(x: List<T>)
|
||||
class C(c: () -> T)
|
||||
class E(n: Nothing, t: T)
|
||||
1
|
||||
}
|
||||
set(i: Unit) {
|
||||
class A(t: T)
|
||||
class B(x: List<T>)
|
||||
class C(c: () -> T)
|
||||
class E(n: Nothing, t: T)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+15
@@ -1,6 +1,21 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNRESOLVED_REFERENCE -UNREACHABLE_CODE
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-544
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 5 -> sentence 2
|
||||
* PRIMARY LINKS: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 4 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 1 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 2 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 6 -> sentence 1
|
||||
* SECONDARY LINKS: declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 2
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 6
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: top level declaration primary constructor with read-only property constructor parameter
|
||||
* HELPERS: checkType
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class A(val x: Any?) {
|
||||
|
||||
+15
@@ -1,6 +1,21 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNRESOLVED_REFERENCE -UNREACHABLE_CODE
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-544
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 5 -> sentence 2
|
||||
* PRIMARY LINKS: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 4 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 1 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 2 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 6 -> sentence 1
|
||||
* SECONDARY LINKS: declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 2
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 6
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: Primary constructor for nested class with read-only property constructor parameter
|
||||
* HELPERS: checkType
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1 {
|
||||
|
||||
+15
@@ -1,6 +1,21 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNRESOLVED_REFERENCE -UNREACHABLE_CODE
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-544
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 5 -> sentence 2
|
||||
* PRIMARY LINKS: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 4 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 1 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 2 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 6 -> sentence 1
|
||||
* SECONDARY LINKS: declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 2
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 6
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: Primary constructor for inner class with mutable property constructor parameter
|
||||
* HELPERS: checkType
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1 {
|
||||
|
||||
-59
@@ -1,59 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun <T> List<T>.case1() {
|
||||
class Case1(val t: T)
|
||||
class A(val t: T)
|
||||
class B(val x: List<T>)
|
||||
class C(val c: () -> T)
|
||||
class E(val n: Nothing, val t: T)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
val <T> List<T>.case2: Int
|
||||
get() = {
|
||||
class A(val t: T)
|
||||
class B(val x: List<T>)
|
||||
class C(val c: () -> T)
|
||||
class E(val n: Nothing=TODO(), val t: T)
|
||||
|
||||
fun test() {
|
||||
A(this.first())
|
||||
B(this)
|
||||
C { this.last() }
|
||||
E(t = this[2])
|
||||
}
|
||||
|
||||
1
|
||||
}()
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
var <T> List<T>.case3: Unit
|
||||
get() {
|
||||
class A(val t: T)
|
||||
class B(val x: List<T>)
|
||||
class C(val c: () -> T)
|
||||
class E(val n: Nothing = TODO(), t: T)
|
||||
|
||||
fun test() {
|
||||
A(this.first())
|
||||
B(this)
|
||||
C { this.last() }
|
||||
E(t = this[2])
|
||||
}
|
||||
}
|
||||
set(i: Unit) {
|
||||
class A(val t: T)
|
||||
class B(val x: List<T>)
|
||||
class C(val c: () -> T)
|
||||
class E( t: T, val n: Nothing)
|
||||
|
||||
fun test() {
|
||||
A(this.first())
|
||||
B(this)
|
||||
C { this.last() }
|
||||
E(t = this[2], TODO())
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+15
@@ -1,6 +1,21 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNREACHABLE_CODE
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-544
|
||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 5 -> sentence 3
|
||||
* PRIMARY LINKS: declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 4 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 1 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 2 -> sentence 1
|
||||
* declarations, classifier-declaration, class-declaration, constructor-declaration -> paragraph 6 -> sentence 1
|
||||
* SECONDARY LINKS: declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 2
|
||||
* declarations, classifier-declaration, class-declaration -> paragraph 2 -> sentence 6
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: top level declaration primary constructor with mutable property constructor parameter
|
||||
* HELPERS: checkType
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class A(var x: Any?) {
|
||||
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1 {
|
||||
class A(var x: Any?)
|
||||
class B(var x: Any)
|
||||
class C(var c: () -> Any)
|
||||
class D(var e: Enum<*>)
|
||||
class E(var n: Nothing)
|
||||
class F<T>(var t: T)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
class Case2<T>() {
|
||||
class A<T : CharSequence>(var e: T)
|
||||
class B<T : java.util.AbstractCollection<Int>>(var e: T)
|
||||
class C<T : java.lang.Exception>(var e: T)
|
||||
class D<T : Enum<*>>(var e: T)
|
||||
class F<T>(var t: T)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1 {
|
||||
inner class A(var x: Any?)
|
||||
inner class B(var x: Any)
|
||||
inner class C(var c: () -> Any)
|
||||
inner class D(var e: Enum<*>)
|
||||
inner class E(var n: Nothing)
|
||||
inner class F<T>(var t: T)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
class Case2<T>() {
|
||||
inner class A(var x: Any?, t: T)
|
||||
inner class B(var x: T)
|
||||
inner class C(var c: () -> T)
|
||||
inner class D<T : Enum<*>>(var e: T)
|
||||
inner class E(var n: Nothing, var t: T)
|
||||
inner class F<T>(var t: T)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-59
@@ -1,59 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun <T> List<T>.case1() {
|
||||
class Case1(var t: T)
|
||||
class A(var t: T)
|
||||
class B(var x: List<T>)
|
||||
class C(var c: () -> T)
|
||||
class E(var n: Nothing, var t: T)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
val <T> List<T>.case2: Int
|
||||
get() = {
|
||||
class A(var t: T)
|
||||
class B(var x: List<T>)
|
||||
class C(var c: () -> T)
|
||||
class E(var n: Nothing=TODO(), var t: T)
|
||||
|
||||
fun test() {
|
||||
A(this.first())
|
||||
B(this)
|
||||
C { this.last() }
|
||||
E(t = this[2])
|
||||
}
|
||||
|
||||
1
|
||||
}()
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
var <T> List<T>.case3: Unit
|
||||
get() {
|
||||
class A(var t: T)
|
||||
class B(var x: List<T>)
|
||||
class C(var c: () -> T)
|
||||
class E(var n: Nothing = TODO(), t: T)
|
||||
|
||||
fun test() {
|
||||
A(this.first())
|
||||
B(this)
|
||||
C { this.last() }
|
||||
E(t = this[2])
|
||||
}
|
||||
}
|
||||
set(i: Unit) {
|
||||
class A(var t: T)
|
||||
class B(var x: List<T>)
|
||||
class C(var c: () -> T)
|
||||
class E( t: T, var n: Nothing =TODO())
|
||||
|
||||
fun test() {
|
||||
A(this.first())
|
||||
B(this)
|
||||
C { this.last() }
|
||||
E(t = this[2])
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
Reference in New Issue
Block a user