[FIR-TEST] Add new testdata generated after changes in previous commit
This commit is contained in:
+9
@@ -0,0 +1,9 @@
|
||||
// http://youtrack.jetbrains.net/issue/KT-20
|
||||
|
||||
class A() {
|
||||
val x = 1
|
||||
|
||||
companion object {
|
||||
val y = <!UNRESOLVED_REFERENCE!>x<!>
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package foo
|
||||
|
||||
fun test() {
|
||||
A.d
|
||||
A.Companion.<!INAPPLICABLE_CANDIDATE!>f<!>
|
||||
B.D
|
||||
CCC
|
||||
CCC.classObjectVar
|
||||
}
|
||||
|
||||
class A() {
|
||||
public companion object {
|
||||
val d = 3
|
||||
private object f {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class B {
|
||||
class D {
|
||||
private companion object
|
||||
}
|
||||
}
|
||||
|
||||
class CCC() {
|
||||
private companion object {
|
||||
val classObjectVar = 3
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
// !DIAGNOSTICS: -DUPLICATE_CLASS_NAMES
|
||||
package Jet86
|
||||
|
||||
class A {
|
||||
companion object {
|
||||
val x = 1
|
||||
}
|
||||
companion object {
|
||||
val x = 1
|
||||
}
|
||||
}
|
||||
|
||||
class AA {
|
||||
companion object {
|
||||
val x = 1
|
||||
}
|
||||
companion object A {
|
||||
val x = 1
|
||||
}
|
||||
companion object AA {
|
||||
val x = 1
|
||||
}
|
||||
}
|
||||
|
||||
class B() {
|
||||
val x = 12
|
||||
}
|
||||
|
||||
object b {
|
||||
companion object {
|
||||
val x = 1
|
||||
} // error
|
||||
}
|
||||
|
||||
val a = A.x
|
||||
val c = B.<!UNRESOLVED_REFERENCE!>x<!>
|
||||
val d = b.<!UNRESOLVED_REFERENCE!>x<!>
|
||||
|
||||
val s = System // error
|
||||
fun test() {
|
||||
System.out.println()
|
||||
java.lang.System.out.println()
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package a
|
||||
|
||||
class A {
|
||||
class Nested
|
||||
inner class Inner
|
||||
|
||||
|
||||
companion object {
|
||||
|
||||
class Nested2
|
||||
|
||||
val c: Int = 1
|
||||
|
||||
object Obj2 {
|
||||
val c: Int = 1
|
||||
}
|
||||
}
|
||||
|
||||
object Obj
|
||||
}
|
||||
|
||||
object O {
|
||||
class A
|
||||
|
||||
object O
|
||||
}
|
||||
|
||||
fun f() {
|
||||
A.c
|
||||
A.hashCode()
|
||||
A().Nested
|
||||
A.Nested()
|
||||
A().Inner()
|
||||
A.Companion.<!UNRESOLVED_REFERENCE!>Nested<!>
|
||||
A.Companion.<!UNRESOLVED_REFERENCE!>Inner<!>
|
||||
A.Inner
|
||||
A.Companion.c
|
||||
A.Companion.Obj2
|
||||
A.Companion.Obj2.c
|
||||
|
||||
A.Companion.Nested2()
|
||||
A.Companion.c
|
||||
A.Obj
|
||||
A.Companion.Obj2
|
||||
A.Obj2
|
||||
A.Obj2.c
|
||||
A.Nested2
|
||||
|
||||
O.O
|
||||
O.A()
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
// !LANGUAGE: +NestedClassesInEnumEntryShouldBeInner
|
||||
|
||||
package a
|
||||
|
||||
|
||||
enum class C {
|
||||
E1, E2, E3 {
|
||||
object O_O
|
||||
|
||||
fun b() {
|
||||
O_O
|
||||
}
|
||||
|
||||
class G
|
||||
},
|
||||
|
||||
E4 {
|
||||
fun c() {
|
||||
this.<!UNRESOLVED_REFERENCE!>B<!>()
|
||||
|
||||
C.A()
|
||||
A()
|
||||
//TODO: should be resolved with error
|
||||
this.<!UNRESOLVED_REFERENCE!>A<!>()
|
||||
}
|
||||
};
|
||||
|
||||
class A
|
||||
inner class B
|
||||
object O {
|
||||
object InO
|
||||
}
|
||||
}
|
||||
|
||||
fun f() {
|
||||
C.E1.A
|
||||
C.E1.A()
|
||||
C.E2.B()
|
||||
|
||||
C.E2.O
|
||||
C.E3.O.InO
|
||||
|
||||
C.O
|
||||
C.O.InO
|
||||
C.A()
|
||||
C.<!UNRESOLVED_REFERENCE!>B<!>()
|
||||
|
||||
C.E3.O_O
|
||||
C.E3.G()
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
// !LANGUAGE: -NestedClassesInEnumEntryShouldBeInner
|
||||
|
||||
package a
|
||||
|
||||
|
||||
enum class C {
|
||||
E1, E2, E3 {
|
||||
object O_O
|
||||
|
||||
fun b() {
|
||||
O_O
|
||||
}
|
||||
|
||||
class G
|
||||
},
|
||||
|
||||
E4 {
|
||||
fun c() {
|
||||
this.<!UNRESOLVED_REFERENCE!>B<!>()
|
||||
|
||||
C.A()
|
||||
A()
|
||||
//TODO: should be resolved with error
|
||||
this.<!UNRESOLVED_REFERENCE!>A<!>()
|
||||
}
|
||||
};
|
||||
|
||||
class A
|
||||
inner class B
|
||||
object O {
|
||||
object InO
|
||||
}
|
||||
}
|
||||
|
||||
fun f() {
|
||||
C.E1.A
|
||||
C.E1.A()
|
||||
C.E2.B()
|
||||
|
||||
C.E2.O
|
||||
C.E3.O.InO
|
||||
|
||||
C.O
|
||||
C.O.InO
|
||||
C.A()
|
||||
C.<!UNRESOLVED_REFERENCE!>B<!>()
|
||||
|
||||
C.E3.O_O
|
||||
C.E3.G()
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
// http://youtrack.jetbrains.net/issue/KT-449
|
||||
|
||||
class A {
|
||||
inner class B {
|
||||
companion object { }
|
||||
}
|
||||
}
|
||||
|
||||
class B {
|
||||
companion object {
|
||||
class B {
|
||||
companion object {
|
||||
class C {
|
||||
companion object { }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class C {
|
||||
class D {
|
||||
companion object { }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE, -UNUSED_PARAMETER
|
||||
|
||||
fun box(): String {
|
||||
try {
|
||||
// Objects
|
||||
val i = Int
|
||||
val d = Double
|
||||
val f = Float
|
||||
val l = Long
|
||||
val sh = Short
|
||||
val b = Byte
|
||||
val ch = Char
|
||||
val st = String
|
||||
|
||||
test(Int)
|
||||
test(Double)
|
||||
test(Float)
|
||||
test(Long)
|
||||
test(Short)
|
||||
test(Byte)
|
||||
test(String)
|
||||
test(Char)
|
||||
|
||||
// Common Double
|
||||
Double.POSITIVE_INFINITY
|
||||
Double.NEGATIVE_INFINITY
|
||||
Double.NaN
|
||||
|
||||
// Common Float
|
||||
Float.POSITIVE_INFINITY
|
||||
Float.NEGATIVE_INFINITY
|
||||
Float.NaN
|
||||
}
|
||||
catch (e: Throwable) {
|
||||
return "Error: \n" + e
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun test(a: Any) {}
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package test
|
||||
|
||||
open class ToResolve<SomeClass>(f : (Int) -> Int)
|
||||
fun testFun(a : Int) = 12
|
||||
|
||||
class TestSome<P> {
|
||||
companion object : ToResolve<P>({testFun(it)}) {
|
||||
}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
fun test() {
|
||||
class A {
|
||||
companion object {}
|
||||
}
|
||||
|
||||
object {
|
||||
companion object {}
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// !DIAGNOSTICS: -DUPLICATE_CLASS_NAMES
|
||||
package test
|
||||
|
||||
class A {
|
||||
object Companion
|
||||
|
||||
companion object
|
||||
}
|
||||
|
||||
class B {
|
||||
companion object Named
|
||||
|
||||
object Named
|
||||
}
|
||||
|
||||
class C {
|
||||
class Named
|
||||
|
||||
companion object Named
|
||||
}
|
||||
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
package test
|
||||
|
||||
fun use() {
|
||||
Default.create()
|
||||
|
||||
Explicit.create()
|
||||
}
|
||||
|
||||
private class Default {
|
||||
companion object {
|
||||
fun create() = Default()
|
||||
}
|
||||
}
|
||||
|
||||
private class Explicit {
|
||||
private companion object {
|
||||
fun create() = Explicit()
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package f
|
||||
|
||||
import f.A.Companion.B
|
||||
|
||||
class A {
|
||||
companion object {
|
||||
class B
|
||||
}
|
||||
}
|
||||
|
||||
fun test() = B()
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
//FILE:a.kt
|
||||
package a
|
||||
|
||||
class A {
|
||||
companion object {
|
||||
fun foo() {}
|
||||
}
|
||||
}
|
||||
|
||||
private class B {
|
||||
companion object {
|
||||
fun bar() {}
|
||||
}
|
||||
}
|
||||
|
||||
class C {
|
||||
private companion object {
|
||||
fun baz() {}
|
||||
}
|
||||
}
|
||||
|
||||
private class D {
|
||||
private companion object {
|
||||
fun quux() {}
|
||||
}
|
||||
}
|
||||
|
||||
//FILE:b.kt
|
||||
package b
|
||||
|
||||
import a.A
|
||||
import a.B
|
||||
import a.C
|
||||
import a.D
|
||||
|
||||
fun test() {
|
||||
f(A)
|
||||
f(<!INAPPLICABLE_CANDIDATE!>B<!>)
|
||||
f(C)
|
||||
f(<!INAPPLICABLE_CANDIDATE!>D<!>)
|
||||
|
||||
A.foo()
|
||||
<!INAPPLICABLE_CANDIDATE!>B<!>.<!UNRESOLVED_REFERENCE!>bar<!>()
|
||||
C.baz()
|
||||
<!INAPPLICABLE_CANDIDATE!>D<!>.<!UNRESOLVED_REFERENCE!>quux<!>()
|
||||
|
||||
a.A.foo()
|
||||
a.C.baz()
|
||||
}
|
||||
|
||||
fun f(unused: Any) {}
|
||||
@@ -0,0 +1,20 @@
|
||||
open class C {
|
||||
}
|
||||
|
||||
fun C.foo() {}
|
||||
|
||||
open class X {
|
||||
companion object : C() {}
|
||||
}
|
||||
|
||||
open class Y {
|
||||
companion object : C() {}
|
||||
}
|
||||
|
||||
fun bar() {
|
||||
val x = X
|
||||
x.foo()
|
||||
X.foo()
|
||||
(X as C).foo()
|
||||
((if (1<2) X else Y) as C).foo()
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
class A {
|
||||
inner class I {
|
||||
companion object A
|
||||
|
||||
companion object B
|
||||
|
||||
companion object C
|
||||
}
|
||||
}
|
||||
|
||||
object O {
|
||||
companion object A
|
||||
|
||||
companion object B
|
||||
|
||||
companion object C
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
class A {
|
||||
private companion object {
|
||||
class B {
|
||||
class C {
|
||||
companion object {
|
||||
fun foo() {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun f1() = A.<!INAPPLICABLE_CANDIDATE!>Companion<!>.<!UNRESOLVED_REFERENCE!>B<!>.<!UNRESOLVED_REFERENCE!>C<!>
|
||||
|
||||
fun f2() = A.<!INAPPLICABLE_CANDIDATE!>Companion<!>.<!UNRESOLVED_REFERENCE!>B<!>.<!UNRESOLVED_REFERENCE!>C<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package test
|
||||
|
||||
class Test {
|
||||
fun test(): Int = 12
|
||||
|
||||
companion object {
|
||||
val a = <!UNRESOLVED_REFERENCE!>test<!>() // Check if resolver will be able to infer type of a variable
|
||||
}
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE!
|
||||
// ISSUE: KT-28999
|
||||
|
||||
fun case_1() {
|
||||
val x = object<T> { } // type of x is <anonymous object><T>
|
||||
}
|
||||
|
||||
fun case_2() {
|
||||
val x = object<T : Number, K: Comparable<K>> { }
|
||||
}
|
||||
|
||||
fun case_3() {
|
||||
val x = object<T> <!SYNTAX!>where T : Comparable<T><!> { } // ERROR: Where clause is not allowed for objects
|
||||
}
|
||||
|
||||
val x = object<T, K: Comparable<K>> {
|
||||
fun test() = 10 as T // OK
|
||||
}
|
||||
|
||||
fun case_4() {
|
||||
val x = object<T> {
|
||||
fun test() = 10 as T
|
||||
}
|
||||
|
||||
val y = x.test() // type y is T
|
||||
}
|
||||
|
||||
inline fun <reified T> case_5() {
|
||||
val x = object<T> {
|
||||
fun test() = 10 as T
|
||||
}
|
||||
|
||||
val z = x.test()
|
||||
|
||||
if (z is T) {
|
||||
// z is {T!! & T!!} (smart cast from T)
|
||||
<!UNRESOLVED_REFERENCE!>println<!>(z)
|
||||
}
|
||||
}
|
||||
Vendored
+40
@@ -0,0 +1,40 @@
|
||||
// !LANGUAGE: +ProhibitTypeParametersInAnonymousObjects
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE!
|
||||
// ISSUE: KT-28999
|
||||
|
||||
fun case_1() {
|
||||
val x = object<T> { } // type of x is <anonymous object><T>
|
||||
}
|
||||
|
||||
fun case_2() {
|
||||
val x = object<T : Number, K: Comparable<K>> { }
|
||||
}
|
||||
|
||||
fun case_3() {
|
||||
val x = object<T> <!SYNTAX!>where T : Comparable<T><!> { } // ERROR: Where clause is not allowed for objects
|
||||
}
|
||||
|
||||
val x = object<T, K: Comparable<K>> {
|
||||
fun test() = 10 as T // OK
|
||||
}
|
||||
|
||||
fun case_4() {
|
||||
val x = object<T> {
|
||||
fun test() = 10 as T
|
||||
}
|
||||
|
||||
val y = x.test() // type y is T
|
||||
}
|
||||
|
||||
inline fun <reified T> case_5() {
|
||||
val x = object<T> {
|
||||
fun test() = 10 as T
|
||||
}
|
||||
|
||||
val z = x.test()
|
||||
|
||||
if (z is T) {
|
||||
// z is {T!! & T!!} (smart cast from T)
|
||||
<!UNRESOLVED_REFERENCE!>println<!>(z)
|
||||
}
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
object A<T>
|
||||
object B<in T, out R>
|
||||
object C<T : Comparable<T>>
|
||||
|
||||
class D {
|
||||
companion object<T>
|
||||
}
|
||||
|
||||
class E {
|
||||
companion object<in T, out R>
|
||||
}
|
||||
|
||||
class F {
|
||||
companion object C<T : Comparable<T>>
|
||||
}
|
||||
|
||||
class G {
|
||||
companion object F<T>
|
||||
}
|
||||
|
||||
object H<T, R>()
|
||||
Reference in New Issue
Block a user