Add "Find Usages" tests for nested/inner classes and objects
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
// PSI_ELEMENT: com.intellij.psi.PsiClass
|
||||
// OPTIONS: usages
|
||||
public class Outer {
|
||||
public class <caret>A {
|
||||
public String bar = "bar";
|
||||
|
||||
public void foo() {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
public class KOuter: Outer() {
|
||||
public inner class X(bar: String? = (this@KOuter : Outer).A().bar): Outer.A() {
|
||||
var next: Outer.A? = (this@KOuter : Outer).A()
|
||||
val myBar: String? = (this@KOuter : Outer).A().bar
|
||||
|
||||
{
|
||||
(this@KOuter : Outer).A().bar = ""
|
||||
}
|
||||
|
||||
fun foo(a: Outer.A) {
|
||||
val aa: Outer.A = a
|
||||
aa.bar = ""
|
||||
}
|
||||
|
||||
fun getNext(): Outer.A? {
|
||||
return next
|
||||
}
|
||||
|
||||
public override fun foo() {
|
||||
super<Outer.A>.foo()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun KOuter.X.bar(a: Outer.A = Outer().A()) {
|
||||
|
||||
}
|
||||
|
||||
fun Any.toA(): Outer.A? {
|
||||
return if (this is Outer.A) this as Outer.A else null
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
Class/object property type (3: 25) var next: Outer.A? = (this@KOuter : Outer).A()
|
||||
Function return types (15: 30) fun getNext(): Outer.A? {
|
||||
Function return types (29: 22) fun Any.toA(): Outer.A? {
|
||||
Local variable declaration (11: 27) val aa: Outer.A = a
|
||||
New instance creation (25: 39) fun KOuter.X.bar(a: Outer.A = Outer().A()) {
|
||||
New instance creation (2: 63) public inner class X(bar: String? = (this@KOuter : Outer).A().bar): Outer.A() {
|
||||
New instance creation (3: 52) var next: Outer.A? = (this@KOuter : Outer).A()
|
||||
New instance creation (4: 52) val myBar: String? = (this@KOuter : Outer).A().bar
|
||||
New instance creation (7: 35) (this@KOuter : Outer).A().bar = ""
|
||||
Parameter type (10: 26) fun foo(a: Outer.A) {
|
||||
Parameter type (25: 27) fun KOuter.X.bar(a: Outer.A = Outer().A()) {
|
||||
Super type qualifier (20: 25) super<Outer.A>.foo()
|
||||
Supertype (2: 79) public inner class X(bar: String? = (this@KOuter : Outer).A().bar): Outer.A() {
|
||||
Target type of 'is' operation (30: 30) return if (this is Outer.A) this as Outer.A else null
|
||||
Usage in cast target type (30: 47) return if (this is Outer.A) this as Outer.A else null
|
||||
@@ -0,0 +1,17 @@
|
||||
// PSI_ELEMENT: com.intellij.psi.PsiClass
|
||||
// OPTIONS: usages
|
||||
public class Outer {
|
||||
public static 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? = Outer.A.BAR): Outer.A() {
|
||||
var next: Outer.A? = Outer.A()
|
||||
val myBar: String? = Outer.A.BAR
|
||||
|
||||
{
|
||||
Outer.A.BAR = ""
|
||||
Outer.A.foos()
|
||||
}
|
||||
|
||||
fun foo(a: Outer.A) {
|
||||
val aa: Outer.A = a
|
||||
aa.bar = ""
|
||||
}
|
||||
|
||||
fun getNext(): Outer.A? {
|
||||
return next
|
||||
}
|
||||
|
||||
public override fun foo() {
|
||||
super<Outer.A>.foo()
|
||||
}
|
||||
|
||||
class object: Outer.A() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
object O: Outer.A() {
|
||||
|
||||
}
|
||||
|
||||
fun X.bar(a: Outer.A = Outer.A()) {
|
||||
|
||||
}
|
||||
|
||||
fun Any.toA(): Outer.A? {
|
||||
return if (this is Outer.A) this as Outer.A else null
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
Class/object property type (2: 21) var next: Outer.A? = Outer.A()
|
||||
Function return types (15: 26) fun getNext(): Outer.A? {
|
||||
Function return types (36: 22) fun Any.toA(): Outer.A? {
|
||||
Local variable declaration (11: 23) val aa: Outer.A = a
|
||||
Nested class/object (1: 37) public class X(bar: String? = Outer.A.BAR): Outer.A() {
|
||||
Nested class/object (3: 32) val myBar: String? = Outer.A.BAR
|
||||
Nested class/object (6: 15) Outer.A.BAR = ""
|
||||
Nested class/object (7: 15) Outer.A.foos()
|
||||
New instance creation (2: 32) var next: Outer.A? = Outer.A()
|
||||
New instance creation (32: 30) fun X.bar(a: Outer.A = Outer.A()) {
|
||||
Parameter type (10: 22) fun foo(a: Outer.A) {
|
||||
Parameter type (32: 20) fun X.bar(a: Outer.A = Outer.A()) {
|
||||
Super type qualifier (20: 21) super<Outer.A>.foo()
|
||||
Supertype (1: 51) public class X(bar: String? = Outer.A.BAR): Outer.A() {
|
||||
Supertype (23: 25) class object: Outer.A() {
|
||||
Supertype (28: 17) object O: Outer.A() {
|
||||
Target type of 'is' operation (37: 30) return if (this is Outer.A) this as Outer.A else null
|
||||
Usage in cast target type (37: 47) return if (this is Outer.A) this as Outer.A else null
|
||||
@@ -0,0 +1,13 @@
|
||||
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
|
||||
// OPTIONS: usages, constructorUsages
|
||||
package a
|
||||
|
||||
public open class Outer {
|
||||
public open inner class <caret>A {
|
||||
public var bar: String = "bar";
|
||||
|
||||
public open fun foo() {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package b
|
||||
|
||||
import a.Outer
|
||||
|
||||
public class KOuter: Outer() {
|
||||
public inner class X(bar: String? = (this@KOuter : Outer).A().bar): Outer.A() {
|
||||
var next: Outer.A? = (this@KOuter : Outer).A()
|
||||
val myBar: String? = (this@KOuter : Outer).A().bar
|
||||
|
||||
{
|
||||
(this@KOuter : Outer).A().bar = ""
|
||||
}
|
||||
|
||||
fun foo(a: Outer.A) {
|
||||
val aa: Outer.A = a
|
||||
aa.bar = ""
|
||||
}
|
||||
|
||||
fun getNext(): Outer.A? {
|
||||
return next
|
||||
}
|
||||
|
||||
public override fun foo() {
|
||||
super<Outer.A>.foo()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun KOuter.X.bar(a: Outer.A = Outer().A()) {
|
||||
|
||||
}
|
||||
|
||||
fun Any.toA(): Outer.A? {
|
||||
return if (this is Outer.A) this as Outer.A else null
|
||||
}
|
||||
|
||||
fun Any.asServer(): Outer.A? {
|
||||
return if (this is Outer.A) this as Outer.A else null
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
Class/object property type (7: 25) var next: Outer.A? = (this@KOuter : Outer).A()
|
||||
Function return types (19: 30) fun getNext(): Outer.A? {
|
||||
Function return types (33: 22) fun Any.toA(): Outer.A? {
|
||||
Function return types (37: 27) fun Any.asServer(): Outer.A? {
|
||||
Local variable declaration (15: 27) val aa: Outer.A = a
|
||||
New instance creation (11: 35) (this@KOuter : Outer).A().bar = ""
|
||||
New instance creation (29: 39) fun KOuter.X.bar(a: Outer.A = Outer().A()) {
|
||||
New instance creation (6: 63) public inner class X(bar: String? = (this@KOuter : Outer).A().bar): Outer.A() {
|
||||
New instance creation (7: 52) var next: Outer.A? = (this@KOuter : Outer).A()
|
||||
New instance creation (8: 52) val myBar: String? = (this@KOuter : Outer).A().bar
|
||||
Parameter type (14: 26) fun foo(a: Outer.A) {
|
||||
Parameter type (29: 27) fun KOuter.X.bar(a: Outer.A = Outer().A()) {
|
||||
Super type qualifier (24: 25) super<Outer.A>.foo()
|
||||
Supertype (6: 79) public inner class X(bar: String? = (this@KOuter : Outer).A().bar): Outer.A() {
|
||||
Target type of 'is' operation (34: 30) return if (this is Outer.A) this as Outer.A else null
|
||||
Target type of 'is' operation (38: 30) return if (this is Outer.A) this as Outer.A else null
|
||||
Usage in cast target type (34: 47) return if (this is Outer.A) this as Outer.A else null
|
||||
Usage in cast target type (38: 47) return if (this is Outer.A) this as Outer.A else null
|
||||
@@ -0,0 +1,21 @@
|
||||
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
|
||||
// OPTIONS: usages, constructorUsages
|
||||
package a
|
||||
|
||||
public open class Outer {
|
||||
public open class <caret>A {
|
||||
public var bar: String = "bar";
|
||||
|
||||
public open fun foo() {
|
||||
|
||||
}
|
||||
|
||||
class object {
|
||||
public var bar: String = "bar";
|
||||
|
||||
public open fun foo() {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package b
|
||||
|
||||
import a.Outer
|
||||
|
||||
public class X(bar: String? = Outer.A.bar): Outer.A() {
|
||||
var next: Outer.A? = Outer.A()
|
||||
val myBar: String? = Outer.A.bar
|
||||
|
||||
{
|
||||
Outer.A.bar = ""
|
||||
Outer.A.foo()
|
||||
}
|
||||
|
||||
fun foo(a: Outer.A) {
|
||||
val aa: Outer.A = a
|
||||
aa.bar = ""
|
||||
}
|
||||
|
||||
fun getNext(): Outer.A? {
|
||||
return next
|
||||
}
|
||||
|
||||
public override fun foo() {
|
||||
super<Outer.A>.foo()
|
||||
}
|
||||
|
||||
class object: Outer.A() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
object O: Outer.A() {
|
||||
|
||||
}
|
||||
|
||||
fun X.bar(a: Outer.A = Outer.A()) {
|
||||
|
||||
}
|
||||
|
||||
fun Any.toA(): Outer.A? {
|
||||
return if (this is Outer.A) this as Outer.A else null
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
Class/object property type (6: 21) var next: Outer.A? = Outer.A()
|
||||
Function return types (19: 26) fun getNext(): Outer.A? {
|
||||
Function return types (40: 22) fun Any.toA(): Outer.A? {
|
||||
Local variable declaration (15: 23) val aa: Outer.A = a
|
||||
Nested class/object (10: 15) Outer.A.bar = ""
|
||||
Nested class/object (11: 15) Outer.A.foo()
|
||||
Nested class/object (5: 37) public class X(bar: String? = Outer.A.bar): Outer.A() {
|
||||
Nested class/object (7: 32) val myBar: String? = Outer.A.bar
|
||||
New instance creation (36: 30) fun X.bar(a: Outer.A = Outer.A()) {
|
||||
New instance creation (6: 32) var next: Outer.A? = Outer.A()
|
||||
Parameter type (14: 22) fun foo(a: Outer.A) {
|
||||
Parameter type (36: 20) fun X.bar(a: Outer.A = Outer.A()) {
|
||||
Super type qualifier (24: 21) super<Outer.A>.foo()
|
||||
Supertype (27: 25) class object: Outer.A() {
|
||||
Supertype (32: 17) object O: Outer.A() {
|
||||
Supertype (5: 51) public class X(bar: String? = Outer.A.bar): Outer.A() {
|
||||
Target type of 'is' operation (41: 30) return if (this is Outer.A) this as Outer.A else null
|
||||
Usage in cast target type (41: 47) return if (this is Outer.A) this as Outer.A else null
|
||||
@@ -0,0 +1,8 @@
|
||||
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetObjectDeclarationName
|
||||
package a
|
||||
|
||||
class A {
|
||||
object <caret>O {
|
||||
var foo: String = "foo"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package b
|
||||
|
||||
import a.A.O
|
||||
import a.A
|
||||
|
||||
class Client {
|
||||
fun fooBar() {
|
||||
val a = A()
|
||||
|
||||
println("foo = ${a.O.foo}")
|
||||
val obj = a.O
|
||||
println("length: ${obj.foo.length}")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Receiver (10: 28) println("foo = ${a.O.foo}")
|
||||
Usage in import (3: 12) import a.A.O
|
||||
Value read (11: 21) val obj = a.O
|
||||
@@ -170,6 +170,11 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest {
|
||||
doTest("idea/testData/findUsages/kotlin/findClassUsages/kotlinDerivedInterfaceUsages2.0.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kotlinInnerClassAllUsages.0.kt")
|
||||
public void testKotlinInnerClassAllUsages() throws Exception {
|
||||
doTest("idea/testData/findUsages/kotlin/findClassUsages/kotlinInnerClassAllUsages.0.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kotlinLocalClassUsages1.0.kt")
|
||||
public void testKotlinLocalClassUsages1() throws Exception {
|
||||
doTest("idea/testData/findUsages/kotlin/findClassUsages/kotlinLocalClassUsages1.0.kt");
|
||||
@@ -180,6 +185,11 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest {
|
||||
doTest("idea/testData/findUsages/kotlin/findClassUsages/kotlinLocalClassUsages2.0.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kotlinNestedClassAllUsages.0.kt")
|
||||
public void testKotlinNestedClassAllUsages() throws Exception {
|
||||
doTest("idea/testData/findUsages/kotlin/findClassUsages/kotlinNestedClassAllUsages.0.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kotlinPrivateClassUsages.0.kt")
|
||||
public void testKotlinPrivateClassUsages() throws Exception {
|
||||
doTest("idea/testData/findUsages/kotlin/findClassUsages/kotlinPrivateClassUsages.0.kt");
|
||||
@@ -261,6 +271,11 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest {
|
||||
doTest("idea/testData/findUsages/kotlin/findObjectUsages/kotlinLocalObjectUsages2.0.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kotlinNestedObjectUsages.0.kt")
|
||||
public void testKotlinNestedObjectUsages() throws Exception {
|
||||
doTest("idea/testData/findUsages/kotlin/findObjectUsages/kotlinNestedObjectUsages.0.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kotlinObjectUsages.0.kt")
|
||||
public void testKotlinObjectUsages() throws Exception {
|
||||
doTest("idea/testData/findUsages/kotlin/findObjectUsages/kotlinObjectUsages.0.kt");
|
||||
@@ -418,6 +433,16 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest {
|
||||
doTest("idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.0.java");
|
||||
}
|
||||
|
||||
@TestMetadata("JKInnerClassAllUsages.0.java")
|
||||
public void testJKInnerClassAllUsages() throws Exception {
|
||||
doTest("idea/testData/findUsages/java/findJavaClassUsages/JKInnerClassAllUsages.0.java");
|
||||
}
|
||||
|
||||
@TestMetadata("JKNestedClassAllUsages.0.java")
|
||||
public void testJKNestedClassAllUsages() throws Exception {
|
||||
doTest("idea/testData/findUsages/java/findJavaClassUsages/JKNestedClassAllUsages.0.java");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/findUsages/java/findJavaFieldUsages")
|
||||
|
||||
Reference in New Issue
Block a user