"Find Usages": add tests for Kotlin usages of Java declarations

This commit is contained in:
Alexey Sedunov
2013-10-29 16:22:26 +04:00
parent f41cfa2b8b
commit a0e90f38a2
30 changed files with 454 additions and 13 deletions
@@ -0,0 +1,14 @@
// PSI_ELEMENT: com.intellij.psi.PsiClass
// OPTIONS: usages
public class <caret>A {
public String bar = "bar";
public static String BAR = "BAR";
public void foo() {
}
public static void foos() {
}
}
@@ -0,0 +1,38 @@
public class X(bar: String? = A.BAR): A() {
var next: A? = A()
val myBar: String? = A.BAR
{
A.BAR = ""
A.foos()
}
fun foo(a: A) {
val aa: A = a
aa.bar = ""
}
fun getNext(): A? {
return next
}
public override fun foo() {
super<A>.foo()
}
class object: A() {
}
}
object O: A() {
}
fun X.bar(a: A = A()) {
}
fun Any.toA(): A? {
return if (this is A) this as A else null
}
@@ -0,0 +1,18 @@
Class/object property type (2: 15) var next: A? = A()
Function return types (15: 20) fun getNext(): A? {
Function return types (36: 16) fun Any.toA(): A? {
Instantiation (2: 20) var next: A? = A()
Instantiation (32: 18) fun X.bar(a: A = A()) {
Local variable type (11: 17) val aa: A = a
Parameter type (10: 16) fun foo(a: A) {
Parameter type (32: 14) fun X.bar(a: A = A()) {
Super type qualifier (20: 15) super<A>.foo()
Supertype (1: 39) public class X(bar: String? = A.BAR): A() {
Supertype (23: 19) class object: A() {
Supertype (28: 11) object O: A() {
Target type of 'as' operation (37: 35) return if (this is A) this as A else null
Target type of 'is' operation (37: 24) return if (this is A) this as A else null
Unclassified usage (1: 31) public class X(bar: String? = A.BAR): A() {
Unclassified usage (3: 26) val myBar: String? = A.BAR
Unclassified usage (6: 9) A.BAR = ""
Unclassified usage (7: 9) A.foos()
@@ -0,0 +1,14 @@
// PSI_ELEMENT: com.intellij.psi.PsiClass
// OPTIONS: fieldUsages
public class <caret>A {
public String bar = "bar";
public static String BAR = "BAR";
public void foo() {
}
public static void foos() {
}
}
@@ -0,0 +1,38 @@
public class X(bar: String? = A.BAR): A() {
var next: A? = A()
val myBar: String? = A.BAR
{
A.BAR = ""
A.foos()
}
fun foo(a: A) {
val aa: A = a
aa.bar = ""
}
fun getNext(): A? {
return next
}
public override fun foo() {
super<A>.foo()
}
class object: A() {
}
}
object O: A() {
}
fun X.bar(a: A = A()) {
}
fun Any.toA(): A? {
return if (this is A) this as A else null
}
@@ -0,0 +1,4 @@
Value read (1: 33) public class X(bar: String? = A.BAR): A() {
Value read (3: 28) val myBar: String? = A.BAR
Value write (12: 12) aa.bar = ""
Value write (6: 11) A.BAR = ""
@@ -0,0 +1,14 @@
// PSI_ELEMENT: com.intellij.psi.PsiClass
// OPTIONS: methodUsages
public class <caret>A {
public String bar = "bar";
public static String BAR = "BAR";
public void foo() {
}
public static void foos() {
}
}
@@ -0,0 +1,38 @@
public class X(bar: String? = A.BAR): A() {
var next: A? = A()
val myBar: String? = A.BAR
{
A.BAR = ""
A.foos()
}
fun foo(a: A) {
val aa: A = a
aa.bar = ""
}
fun getNext(): A? {
return next
}
public override fun foo() {
super<A>.foo()
}
class object: A() {
}
}
object O: A() {
}
fun X.bar(a: A = A()) {
}
fun Any.toA(): A? {
return if (this is A) this as A else null
}
@@ -0,0 +1,2 @@
Function call (20: 18) super<A>.foo()
Function call (7: 11) A.foos()
@@ -0,0 +1,5 @@
// PSI_ELEMENT: com.intellij.psi.PsiClass
// OPTIONS: derivedClasses
public class <caret>A {
}
@@ -0,0 +1,7 @@
public open class X: A()
public trait T: A
public open class Y: X()
public class Z: Y(), T
@@ -0,0 +1,3 @@
Unclassified usage (1: 19) public open class X: A()
Unclassified usage (5: 19) public open class Y: X()
Unclassified usage (7: 14) public class Z: Y(), T
@@ -0,0 +1,5 @@
// PSI_ELEMENT: com.intellij.psi.PsiClass
// OPTIONS: derivedInterfaces
public interface <caret>A {
}
@@ -0,0 +1,7 @@
public open class X: A
public trait T: A
public open class Y: X()
public class Z: Y(), T
@@ -0,0 +1 @@
Unclassified usage (3: 14) public trait T: A
@@ -0,0 +1,5 @@
// PSI_ELEMENT: com.intellij.psi.PsiClass
// OPTIONS: implementingClasses
public interface <caret>A {
}
@@ -0,0 +1,7 @@
public open class X: A
public trait T: A
public open class Y: X()
public class Z: Y(), T
@@ -0,0 +1,4 @@
Unclassified usage (1: 19) public open class X: A
Unclassified usage (5: 19) public open class Y: X()
Unclassified usage (7: 14) public class Z: Y(), T
Unclassified usage (7: 14) public class Z: Y(), T