FIR: introduce symbols + type parameter resolve #KT-24064 Fixed

This commit is contained in:
Mikhail Glukhikh
2018-03-21 17:46:28 +03:00
parent 3495f09ac4
commit d15fb1963b
57 changed files with 549 additions and 147 deletions
@@ -1,7 +1,7 @@
FILE: genericFunctions.kt
public? final? interface Any() {
}
<T : Any> public? final? inline function safeAsAny.(): T? {
<reified T : Any> public? final? inline function safeAsAny.(): T? {
STUB
}
public? abstract class Summator() {
@@ -22,6 +22,6 @@ FILE: simpleClass.kt
public? final? property fau(var): Double
public? get(): Double
public? set(value: Double): R/kotlin.Unit/
public? set(value: Double): R/kotlin/Unit/
}
@@ -3,6 +3,6 @@ FILE: typeAliasWithGeneric.kt
}
<S, T : A> public? final? interface B() {
}
public? final typealias C = B<T, A>
<T> public? final typealias C = B<T, A>
public? final? class D() : C<A> {
}
+1 -1
View File
@@ -1,5 +1,5 @@
FILE: F.kt
(resolved) public? open class A() {
}
(resolved) public? final class B() : R/<root>.A/ {
(resolved) public? final class B() : R/A/ {
}
+3 -3
View File
@@ -4,9 +4,9 @@ FILE: NestedOfAliasedType.kt
}
}
(resolved) public? final typealias TA = R/<root>.A/
(resolved) public? final class B() : R/<root>.TA = <root>.A/ {
(resolved) public? final class NestedInB() : R/<root>.A.Nested/ {
(resolved) public? final typealias TA = R/A/
(resolved) public? final class B() : R/TA = A/ {
(resolved) public? final class NestedInB() : R/A.Nested/ {
}
}
+4 -4
View File
@@ -1,14 +1,14 @@
FILE: NestedSuperType.kt
(resolved) public? abstract class My() {
(resolved) public? abstract class NestedOne() : R/p.My/ {
(resolved) public? abstract class NestedTwo() : R/p.My.NestedOne/ {
(resolved) public? abstract class NestedOne() : R/p/My/ {
(resolved) public? abstract class NestedTwo() : R/p/My.NestedOne/ {
}
}
}
(resolved) public? final class Your() : R/p.My/ {
(resolved) public? final class NestedThree() : R/p.My.NestedOne/ {
(resolved) public? final class Your() : R/p/My/ {
(resolved) public? final class NestedThree() : R/p/My.NestedOne/ {
}
}
@@ -1,5 +1,5 @@
FILE: TwoDeclarationsInSameFile.kt
(resolved) public? open class A() {
}
(resolved) public? final class B() : R/p.A/ {
(resolved) public? final class B() : R/p/A/ {
}
@@ -1,9 +1,9 @@
FILE: NestedSuperType.kt
(resolved) public? final class A() : R/b.B/ {
(resolved) public? final class NestedInA1() : R/b.B.NestedInB/ {
(resolved) public? final class A() : R/b/B/ {
(resolved) public? final class NestedInA1() : R/b/B.NestedInB/ {
}
(resolved) public? final class NestedInA2() : R/c.C.NestedInC/ {
(resolved) public? final class NestedInA2() : R/c/C.NestedInC/ {
}
}
@@ -1,3 +1,3 @@
FILE: simpleAliasedImport.kt
(resolved) public? final class YourClass() : R/b.MyClass/ {
(resolved) public? final class YourClass() : R/b/MyClass/ {
}
+1 -1
View File
@@ -1,3 +1,3 @@
FILE: simpleImport.kt
(resolved) public? final class YourClass() : R/b.MyClass/ {
(resolved) public? final class YourClass() : R/b/MyClass/ {
}
@@ -1,3 +1,3 @@
FILE: simpleImportNested.kt
(resolved) public? final class YourClass() : R/a.MyClass.MyNested/ {
(resolved) public? final class YourClass() : R/a/MyClass.MyNested/ {
}
@@ -1,3 +1,3 @@
FILE: simpleImportOuter.kt
(resolved) public? final class My() : R/a.Outer.Nested/ {
(resolved) public? final class My() : R/a/Outer.Nested/ {
}
+2 -2
View File
@@ -6,7 +6,7 @@ FILE: simpleClass.kt
public? get(): R/error: Failed to resolve qualified type/
}
(resolved) public? final class SomeClass() : R/<root>.SomeInterface/ {
(resolved) public? final class SomeClass() : R/SomeInterface/ {
private final? property baz(val): R/error: Not supported: FirImplicitTypeImpl/ = STUB
public? get(): R/error: Not supported: FirImplicitTypeImpl/
@@ -22,6 +22,6 @@ FILE: simpleClass.kt
public? final? property fau(var): R/error: Failed to resolve qualified type/
public? get(): R/error: Failed to resolve qualified type/
public? set(value: R/error: Failed to resolve qualified type/): R/kotlin.Unit/
public? set(value: R/error: Failed to resolve qualified type/): R/kotlin/Unit/
}
+2 -2
View File
@@ -1,6 +1,6 @@
FILE: simpleTypeAlias.kt
(resolved) public? abstract interface B() {
}
(resolved) public? final typealias C = R/<root>.B/
(resolved) public? final class D() : R/<root>.C = <root>.B/ {
(resolved) public? final typealias C = R/B/
(resolved) public? final class D() : R/C = B/ {
}
+7
View File
@@ -0,0 +1,7 @@
open class A
interface B<S, T : A>
typealias C<T> = B<T, A>
class D : C<A>
@@ -0,0 +1,8 @@
FILE: typeAliasWithGeneric.kt
(resolved) public? open class A() {
}
(resolved) <(resolved) S, (resolved) T : R/A/> public? abstract interface B() {
}
(resolved) <(resolved) T> public? final typealias C = R/B<T, A>/
(resolved) public? final class D() : R/C<A> = B<T, A>/ {
}
+17
View File
@@ -0,0 +1,17 @@
package test
interface Some
abstract class My<T : Some> {
inner class T
abstract val x: T
abstract fun foo(arg: T)
abstract val y: My.T
abstract val z: test.My.T
class Some : T()
}
+22
View File
@@ -0,0 +1,22 @@
FILE: typeParameterVsNested.kt
(resolved) public? abstract interface Some() {
}
(resolved) <(resolved) T : R/test/Some/> public? abstract class My() {
(resolved) public? final class T(inner) {
}
public? abstract property x(val): R/T/
public? get(): R/T/
public? abstract function foo(arg: R/T/): R/error: Not supported: FirImplicitTypeImpl/
public? abstract property y(val): R/test/My.T/
public? get(): R/test/My.T/
public? abstract property z(val): R/test/My.T/
public? get(): R/test/My.T/
(resolved) public? final class Some() : R/T/ {
}
}