[LightTree] Fix positioning of VAR_TYPE_MISMATCH_ON_OVERRIDE in LT
The problem is that `override var b: String` in constructor has token type `VALUE_PARAMETER`, thus was not considered as declaration. ^KT-62704
This commit is contained in:
committed by
Space Team
parent
8edb1842a5
commit
3c8855c152
+1
-1
@@ -141,7 +141,7 @@ object LightTreePositioningStrategies {
|
|||||||
val (returnTypeRef, nameIdentifierOrPlaceHolder) = when {
|
val (returnTypeRef, nameIdentifierOrPlaceHolder) = when {
|
||||||
node.tokenType == KtNodeTypes.PROPERTY_ACCESSOR ->
|
node.tokenType == KtNodeTypes.PROPERTY_ACCESSOR ->
|
||||||
tree.typeReference(node) to tree.accessorNamePlaceholder(node)
|
tree.typeReference(node) to tree.accessorNamePlaceholder(node)
|
||||||
node.isDeclaration ->
|
node.isDeclaration || node.tokenType == KtNodeTypes.VALUE_PARAMETER ->
|
||||||
tree.typeReference(node) to tree.nameIdentifier(node)
|
tree.typeReference(node) to tree.nameIdentifier(node)
|
||||||
else ->
|
else ->
|
||||||
null to null
|
null to null
|
||||||
|
|||||||
-77
@@ -1,77 +0,0 @@
|
|||||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
|
||||||
// SKIP_TXT
|
|
||||||
// COMPARE_WITH_LIGHT_TREE
|
|
||||||
|
|
||||||
/*
|
|
||||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
|
||||||
*
|
|
||||||
* SPEC VERSION: 0.1-213
|
|
||||||
* MAIN LINK: declarations, classifier-declaration, class-declaration, abstract-classes -> paragraph 2 -> sentence 1
|
|
||||||
* NUMBER: 3
|
|
||||||
* DESCRIPTION: attempt to implement abstract members with invalid types
|
|
||||||
*/
|
|
||||||
|
|
||||||
// FILE: TestCase1.kt
|
|
||||||
// TESTCASE NUMBER: 1
|
|
||||||
package testPackCase1
|
|
||||||
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)
|
|
||||||
{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// FILE: TestCase2.kt
|
|
||||||
// TESTCASE NUMBER: 2
|
|
||||||
package testPackCase2
|
|
||||||
abstract class Base {
|
|
||||||
abstract val a: CharSequence
|
|
||||||
abstract var b: CharSequence
|
|
||||||
|
|
||||||
abstract fun foo(): CharSequence
|
|
||||||
}
|
|
||||||
|
|
||||||
class Case2(override val a: String, <!VAR_TYPE_MISMATCH_ON_OVERRIDE{LT}!>override var b: <!VAR_TYPE_MISMATCH_ON_OVERRIDE{PSI}!>String<!><!>) : Base() {
|
|
||||||
override fun foo(): <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>CharSequence?<!> {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// FILE: TestCase3.kt
|
|
||||||
// TESTCASE NUMBER: 3
|
|
||||||
package testPackCase3
|
|
||||||
abstract class Base {
|
|
||||||
abstract val a: CharSequence
|
|
||||||
abstract var b: CharSequence
|
|
||||||
|
|
||||||
abstract fun foo(): CharSequence
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
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
-1
@@ -1,6 +1,6 @@
|
|||||||
|
// FIR_IDENTICAL
|
||||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
// SKIP_TXT
|
// SKIP_TXT
|
||||||
// COMPARE_WITH_LIGHT_TREE
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||||
|
|||||||
Reference in New Issue
Block a user