PSI Pattern Matching: Add equivalence tests for JetPsiUnifier

This commit is contained in:
Alexey Sedunov
2014-07-29 17:15:25 +04:00
parent a3758f9fa3
commit f1c18d0e3f
192 changed files with 3199 additions and 0 deletions
@@ -0,0 +1,28 @@
fun foo() {
{
val t = <selection>object {
val a = 1
fun b() = a + 1
val c: Int
get() = b() + 1
}</selection>
}
{
val v = object {
val x = 1
fun b() = x + 1
val c: Int
get() = b() + 1
}
}
{
val w = object {
fun b() = a + 1
val a = 1
val c: Int
get() = b() + 1
}
}
}
@@ -0,0 +1,13 @@
object {
val a = 1
fun b() = a + 1
val c: Int
get() = b() + 1
}
object {
fun b() = a + 1
val a = 1
val c: Int
get() = b() + 1
}
@@ -0,0 +1,24 @@
fun foo() {
open class Z(p: Int)
trait T;
{
<selection>class A: Z(1), T</selection>
}
{
class B: Z(1), T
}
{
class C: Z(1)
}
{
class D: Z(2), T
}
{
class E: T
}
}
@@ -0,0 +1,3 @@
class A: Z(1), T
class B: Z(1), T
@@ -0,0 +1,25 @@
// DISABLE-ERRORS
fun foo() {
trait T
open class Z(p: Int): T;
{
<selection>class A: T by Z(1)</selection>
}
{
class B: Z(1), T
}
{
class C: Z(1)
}
{
class D: T by Z(1)
}
{
class E: T by Z(2)
}
}
@@ -0,0 +1,3 @@
class A: T by Z(1)
class D: T by Z(1)
@@ -0,0 +1,11 @@
fun foo() {
<selection>class A</selection>
class B {
}
class C {
val n: Int = 1
}
}
@@ -0,0 +1,5 @@
class A
class B {
}
@@ -0,0 +1,56 @@
// DISABLE-ERRORS
fun foo() {
{
<selection>class A(p: Int = 1, val q: Int = p + 1) {
val a = 1
fun b() = a + 1
val c: Int
get() = b() + 1
}</selection>
}
{
class B(n: Int = 1, val q: Int = n + 1) {
fun b() = a + 1
val a = 1
val c: Int
get() = b() + 1
}
}
{
class C {
val x = 1
fun b() = x + 1
val c: Int
get() = b() + 1
}
}
{
class D(n: Int = 1, val m: Int = n + 1) {
val a = 1
fun b() = a + 1
val c: Int
get() = b() + 1
}
}
{
class E(val n: Int = 1, val q: Int = n + 1) {
val a = 1
fun b() = a + 1
val c: Int
get() = b() + 1
}
}
{
object F {
val a = 1
fun b() = a + 1
val c: Int
get() = b() + 1
}
}
}
@@ -0,0 +1,13 @@
class A(p: Int = 1, val q: Int = p + 1) {
val a = 1
fun b() = a + 1
val c: Int
get() = b() + 1
}
class B(n: Int = 1, val q: Int = n + 1) {
fun b() = a + 1
val a = 1
val c: Int
get() = b() + 1
}
@@ -0,0 +1,38 @@
// DISABLE-ERRORS
fun foo() {
{
<selection>object A {
val a = 1
fun b() = a + 1
val c: Int
get() = b() + 1
}</selection>
}
{
class B {
val a = 1
fun b() = a + 1
val c: Int
get() = b() + 1
}
}
{
object C {
val x = 1
fun b() = x + 1
val c: Int
get() = b() + 1
}
}
{
object D {
fun b() = a + 1
val a = 1
val c: Int
get() = b() + 1
}
}
}
@@ -0,0 +1,13 @@
object A {
val a = 1
fun b() = a + 1
val c: Int
get() = b() + 1
}
object D {
fun b() = a + 1
val a = 1
val c: Int
get() = b() + 1
}
@@ -0,0 +1,42 @@
fun foo() {
<selection>{
open class Z<T>(p: T)
trait T
class A: Z<Int>(1), T
}</selection>
{
open class Z<A>(r: A)
trait T
class B: Z<Int>(1), T
}
{
open class T<A>(r: A)
trait Z
class C: T<Int>(1), Z
}
{
open class Z<T>(q: T)
trait T
class D: Z<Int>(2), T
}
{
open class Z<T>(q: T)
class E: Z<Int>(1)
}
{
open class Z<A>(r: A)
trait T
class F: Z<String>("1"), T
}
{
open class Z(r: Int)
trait T
class B: Z(1), T
}
}
@@ -0,0 +1,17 @@
{
open class Z<T>(p: T)
trait T
class A: Z<Int>(1), T
}
{
open class Z<A>(r: A)
trait T
class B: Z<Int>(1), T
}
{
open class T<A>(r: A)
trait Z
class C: T<Int>(1), Z
}
@@ -0,0 +1,137 @@
// DISABLE-ERRORS
fun foo() {
<selection>class A {
fun a(x: Int): Int = b(x) + 1
fun b(y: Int): Int = a(y) - 1
{
println(1)
}
class X
inner class Y
trait T
object O
val p = 1
val q = p + 1
{
println(2)
}
class object {
fun f() = 1
val g = f() - 1
}
}</selection>
class B {
{
println(1)
}
class X
fun b(p: kotlin.Int): kotlin.Int = a(p) - 1
inner class Y
val p = 1
class object {
fun f() = 1
val g = f() - 1
}
{
println(2)
}
object O
val q = p + 1
fun a(p: kotlin.Int): kotlin.Int = b(p) + 1
trait T
}
class C {
fun aa(x: Int): Int = bb(x) + 1
fun bb(y: Int): Int = aa(y) - 1
{
println(1)
}
class X
inner class Y
trait T
object O
val p = 1
val q = p + 1
{
println(2)
}
class object {
fun f() = 1
val g = f() - 1
}
}
class D {
fun a(x: Int): Int = b(x) + 1
fun b(y: Int): Int = a(y) - 1
{
println(1)
}
class X
inner class Y
trait T
object O
val q = p + 1
val p = 1
{
println(2)
}
class object {
fun f() = 1
val g = f() - 1
}
}
class E {
fun a(x: Int): Int = b(x) + 1
fun b(y: Int): Int = a(y) - 1
{
println(1)
}
class XX
inner class Y
trait T
object O
val p = 1
val q = p + 1
{
println(2)
}
class object {
fun f() = 1
val g = f() - 1
}
}
}
@@ -0,0 +1,56 @@
class A {
fun a(x: Int): Int = b(x) + 1
fun b(y: Int): Int = a(y) - 1
{
println(1)
}
class X
inner class Y
trait T
object O
val p = 1
val q = p + 1
{
println(2)
}
class object {
fun f() = 1
val g = f() - 1
}
}
class B {
{
println(1)
}
class X
fun b(p: kotlin.Int): kotlin.Int = a(p) - 1
inner class Y
val p = 1
class object {
fun f() = 1
val g = f() - 1
}
{
println(2)
}
object O
val q = p + 1
fun a(p: kotlin.Int): kotlin.Int = b(p) + 1
trait T
}
@@ -0,0 +1,25 @@
fun foo() {
open class Z(p: Int)
trait T
trait U;
{
<selection>class A: Z(1), T, U</selection>
}
{
class B: Z(1), U, T
}
{
class C: Z(1)
}
{
class D: Z(1), T
}
{
class E: Z(1), U
}
}
@@ -0,0 +1,3 @@
class A: Z(1), T, U
class B: Z(1), U, T