Introduce FIR_IDENTICAL for FIR vs old frontend tests #KT-36879 Fixed

This commit is contained in:
Mikhail Glukhikh
2020-03-04 17:54:33 +03:00
parent 186e0b0cba
commit 8884cbe415
2268 changed files with 1175 additions and 19754 deletions
@@ -1,12 +0,0 @@
// FILE: root.kt
fun testFun() = "239"
// FILE: otherPackage.kt
package test
fun testFun() = 12
// FILE: using.kt
import test.*
val t: String = testFun()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: root.kt
fun testFun() = "239"
@@ -1,12 +0,0 @@
// FILE: root.kt
fun testFun() = 12
// FILE: otherPackage.kt
package test
fun testFun() = 12
// FILE: using.kt
package test
val t = testFun()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: root.kt
fun testFun() = 12
@@ -1,10 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface I
class A : I by impl {
companion object {
val impl = object : I {}
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface I
@@ -1,57 +0,0 @@
class A<T> {
class T
object E {
init {
T()
}
}
class F {
init {
T()
}
}
inner class I {
init {
T() // todo: https://jetbrains.quip.com/hPM5AJcc1nca
}
}
init {
T()
}
}
class B<T> {
companion object {
class T;
init {
T()
}
}
object E {
init {
T()
}
}
class F {
init {
T()
}
}
inner class I {
init {
T()
}
}
init {
T()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
class A<T> {
class T
@@ -1,37 +0,0 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
open class A {
companion object {
fun bar() = 1
}
init {
val a: Int = foo()
val b: Int = bar()
}
}
open class B: A() {
companion object {
fun bar() = ""
}
init {
val a: String = foo()
val b: String = bar()
}
}
fun A.Companion.foo() = 1
fun B.Companion.foo() = ""
class C: A() {
init {
val a: Int = foo()
val b: Int = bar()
}
}
class D: B() {
init {
val a: String = foo()
val b: String = bar()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE
open class A {
companion object {
@@ -1,22 +0,0 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
open class A {
companion object {
fun foo() = 1
fun bar(a: String) = a
}
}
open class B: A() {
companion object {
fun foo() = ""
fun bar(a: Int) = a
}
}
class C: B() {
init {
val a: String = foo()
val b: Int = bar(1)
val c: String = bar("")
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE
open class A {
companion object {
@@ -1,43 +0,0 @@
// FILE: I.java
public interface I {
int a = 1;
}
// FILE: C.java
public class C implements I {
static int b = 1;
static void bar() {}
}
// FILE: K.kt
open class K : C()
// FILE: D.java
public class D extends K {
static int c = 1;
static void baz() {}
}
// FILE: test.kt
fun test() {
I.a
C.a
C.b
C.bar()
K.<!UNRESOLVED_REFERENCE!>a<!>
K.<!UNRESOLVED_REFERENCE!>b<!>
K.<!UNRESOLVED_REFERENCE!>bar<!>()
D.a
D.b
D.c
D.bar()
D.baz()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: I.java
public interface I {
@@ -1,37 +0,0 @@
// FILE: K.kt
open class K {
companion object {
fun foo() {}
}
}
// FILE: D.java
class D extends K {
static int b = 1;
static void bar() {}
}
// FILE: K.kt
class K2 {
companion object {
fun baz() {}
}
}
// FILE: test.kt
fun test() {
K.foo()
D.b
D.bar()
D.<!UNRESOLVED_REFERENCE!>foo<!>()
K2.<!UNRESOLVED_REFERENCE!>b<!>
K2.<!UNRESOLVED_REFERENCE!>bar<!>()
K2.<!UNRESOLVED_REFERENCE!>foo<!>()
K2.baz()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: K.kt
open class K {
@@ -1,55 +0,0 @@
// FILE: I.java
public interface I {
int a = 1;
}
// FILE: C.java
public class C implements I {
static int b = 1;
static void bar() {}
}
// FILE: K.kt
open class K : C(), I
// FILE: D.java
public class D extends K implements I {
static int c = 1;
static void baz() {}
}
// FILE: E.java
public class E extends D implements I {
static int a = 1;
}
// FILE: test.kt
fun test() {
I.a
C.a
C.b
C.bar()
K.<!UNRESOLVED_REFERENCE!>a<!>
K.<!UNRESOLVED_REFERENCE!>b<!>
K.<!UNRESOLVED_REFERENCE!>bar<!>()
D.a
D.b
D.c
D.bar()
D.baz()
E.a
E.b
E.c
E.bar()
E.baz()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: I.java
public interface I {
@@ -1,20 +0,0 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
// FILE: A.java
public class A {
static void foo() {}
static int bar() { return 1; }
}
// FILE: B.java
public class B extends A {
static void foo() {}
static long bar() { return 1; }
}
// FILE: 1.kt
class E: B() {
init {
foo()
val a: Long = bar()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE
// FILE: A.java
public class A {
@@ -1,50 +0,0 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
// FILE: A.java
public class A {
static void foo() {}
static int bar() {return 1;}
}
// FILE: B.java
public class B extends A {}
// FILE: C.java
public class C {
static void bar() {}
}
// FILE: 1.kt
import A.foo
import B.bar
class E: A() {
init {
foo()
bar()
}
}
class F: B() {
init {
foo()
bar()
}
}
// FILE: 2.kt
import C.bar
class Z: A() {
init {
val a: Int = bar()
}
}
// FILE: 3.kt
import C.*
class Q: A() {
init {
val a: Int = bar()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE
// FILE: A.java
public class A {
@@ -1,59 +0,0 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
// FILE: A.java
public class A {
static byte foo = 1;
static int bar = 2;
}
// FILE: B.java
public class B extends A {}
// FILE: C.java
public class C {
static long bar = 3;
}
// FILE: 1.kt
import A.foo
import B.bar
class E: A() {
init {
foo
bar
}
}
class F: B() {
init {
foo
bar
}
}
// FILE: 2.kt
import C.bar
class Z: A() {
init {
val a: Int = bar
}
}
// FILE: 3.kt
import C.*
class Q: A() {
init {
val a: Int = bar
}
}
// FILE: 4.kt
val bar = ""
class W: A() {
init {
val a: Int = bar
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE
// FILE: A.java
public class A {
@@ -1,36 +0,0 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
// FILE: A.java
public class A {
static void foo() {}
}
// FILE: 1.kt
open class B : A() {
companion object {
fun foo() = 1
}
init {
val a: Int = foo()
}
}
class C: B() {
init {
val a: Int = foo()
}
}
// FILE: X.java
public class X extends B {
static double foo() {
return 1.0;
}
}
// FILE: 2.kt
class Y: X() {
init {
val a: Double = foo()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE
// FILE: A.java
public class A {
@@ -1,51 +0,0 @@
// FILE: A.java
public class A {
public static void foo() {}
}
// FILE: B.java
public class B extends A {
public static void bar() {}
}
// FILE: 1.kt
open class X: A() {
init {
foo()
A.foo()
}
}
open class Y: B() {
init {
foo()
A.foo()
B.foo()
bar()
B.bar()
}
}
class XN: X() {
init {
foo()
A.foo()
X.<!UNRESOLVED_REFERENCE!>foo<!>()
XN.<!UNRESOLVED_REFERENCE!>foo<!>()
}
}
class YN: Y() {
init {
foo()
A.foo()
Y.<!UNRESOLVED_REFERENCE!>foo<!>()
YN.<!UNRESOLVED_REFERENCE!>foo<!>()
bar()
B.bar()
Y.<!UNRESOLVED_REFERENCE!>bar<!>()
YN.<!UNRESOLVED_REFERENCE!>bar<!>()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: A.java
public class A {
public static void foo() {}
@@ -1,27 +0,0 @@
// FILE: A.java
public class A {
public static void foo() {}
}
// FILE: 1.kt
open class B: A()
// FILE: C.java
public class C extends B {
public static void bar() {}
}
// FILE: 2.kt
class D: C() {
init {
foo()
A.foo()
B.<!UNRESOLVED_REFERENCE!>foo<!>()
C.foo()
D.<!UNRESOLVED_REFERENCE!>foo<!>()
bar()
C.bar()
D.<!UNRESOLVED_REFERENCE!>bar<!>()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: A.java
public class A {
public static void foo() {}
@@ -1,16 +0,0 @@
//KT-1078 Problem with visibility in do-while
package kt1078
fun test() : B {
do {
val x = foo()
} while(x.bar()) // x is not visible here!
return B()
}
class B() {
fun bar() = true
}
fun foo() = B()
+1
View File
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
//KT-1078 Problem with visibility in do-while
package kt1078
@@ -1,10 +0,0 @@
//FILE:a.kt
//KT-1579 Can't import nested class/interface
package lib
interface WithInner {
interface Inner {
}
}
//FILE:b.kt
package user
import lib.WithInner.Inner
+1
View File
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
//FILE:a.kt
//KT-1579 Can't import nested class/interface
package lib
@@ -1,19 +0,0 @@
//FILE:a.kt
//+JDK
package a
import kotlin.collections.Map.*
fun foo(b : Entry<String, String>) = b
//FILE:b.kt
//+JDK
package b
import kotlin.collections.Map.Entry
fun bar(b : Entry<String, String>) = b
//FILE:c.kt
//+JDK
package c
fun fff(b: Map.Entry<String, String>) = b
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
//FILE:a.kt
//+JDK
package a
@@ -1,9 +0,0 @@
//FILE:a.kt
//KT-1642 kotlin subpackages hide Java's toplevel packages
package a.java
//FILE:b.kt
//+JDK
package a
import java.util.ArrayList
+1
View File
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
//FILE:a.kt
//KT-1642 kotlin subpackages hide Java's toplevel packages
package a.java
@@ -1,16 +0,0 @@
package kt2262
//KT-2262 Cannot access protected member from inner class of subclass
abstract class Foo {
protected val color: String = "red"
}
class Bar : Foo() {
protected val i: Int = 1
inner class Baz {
val copy = color // INVISIBLE_MEMBER: Cannot access 'color' in 'Bar'
val j = i
}
}
+1
View File
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package kt2262
//KT-2262 Cannot access protected member from inner class of subclass
-11
View File
@@ -1,11 +0,0 @@
// KT-587 Unresolved reference
class Main {
companion object {
class States() {
companion object {
public val N: States = States() // : States unresolved
}
}
}
}
+1
View File
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// KT-587 Unresolved reference
class Main {
-18
View File
@@ -1,18 +0,0 @@
package kt939
//KT-939 CommonSupertypes erases scopes associated to types
fun compare(o1 : String?, o2 : String?) : Int {
val l1 = o1?.length ?: 0
val l2 = o2?.length ?: 0
return l1 - l2 // '-' is unresolved, because the type of l1 is Int with an empty member scope
}
//KT-1117 Unresolved reference to multiply sign
fun test() {
(System.getProperty("path.separator")?.length ?: 4) * 55 + 5
val x = System.getProperty("path.separator")?.length ?: 4
x * 55 + 5
}
+1
View File
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package kt939
//KT-939 CommonSupertypes erases scopes associated to types
@@ -1,24 +0,0 @@
// FILE: p1/BaseClass.java
package p1;
public class BaseClass {
protected class ProtSubClass {
public ProtSubClass() {}
}
}
// FILE: k1/main.kt
package k1
import p1.BaseClass
class Foo : BaseClass() {
fun foo() {
ProtSubClass()
super.ProtSubClass()
}
private val v1: BaseClass.ProtSubClass = ProtSubClass()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: p1/BaseClass.java
package p1;
@@ -1,30 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: A.java
public class A {
protected A() {}
protected A(int x) {}
public A(double x) {}
}
// FILE: main.kt
class B4 : A(1) {
init {
A()
A(1)
A(5.0)
}
fun foo() {
A()
A(1)
A(5.0)
object : A() {}
object : A(1) {}
object : A(5.0) {}
class Local : A()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: A.java
@@ -1,10 +0,0 @@
// FILE: SameClassNameResolveTest.kt
package test
open class Base
class SubBase: Base()
// FILE: SameClassNameResolveRoot.kt
open class Base
class SubBase: Base()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: SameClassNameResolveTest.kt
package test