Create From Usage: Fix StackOverflowException on recursive type parameter bounds

#EA-69240 Fixed
This commit is contained in:
Alexey Sedunov
2015-08-18 15:57:32 +03:00
parent 69218e2647
commit d18a9f6d8a
8 changed files with 78 additions and 14 deletions
@@ -0,0 +1,11 @@
// "Create object 'Foo'" "false"
// ACTION: Create local variable 'Foo'
// ACTION: Create parameter 'Foo'
// ACTION: Create property 'Foo'
// ACTION: Split property declaration
// ERROR: Unresolved reference: Foo
open class Cyclic<E : Cyclic<E>>
fun test() {
val c : Cyclic<*> = <caret>Foo
}
@@ -0,0 +1,6 @@
// "Create parameter 'foo'" "true"
class Cyclic<E : Cyclic<E>>
fun test() {
val c : Cyclic<*> = <caret>foo
}
@@ -0,0 +1,6 @@
// "Create parameter 'foo'" "true"
class Cyclic<E : Cyclic<E>>
fun test(foo: Cyclic<*>) {
val c : Cyclic<*> = foo
}
@@ -0,0 +1,7 @@
// "Create property 'foo'" "true"
// ERROR: Property must be initialized
class Cyclic<E : Cyclic<E>>
fun test() {
val c : Cyclic<*> = <caret>foo
}
@@ -0,0 +1,9 @@
// "Create property 'foo'" "true"
// ERROR: Property must be initialized
class Cyclic<E : Cyclic<E>>
val foo: Cyclic<*>
fun test() {
val c : Cyclic<*> = foo
}