Forbid usage of outer's generic parameter in nested class

#KT-1174 In Progress
This commit is contained in:
Alexander Udalov
2012-12-10 20:36:06 +04:00
parent 43c37398af
commit 7a3000ccac
6 changed files with 26 additions and 7 deletions
@@ -19,10 +19,6 @@ class MyIterator<T>(val array : ReadOnlyArray<T>) : javaUtilIterator<T> {
trait ReadOnlyArray<out T> : ISized, Iterable<T> {
fun get(index : Int) : T
class Default {
fun check(v: Any) = v is T
}
override fun iterator() : Iterator<T> = MyIterator<T>(this)
}
+2 -2
View File
@@ -1,9 +1,9 @@
class Box<T>() {
open class Inner () {
open inner class Inner () {
fun isT(s : Any) = if(s is T) "OK" else "fail"
}
class Inner2() : Inner() {
inner class Inner2() : Inner() {
}
fun inner() = Inner2()
@@ -19,7 +19,7 @@ class MyIterable<T> : Iterable<T>
{
override fun iterator(): Iterator<T> = MyIterator()
class MyIterator : Iterator<T>
inner class MyIterator : Iterator<T>
{
override fun hasNext(): Boolean = false
override fun next(): T {
@@ -0,0 +1,13 @@
class Outer<T> {
class Nested {
fun foo(t: <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>T<!>) = t
}
class Nested2<T> {
fun foo(t: T) = t
}
inner class Inner {
fun foo(t: T) = t
}
}