FIR IDE: enable override implement test for FIR

This commit is contained in:
Tianyu Geng
2021-04-17 21:15:04 -07:00
committed by TeamCityServer
parent 00031c8eb1
commit 53aafbd7d9
149 changed files with 797 additions and 62 deletions
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface T {
fun getFoo(): String = ""
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface T {
fun getFoo(): String = ""
}
@@ -1,5 +1,5 @@
// ERROR: Conflicting overloads: public open fun foo(): Unit defined in C, public open fun foo(): Unit defined in C
// ERROR: Conflicting overloads: public open fun foo(): Unit defined in C, public open fun foo(): Unit defined in C
// ERROR: [CONFLICTING_OVERLOADS] Conflicting overloads: public open fun foo(): Unit defined in C, public open fun foo(): Unit defined in C
// ERROR: [CONFLICTING_OVERLOADS] Conflicting overloads: public open fun foo(): Unit defined in C, public open fun foo(): Unit defined in C
interface I {
open fun foo(){}
}
@@ -0,0 +1,31 @@
// ERROR: [CONFLICTING_OVERLOADS] Conflicting overloads: [/C.foo]
// ERROR: [CONFLICTING_OVERLOADS] Conflicting overloads: [/C.foo]
interface I {
open fun foo(){}
}
open class A {
open fun foo(){}
}
class C : A(), I {
override fun equals(other: Any?): Boolean {
<selection><caret>return super.equals(other)</selection>
}
override fun foo() {
super<A>.foo()
}
override fun foo() {
super<I>.foo()
}
override fun hashCode(): Int {
return super.hashCode()
}
override fun toString(): String {
return super.toString()
}
}
@@ -0,0 +1,10 @@
import androidx.annotation.RecentlyNonNull
import androidx.annotation.RecentlyNullable
import foo.A
class B : A() {
@RecentlyNonNull
override fun foo(@RecentlyNonNull s1: String, @RecentlyNullable s2: String?): String {
<selection><caret>return super.foo(s1, s2)</selection>
}
}
@@ -0,0 +1,30 @@
open class Base<A, B, C>() {
open val method : (A?) -> A = { it!! }
open fun foo(value : B) : B = value
open fun bar(value : () -> C) : (String) -> C = { value() }
}
class C : Base<String, C, Unit>() {
override fun bar(value: () -> Unit): (String) -> Unit {
<selection><caret>return super.bar(value)</selection>
}
override fun equals(other: Any?): Boolean {
return super.equals(other)
}
override fun foo(value: C): C {
return super.foo(value)
}
override fun hashCode(): Int {
return super.hashCode()
}
override val method: (String?) -> String
get() = method
override fun toString(): String {
return super.toString()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// COPY_DOC
import foo.A
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// COPY_DOC
import foo.A
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// DISABLE-ERRORS
@RequiresOptIn
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// DISABLE-ERRORS
@RequiresOptIn
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// COPY_DOC
abstract class A {
/**
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// COPY_DOC
abstract class A {
/**
@@ -0,0 +1,5 @@
data class Foo(val name: String) {
override fun equals(other: Any?): Boolean {
<selection><caret>return super.equals(other)</selection>
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface T {
fun foo(a:Int = 1)
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface T {
fun foo(a:Int = 1)
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface T {
fun foo()
fun bar()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface T {
fun foo()
fun bar()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A {
fun a(){}
fun b(){}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A {
fun a(){}
fun b(){}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A<T> {
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A<T> {
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// From KT-1254
interface T {
fun Foo() : (String) -> Unit
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// From KT-1254
interface T {
fun Foo() : (String) -> Unit
@@ -1 +1,2 @@
// FIR_IDENTICAL
enum <caret>class Foo
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
enum class Foo {
;
@@ -1,2 +1,3 @@
// FIR_IDENTICAL
enum <caret>class Foo {
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
enum class Foo {
;
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
enum <caret>class Foo {
A
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
enum class Foo {
A;
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
enum <caret>class Foo {
A;
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
enum class Foo {
A;
@@ -0,0 +1,5 @@
interface A
interface B : A {
override fun equals(other: Any?): Boolean<caret>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A {
open fun foo(`object` : Any): Int = 0
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A {
open fun foo(`object` : Any): Int = 0
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// From KT-1254
interface T {
fun Foo() : (String) -> Unit
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// From KT-1254
interface T {
fun Foo() : (String) -> Unit
@@ -0,0 +1,13 @@
// From KT-1648
interface A {
val method:() -> Unit?
}
fun some() : A {
return object : A {
override val method: () -> kotlin.Unit?
get() = <selection><caret>TODO("Not yet implemented")</selection>
}
}
// TODO: need better selection and caret
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface Trait {
fun <A, B : Runnable, E : Map.Entry<A, B>> foo() where B : Cloneable, B : Comparable<B>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface Trait {
fun <A, B : Runnable, E : Map.Entry<A, B>> foo() where B : Cloneable, B : Comparable<B>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package something
interface Some<T> {
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package something
interface Some<T> {
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface G<T> {
fun foo(t : T) : T
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface G<T> {
fun foo(t : T) : T
}
@@ -0,0 +1,9 @@
import org.jetbrains.annotations.NotNull
abstract class X : java.util.ArrayList<String>(), Runnable {
@NotNull
override fun iterator(): MutableIterator<String?> {
<selection><caret>return super.iterator()</selection>
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// from KT-488
class MyClass<A: Comparable<A>> : Iterable<A> {
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// from KT-488
class MyClass<A: Comparable<A>> : Iterable<A> {
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface Runnable {
fun run()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface Runnable {
fun run()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun a1()
fun a2()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun a1()
fun a2()
@@ -0,0 +1,42 @@
interface A {
fun a1()
fun a2()
fun a3()
fun a4()
fun a5()
fun a6()
fun a7()
fun a8()
}
class Test : A {
override fun a6() {
}
override fun a7() {
<selection><caret>TODO("Not yet implemented")</selection>
}
override fun a8() {
TODO("Not yet implemented")
}
override fun a1() {
TODO("Not yet implemented")
}
override fun a2() {
TODO("Not yet implemented")
}
override fun a3() {
}
override fun a4() {
TODO("Not yet implemented")
}
override fun a5() {
TODO("Not yet implemented")
}
}
@@ -0,0 +1,41 @@
interface A {
fun a1()
fun a2()
fun a3()
fun a4()
fun a5()
fun a6()
fun a7()
fun a8()
}
class Test : A {
override fun a4() {
}
override fun a5() {
<selection><caret>TODO("Not yet implemented")</selection>
}
override fun a6() {
}
override fun a7() {
TODO("Not yet implemented")
}
override fun a8() {
TODO("Not yet implemented")
}
override fun a1() {
TODO("Not yet implemented")
}
override fun a2() {
}
override fun a3() {
TODO("Not yet implemented")
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun a1()
fun a2()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun a1()
fun a2()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun a1()
fun a2()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun a1()
fun a2()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
class C : (String) -> Boolean {
<caret>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
class C : (String) -> Boolean {
override fun invoke(p1: String): Boolean {
<selection><caret>TODO("Not yet implemented")</selection>
@@ -0,0 +1,12 @@
// ERROR: Unexpected tokens
// ERROR: Unexpected token
// ERROR: Unexpected token
// ERROR: Unexpected token
import foo.A
import foo.B
class C : A() {
override fun foo(x: (Mutable)List<String!>!, y: String!): B<String?>? {
<selection><caret>TODO("Not yet implemented")</selection>
}
}
@@ -0,0 +1,8 @@
// ERROR: Unexpected token
package foo
class Impl: B {
override fun foo(r: Runnable!) {
<selection><caret>TODO("Not yet implemented")</selection>
}
}
@@ -0,0 +1,7 @@
import foo.Intf
class Impl(): Intf {
override fun getFooBar(): String? {
<selection><caret>TODO("Not yet implemented")</selection>
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package foo
class <caret>Impl : TestJavaInterface {
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package foo
class Impl : TestJavaInterface {
@@ -0,0 +1,9 @@
package foo
import foo.Intf
class Impl(): Intf() {
override fun getFooBar(): String? {
<selection><caret>return super.getFooBar()</selection>
}
}
@@ -0,0 +1,9 @@
package foo
import foo.Intf
class Impl(): Intf() {
override fun getFooBar(): String? {
<selection><caret>return super.getFooBar()</selection>
}
}
@@ -0,0 +1,11 @@
// ERROR: Unexpected tokens
// ERROR: Unexpected token
// ERROR: Unexpected token
// ERROR: Unexpected token
import foo.Intf
class Impl(): Intf {
override fun fooBar(i: Int, s: Array<(out) String!>!, foo: Any!) {
<selection><caret>TODO("Not yet implemented")</selection>
}
}
@@ -0,0 +1,9 @@
import foo.A
import javax.annotation.Nonnull
class B : A() {
@Nonnull
override fun foo(@Nonnull s: String): String {
<selection><caret>return super.foo(s)</selection>
}
}
@@ -0,0 +1,8 @@
import java.util.stream.Stream
abstract class A : List<String> {
override fun stream(): Stream<String?> {
<selection><caret>return super.stream()</selection>
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
abstract class C<A> {
abstract fun f(a: A)
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
abstract class C<A> {
abstract fun f(a: A)
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun foo(value : String) : Int = 0
fun bar() : String = "hello"
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun foo(value : String) : Int = 0
fun bar() : String = "hello"
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A {
open fun foo() {}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A {
open fun foo() {}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface I {
<caret>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface I {
<caret>
}
@@ -0,0 +1,10 @@
// ERROR: Unexpected token
import foo.A
import org.jetbrains.annotations.Nullable
class B : A() {
@Nullable
override fun foo(s: String!): String? {
<selection><caret>return super.foo(s)</selection>
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface IBase {
fun foo(): Any?
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface IBase {
fun foo(): Any?
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun String.foo()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun String.foo()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A {
open fun Int.foo(): Int {
return 0
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A {
open fun Int.foo(): Int {
return 0
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
val String.prop : Int
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
val String.prop : Int
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A {
open external fun foo()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A {
open external fun foo()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface Some {
fun foo()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface Some {
fun foo()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface Some {
fun foo()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface Some {
fun foo()
}
@@ -0,0 +1,25 @@
interface Some {
fun foo()
}
class Other {
fun test() {
val a = 1
}
fun otherTest() {
}
override fun equals(other: Any?): Boolean {
<selection><caret>return super.equals(other)</selection>
}
override fun hashCode(): Int {
return super.hashCode()
}
override fun toString(): String {
return super.toString()
}
}
@@ -0,0 +1,12 @@
open class A() {
open val method : () -> Unit? = {println("hello")}
}
fun some() : A {
return object : A() {
override val method: () -> kotlin.Unit?
get() = <selection><caret>super.method</selection>
}
}
// TODO: need better selection and caret
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A<T> {
fun foo(value : T) : Unit = println(value)
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A<T> {
fun foo(value : T) : Unit = println(value)
}
@@ -0,0 +1,11 @@
// ERROR: Unexpected tokens
// ERROR: Unexpected token
// ERROR: Unexpected token
// ERROR: Unexpected token
import foo.A
class C : A() {
override fun getAnswer(array: Array<(out) String!>!, number: Int, value: Any!): Int {
<selection><caret>return super.getAnswer(array, number, value)</selection>
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
var Int.foo : Double
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
var Int.foo : Double
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun foo(value : String) : Int = 0
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun foo(value : String) : Int = 0
}

Some files were not shown because too many files have changed in this diff Show More