KT-62695 [AA] Preliminary set of tests for extensions resolve

This commit is contained in:
Roman Golyshev
2024-01-18 23:51:41 +01:00
committed by Space Team
parent c0d54f9bbf
commit f9d4a35d80
33 changed files with 936 additions and 0 deletions
@@ -0,0 +1,16 @@
package test
class Foo
fun Foo.ext() {}
val Foo.ext: Int get() = 10
/**
* [test.<caret_1>ext]
* [<caret_2>ext]
*
* [Foo.<caret_3>ext]
* [test.Foo.<caret_4>ext]
*/
fun usage() {}
@@ -0,0 +1,13 @@
Caret 1 resolved to:
0: (in test) fun test.Foo.ext()
1: (in test) val test.Foo.ext: kotlin.Int
Caret 2 resolved to:
0: (in test) fun test.Foo.ext()
1: (in test) val test.Foo.ext: kotlin.Int
Caret 3 resolved to:
Nothing (Unresolved reference)
Caret 4 resolved to:
Nothing (Unresolved reference)
@@ -0,0 +1,17 @@
package test
class Receiver
open class Base {
fun Receiver.ext() {}
}
/**
* [Receiver.<caret_1>ext]
*/
class Child : Base() {
/**
* [Receiver.<caret_2>ext]
*/
fun usage() {}
}
@@ -0,0 +1,5 @@
Caret 1 resolved to:
Nothing (Unresolved reference)
Caret 2 resolved to:
Nothing (Unresolved reference)
@@ -0,0 +1,18 @@
package test
class Base {
fun function() {}
}
fun Any.function() {}
fun Base.function(i: Int) {}
/**
* [test.<caret_1>function]
* [<caret_2>function]
*
* [Base.<caret_3>function]
* [test.Base.<caret_4>function]
*/
fun usage() {}
@@ -0,0 +1,13 @@
Caret 1 resolved to:
0: (in test) fun kotlin.Any.function()
1: (in test) fun test.Base.function(i: kotlin.Int)
Caret 2 resolved to:
0: (in test) fun kotlin.Any.function()
1: (in test) fun test.Base.function(i: kotlin.Int)
Caret 3 resolved to:
0: (in test.Base) fun function()
Caret 4 resolved to:
0: (in test.Base) fun function()
@@ -0,0 +1,19 @@
package test
fun Any.anyExt() {}
fun <T> T.genericExt() {}
/**
* [PARAM.<caret_1>anyExt]
* [PARAM.<caret_2>genericExt]
*/
fun <PARAM> usage() {}
class Foo<CLASS_PARAM> {
/**
* [CLASS_PARAM.<caret_3>anyExt]
* [CLASS_PARAM.<caret_4>genericExt]
*/
fun nestedUsage() {}
}
@@ -0,0 +1,11 @@
Caret 1 resolved to:
Nothing (Unresolved reference)
Caret 2 resolved to:
Nothing (Unresolved reference)
Caret 3 resolved to:
Nothing (Unresolved reference)
Caret 4 resolved to:
Nothing (Unresolved reference)
@@ -0,0 +1,26 @@
package test
interface Base
interface Child : Base
fun <T> T.anyExt() {}
fun <T : Base> T.baseExt() {}
fun <T : Child> T.childExt() {}
/**
* [Any.<caret_1>anyExt]
* [Base.<caret_2>anyExt]
* [Child.<caret_3>anyExt]
*
* [Any.<caret_4>baseExt]
* [Base.<caret_5>baseExt]
* [Child.<caret_6>baseExt]
*
* [Any.<caret_7>childExt]
* [Base.<caret_8>childExt]
* [Child.<caret_9>childExt]
*/
fun usage() {}
@@ -0,0 +1,26 @@
Caret 1 resolved to:
Nothing (Unresolved reference)
Caret 2 resolved to:
Nothing (Unresolved reference)
Caret 3 resolved to:
Nothing (Unresolved reference)
Caret 4 resolved to:
Nothing (Unresolved reference)
Caret 5 resolved to:
Nothing (Unresolved reference)
Caret 6 resolved to:
Nothing (Unresolved reference)
Caret 7 resolved to:
Nothing (Unresolved reference)
Caret 8 resolved to:
Nothing (Unresolved reference)
Caret 9 resolved to:
Nothing (Unresolved reference)
@@ -0,0 +1,13 @@
package test
class WithGenerics<T>
fun WithGenerics<Int>.intExt() {}
fun WithGenerics<String>.stringExt() {}
/**
* [WithGenerics.<caret_1>intExt]
* [WithGenerics.<caret_2>stringExt]
*/
fun usage() {}
@@ -0,0 +1,5 @@
Caret 1 resolved to:
Nothing (Unresolved reference)
Caret 2 resolved to:
Nothing (Unresolved reference)
@@ -0,0 +1,15 @@
package test
class Foo
fun nonExtFun() {}
val nonExtProp: Int = 10
/**
* [Foo.<caret_1>nonExtFun]
* [test.Foo.<caret_2>nonExtFun]
*
* [Foo.<caret_3>nonExtProp]
* [test.Foo.<caret_4>nonExtProp]
*/
fun usage() {}
@@ -0,0 +1,11 @@
Caret 1 resolved to:
Nothing (Unresolved reference)
Caret 2 resolved to:
Nothing (Unresolved reference)
Caret 3 resolved to:
Nothing (Unresolved reference)
Caret 4 resolved to:
Nothing (Unresolved reference)
@@ -0,0 +1,17 @@
package one.two
class Foo
fun Foo.ext() {}
/**
* [<caret_1>one.two.ext]
* [one.<caret_2>two.ext]
*
* [<caret_3>Foo.ext]
* [one.two.<caret_4>Foo.ext]
*
* [<caret_5>one.two.Foo.ext]
* [one.<caret_6>two.Foo.ext]
*/
fun usage() {}
@@ -0,0 +1,17 @@
Caret 1 resolved to:
0: package one
Caret 2 resolved to:
0: package one.two
Caret 3 resolved to:
0: (in one.two) class Foo
Caret 4 resolved to:
0: (in one.two) class Foo
Caret 5 resolved to:
0: package one
Caret 6 resolved to:
0: package one.two
@@ -0,0 +1,14 @@
package test
class Foo
fun Foo.extFun() {}
/**
* [test.<caret_1>extFun]
* [<caret_2>extFun]
*
* [Foo.<caret_3>extFun]
* [test.Foo.<caret_4>extFun]
*/
fun usage() {}
@@ -0,0 +1,11 @@
Caret 1 resolved to:
0: (in test) fun test.Foo.extFun()
Caret 2 resolved to:
0: (in test) fun test.Foo.extFun()
Caret 3 resolved to:
Nothing (Unresolved reference)
Caret 4 resolved to:
Nothing (Unresolved reference)
@@ -0,0 +1,14 @@
package test
class Foo
val Foo.extProp: Int get() = 10
/**
* [test.<caret_1>extProp]
* [<caret_2>extProp]
*
* [Foo.<caret_3>extProp]
* [test.Foo.<caret_4>extProp]
*/
fun usage() {}
@@ -0,0 +1,11 @@
Caret 1 resolved to:
0: (in test) val test.Foo.extProp: kotlin.Int
Caret 2 resolved to:
0: (in test) val test.Foo.extProp: kotlin.Int
Caret 3 resolved to:
Nothing (Unresolved reference)
Caret 4 resolved to:
Nothing (Unresolved reference)
@@ -0,0 +1,17 @@
package test
class Foo
fun Foo.ext() {}
class WithMember {
fun Foo() {}
/**
* [Foo.<caret_1>ext]
* [<caret_2>Foo.ext]
*
* [<caret_3>Foo]
*/
fun usage() {}
}
@@ -0,0 +1,8 @@
Caret 1 resolved to:
Nothing (Unresolved reference)
Caret 2 resolved to:
0: (in test.WithMember) fun Foo()
Caret 3 resolved to:
0: (in test.WithMember) fun Foo()
@@ -0,0 +1,23 @@
package test
class Foo
typealias FooAlias = Foo
fun Foo.fooExt() {}
fun FooAlias.fooAliasExt() {}
fun Any.anyExt() {}
class Other
fun Other.otherExt() {}
/**
* [FooAlias.<caret_1>fooExt]
*
* [Foo.<caret_2>fooAliasExt]
* [FooAlias.<caret_3>fooAliasExt]
*
* [FooAlias.<caret_4>anyExt]
* [FooAlias.<caret_5>otherExt]
*/
fun usage() {}
@@ -0,0 +1,14 @@
Caret 1 resolved to:
Nothing (Unresolved reference)
Caret 2 resolved to:
Nothing (Unresolved reference)
Caret 3 resolved to:
Nothing (Unresolved reference)
Caret 4 resolved to:
Nothing (Unresolved reference)
Caret 5 resolved to:
Nothing (Unresolved reference)
@@ -0,0 +1,26 @@
package test
open class Base
class Child : Base()
fun Any.anyExt() {}
fun Base.baseExt() {}
fun Child.childExt() {}
/**
* [Any.<caret_1>anyExt]
* [Base.<caret_2>anyExt]
* [Child.<caret_3>anyExt]
*
* [Any.<caret_4>baseExt]
* [Base.<caret_5>baseExt]
* [Child.<caret_6>baseExt]
*
* [Any.<caret_7>childExt]
* [Base.<caret_8>childExt]
* [Child.<caret_9>childExt]
*/
fun usage() {}
@@ -0,0 +1,26 @@
Caret 1 resolved to:
Nothing (Unresolved reference)
Caret 2 resolved to:
Nothing (Unresolved reference)
Caret 3 resolved to:
Nothing (Unresolved reference)
Caret 4 resolved to:
Nothing (Unresolved reference)
Caret 5 resolved to:
Nothing (Unresolved reference)
Caret 6 resolved to:
Nothing (Unresolved reference)
Caret 7 resolved to:
Nothing (Unresolved reference)
Caret 8 resolved to:
Nothing (Unresolved reference)
Caret 9 resolved to:
Nothing (Unresolved reference)