Correct diagnostics and quick-fix for T::class with non-reified type parameter #KT-9590 fixed

This commit is contained in:
Simon Ogorodnik
2016-09-09 04:58:15 +03:00
committed by Mikhail Glukhikh
parent 998399bcd8
commit 2b63bcaa19
15 changed files with 152 additions and 7 deletions
@@ -0,0 +1,4 @@
// "Make 'T' reified and 'dereferenceClass' inline" "true"
fun <T: Any> dereferenceClass(): Any =
T::class<caret>
@@ -0,0 +1,4 @@
// "Make 'T' reified and 'dereferenceClass' inline" "true"
inline fun <reified T: Any> dereferenceClass(): Any =
T::class<caret>
@@ -0,0 +1,6 @@
// "Make 'R' reified and 'flatten' inline" "true"
// WITH_RUNTIME
fun <T: Iterable<Array<R>>, R> T.flatten(): Array<R> {
return this.flatMap { it.asIterable() }.toTypedArray<caret>()
}
@@ -0,0 +1,6 @@
// "Make 'R' reified and 'flatten' inline" "true"
// WITH_RUNTIME
inline fun <T: Iterable<Array<R>>, reified R> T.flatten(): Array<R> {
return this.flatMap { it.asIterable() }.toTypedArray<caret>()
}
@@ -0,0 +1,6 @@
// "Make 'T' reified and 'flatten' inline" "true"
// WITH_RUNTIME
fun <T> Array<Array<T>>.flatten(): Array<T> {
return this.flatMap { it.asIterable() }.toTypedArray<caret>()
}
@@ -0,0 +1,6 @@
// "Make 'T' reified and 'flatten' inline" "true"
// WITH_RUNTIME
inline fun <reified T> Array<Array<T>>.flatten(): Array<T> {
return this.flatMap { it.asIterable() }.toTypedArray<caret>()
}