Do not insert type parameters when replacing javaClass with T::class

Type parameters are invalid for class literal unless class is `Array`
This commit is contained in:
Denis Zharkov
2015-05-26 12:08:08 +03:00
parent eb80764d21
commit cab2328b64
6 changed files with 53 additions and 2 deletions
@@ -0,0 +1,15 @@
// "Replace javaClass<T>() with T::class in whole project" "true"
// WITH_RUNTIME
Ann(List::class) class MyClass1
Ann(List::class) class MyClass2
Ann(MutableList::class) class MyClass3
Ann(Array<String>::class) class MyClass4
Ann(Array<*>::class) class MyClass5
Ann(Array<in String>::class) class MyClass6
class Outer<T> {
Ann(Array<T>::class)
class Nested
}
@@ -0,0 +1,15 @@
// "Replace javaClass<T>() with T::class in whole project" "true"
// WITH_RUNTIME
Ann(javaClass<List<String>><caret>()) class MyClass1
Ann(javaClass<List<*>>()) class MyClass2
Ann(javaClass<MutableList<in String>>()) class MyClass3
Ann(javaClass<Array<String>>()) class MyClass4
Ann(javaClass<Array<*>>()) class MyClass5
Ann(javaClass<Array<in String>>()) class MyClass6
class Outer<T> {
Ann(javaClass<Array<T>>())
class Nested
}
@@ -0,0 +1,3 @@
public @interface Ann {
Class<?> value();
}