Reduce highlighting range for UNCHECKED_CAST
#KT-18985 Fixed
This commit is contained in:
@@ -830,7 +830,7 @@ public interface Errors {
|
|||||||
// Casts and is-checks
|
// Casts and is-checks
|
||||||
|
|
||||||
DiagnosticFactory1<KtElement, KotlinType> CANNOT_CHECK_FOR_ERASED = DiagnosticFactory1.create(ERROR);
|
DiagnosticFactory1<KtElement, KotlinType> CANNOT_CHECK_FOR_ERASED = DiagnosticFactory1.create(ERROR);
|
||||||
DiagnosticFactory2<KtBinaryExpressionWithTypeRHS, KotlinType, KotlinType> UNCHECKED_CAST = DiagnosticFactory2.create(WARNING);
|
DiagnosticFactory2<KtBinaryExpressionWithTypeRHS, KotlinType, KotlinType> UNCHECKED_CAST = DiagnosticFactory2.create(WARNING, AS_TYPE);
|
||||||
|
|
||||||
DiagnosticFactory0<KtBinaryExpressionWithTypeRHS> USELESS_CAST = DiagnosticFactory0.create(WARNING, AS_TYPE);
|
DiagnosticFactory0<KtBinaryExpressionWithTypeRHS> USELESS_CAST = DiagnosticFactory0.create(WARNING, AS_TYPE);
|
||||||
DiagnosticFactory0<KtSimpleNameExpression> CAST_NEVER_SUCCEEDS = DiagnosticFactory0.create(WARNING);
|
DiagnosticFactory0<KtSimpleNameExpression> CAST_NEVER_SUCCEEDS = DiagnosticFactory0.create(WARNING);
|
||||||
|
|||||||
+1
-1
@@ -43,7 +43,7 @@ typealias ArrayOfEnumEntry = Array<Color.<!ENUM_ENTRY_AS_TYPE!>RED<!>>
|
|||||||
|
|
||||||
typealias ArrayOfEnumEntryAlias = Array<RedAlias>
|
typealias ArrayOfEnumEntryAlias = Array<RedAlias>
|
||||||
|
|
||||||
fun <T> bar(a: Any): T = <!UNCHECKED_CAST!>a as T<!>
|
fun <T> bar(a: Any): T = a <!UNCHECKED_CAST!>as T<!>
|
||||||
|
|
||||||
fun <T> foo() {
|
fun <T> foo() {
|
||||||
foo<Color.<!ENUM_ENTRY_AS_TYPE!>RED<!>>()
|
foo<Color.<!ENUM_ENTRY_AS_TYPE!>RED<!>>()
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
fun f(x: Any) = <!UNCHECKED_CAST!>x as Array<String><!>
|
fun f(x: Any) = x <!UNCHECKED_CAST!>as Array<String><!>
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
|
|
||||||
fun ff(c: MutableCollection<String>) = <!UNCHECKED_CAST!>c as MutableList<Int><!>
|
fun ff(c: MutableCollection<String>) = c <!UNCHECKED_CAST!>as MutableList<Int><!>
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
|
|
||||||
fun ff(a: Any) = <!UNCHECKED_CAST!>a as MutableList<String><!>
|
fun ff(a: Any) = a <!UNCHECKED_CAST!>as MutableList<String><!>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
class Class<T>(val name: String, val instance: T)
|
class Class<T>(val name: String, val instance: T)
|
||||||
|
|
||||||
fun <T> test(clazz: Class<T>) {
|
fun <T> test(clazz: Class<T>) {
|
||||||
println((<!UNCHECKED_CAST!>clazz as Class<Any><!>).name)
|
println((clazz <!UNCHECKED_CAST!>as Class<Any><!>).name)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun use() {
|
fun use() {
|
||||||
@@ -12,22 +12,22 @@ fun use() {
|
|||||||
|
|
||||||
fun checkArrays(): Array<Any> {
|
fun checkArrays(): Array<Any> {
|
||||||
val someArray = arrayOfNulls<Any>(5)
|
val someArray = arrayOfNulls<Any>(5)
|
||||||
<!UNCHECKED_CAST!>someArray as Array<Int><!>
|
someArray <!UNCHECKED_CAST!>as Array<Int><!>
|
||||||
return <!UNCHECKED_CAST!>someArray as Array<Any><!>
|
return someArray <!UNCHECKED_CAST!>as Array<Any><!>
|
||||||
}
|
}
|
||||||
|
|
||||||
class Wrapper<T>(val x: T)
|
class Wrapper<T>(val x: T)
|
||||||
|
|
||||||
fun checkArrays2(): Array<Wrapper<String>> {
|
fun checkArrays2(): Array<Wrapper<String>> {
|
||||||
val someArray = arrayOf(Wrapper(1), Wrapper(2))
|
val someArray = arrayOf(Wrapper(1), Wrapper(2))
|
||||||
return <!UNCHECKED_CAST!>someArray as Array<Wrapper<String>><!>
|
return someArray <!UNCHECKED_CAST!>as Array<Wrapper<String>><!>
|
||||||
}
|
}
|
||||||
|
|
||||||
fun checkArrays3() {
|
fun checkArrays3() {
|
||||||
val someArray = arrayOfNulls<String>(1)
|
val someArray = arrayOfNulls<String>(1)
|
||||||
<!UNCHECKED_CAST!>someArray as Array<Any><!>
|
someArray <!UNCHECKED_CAST!>as Array<Any><!>
|
||||||
val intArray = arrayOfNulls<Int>(1)
|
val intArray = arrayOfNulls<Int>(1)
|
||||||
<!UNCHECKED_CAST!>intArray as Array<Any><!>
|
intArray <!UNCHECKED_CAST!>as Array<Any><!>
|
||||||
}
|
}
|
||||||
|
|
||||||
fun println(s: String) = s
|
fun println(s: String) = s
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ fun <T, S : T> test(x: T?, y: S, z: T) {
|
|||||||
<!USELESS_IS_CHECK!>z is T<!>
|
<!USELESS_IS_CHECK!>z is T<!>
|
||||||
<!USELESS_IS_CHECK!>z is T?<!>
|
<!USELESS_IS_CHECK!>z is T?<!>
|
||||||
|
|
||||||
<!UNCHECKED_CAST!>null as T<!>
|
null <!UNCHECKED_CAST!>as T<!>
|
||||||
null <!USELESS_CAST!>as T?<!>
|
null <!USELESS_CAST!>as T?<!>
|
||||||
<!UNCHECKED_CAST!>null as S<!>
|
null <!UNCHECKED_CAST!>as S<!>
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun <reified T> test(x: T?) {
|
inline fun <reified T> test(x: T?) {
|
||||||
|
|||||||
Vendored
+1
-1
@@ -25,7 +25,7 @@ class MyProperty<R, T> {
|
|||||||
|
|
||||||
operator fun getValue(thisRef: R, desc: KProperty<*>): T {
|
operator fun getValue(thisRef: R, desc: KProperty<*>): T {
|
||||||
println("get $thisRef ${desc.name}")
|
println("get $thisRef ${desc.name}")
|
||||||
return <!UNCHECKED_CAST!>null as T<!>
|
return null <!UNCHECKED_CAST!>as T<!>
|
||||||
}
|
}
|
||||||
|
|
||||||
operator fun setValue(thisRef: R, desc: KProperty<*>, value: T) {
|
operator fun setValue(thisRef: R, desc: KProperty<*>, value: T) {
|
||||||
|
|||||||
+3
-3
@@ -6,11 +6,11 @@ fun <E> foo(x: Any, y: Any) : Any {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (1 == 2) {
|
if (1 == 2) {
|
||||||
<!UNCHECKED_CAST!>x as C<!>
|
x <!UNCHECKED_CAST!>as C<!>
|
||||||
}
|
}
|
||||||
|
|
||||||
if (2 == 3) {
|
if (2 == 3) {
|
||||||
<!UNCHECKED_CAST!>x as? C<!>
|
x <!UNCHECKED_CAST!>as? C<!>
|
||||||
}
|
}
|
||||||
|
|
||||||
class Outer<F> {
|
class Outer<F> {
|
||||||
@@ -22,7 +22,7 @@ fun <E> foo(x: Any, y: Any) : Any {
|
|||||||
return y
|
return y
|
||||||
}
|
}
|
||||||
|
|
||||||
<!UNCHECKED_CAST!>y as Outer<*>.Inner<!>
|
y <!UNCHECKED_CAST!>as Outer<*>.Inner<!>
|
||||||
|
|
||||||
return C()
|
return C()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import java.util.HashMap
|
|||||||
|
|
||||||
public inline fun <K,V1, V: V1> Map<K,V>.getOrElse1(key: K, defaultValue: ()-> V1) : V1 {
|
public inline fun <K,V1, V: V1> Map<K,V>.getOrElse1(key: K, defaultValue: ()-> V1) : V1 {
|
||||||
if (this.containsKey(key)) {
|
if (this.containsKey(key)) {
|
||||||
return <!UNCHECKED_CAST!>this.get(key) as V<!>
|
return this.get(key) <!UNCHECKED_CAST!>as V<!>
|
||||||
} else {
|
} else {
|
||||||
return defaultValue()
|
return defaultValue()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ fun <T> testMutableCollection(c: MutableCollection<T>, t: T) {
|
|||||||
|
|
||||||
val <!UNUSED_VARIABLE!>mutableIterator<!>: MutableIterator<T> = c.iterator()
|
val <!UNUSED_VARIABLE!>mutableIterator<!>: MutableIterator<T> = c.iterator()
|
||||||
c.add(t)
|
c.add(t)
|
||||||
c.remove(<!UNCHECKED_CAST!>1 as T<!>)
|
c.remove(1 <!UNCHECKED_CAST!>as T<!>)
|
||||||
c.addAll(c)
|
c.addAll(c)
|
||||||
c.removeAll(c)
|
c.removeAll(c)
|
||||||
c.retainAll(c)
|
c.retainAll(c)
|
||||||
@@ -84,7 +84,7 @@ fun <T> testMutableSet(s: MutableSet<T>, t: T) {
|
|||||||
|
|
||||||
val <!UNUSED_VARIABLE!>mutableIterator<!>: MutableIterator<T> = s.iterator()
|
val <!UNUSED_VARIABLE!>mutableIterator<!>: MutableIterator<T> = s.iterator()
|
||||||
s.add(t)
|
s.add(t)
|
||||||
s.remove(<!UNCHECKED_CAST!>1 as T<!>)
|
s.remove(1 <!UNCHECKED_CAST!>as T<!>)
|
||||||
s.addAll(s)
|
s.addAll(s)
|
||||||
s.removeAll(s)
|
s.removeAll(s)
|
||||||
s.retainAll(s)
|
s.retainAll(s)
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER, -SENSELESS_COMPARISON, -DEBUG_INFO_SMARTCAST
|
// !DIAGNOSTICS: -UNUSED_PARAMETER, -SENSELESS_COMPARISON, -DEBUG_INFO_SMARTCAST
|
||||||
|
|
||||||
fun <T: Any?> test1(t: Any?): Any {
|
fun <T: Any?> test1(t: Any?): Any {
|
||||||
return <!UNCHECKED_CAST!>t as T<!> ?: ""
|
return t <!UNCHECKED_CAST!>as T<!> ?: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T: Any> test2(t: Any?): Any {
|
fun <T: Any> test2(t: Any?): Any {
|
||||||
return <!UNCHECKED_CAST!>t as T<!> <!USELESS_ELVIS!>?: ""<!>
|
return t <!UNCHECKED_CAST!>as T<!> <!USELESS_ELVIS!>?: ""<!>
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T: Any?> test3(t: Any?): Any {
|
fun <T: Any?> test3(t: Any?): Any {
|
||||||
|
|||||||
+5
-5
@@ -27,7 +27,7 @@ fun main(
|
|||||||
// Lists
|
// Lists
|
||||||
a.foo(<!JAVA_TYPE_MISMATCH!>ml<!>)
|
a.foo(<!JAVA_TYPE_MISMATCH!>ml<!>)
|
||||||
a.foo(l)
|
a.foo(l)
|
||||||
a.foo(<!UNCHECKED_CAST!>ml as MutableList<Any><!>)
|
a.foo(ml <!UNCHECKED_CAST!>as MutableList<Any><!>)
|
||||||
a.foo(l as List<Any>)
|
a.foo(l as List<Any>)
|
||||||
|
|
||||||
// Iterables
|
// Iterables
|
||||||
@@ -43,25 +43,25 @@ fun main(
|
|||||||
// Sets
|
// Sets
|
||||||
a.foo(<!JAVA_TYPE_MISMATCH!>ms<!>)
|
a.foo(<!JAVA_TYPE_MISMATCH!>ms<!>)
|
||||||
a.foo(s)
|
a.foo(s)
|
||||||
a.foo(<!UNCHECKED_CAST!>ms as MutableSet<Any><!>)
|
a.foo(ms <!UNCHECKED_CAST!>as MutableSet<Any><!>)
|
||||||
a.foo(s as Set<Any>)
|
a.foo(s as Set<Any>)
|
||||||
|
|
||||||
// Maps
|
// Maps
|
||||||
a.foo(<!JAVA_TYPE_MISMATCH!>mm<!>)
|
a.foo(<!JAVA_TYPE_MISMATCH!>mm<!>)
|
||||||
a.foo(m)
|
a.foo(m)
|
||||||
a.foo(<!UNCHECKED_CAST!>mm as MutableMap<Any, Any><!>)
|
a.foo(mm <!UNCHECKED_CAST!>as MutableMap<Any, Any><!>)
|
||||||
a.foo(m as Map<Any, Any>)
|
a.foo(m as Map<Any, Any>)
|
||||||
|
|
||||||
// Map entries
|
// Map entries
|
||||||
a.foo(<!JAVA_TYPE_MISMATCH!>mme<!>)
|
a.foo(<!JAVA_TYPE_MISMATCH!>mme<!>)
|
||||||
a.foo(me)
|
a.foo(me)
|
||||||
a.foo(<!UNCHECKED_CAST!>mme as MutableMap.MutableEntry<Any, Any><!>)
|
a.foo(mme <!UNCHECKED_CAST!>as MutableMap.MutableEntry<Any, Any><!>)
|
||||||
a.foo(me as Map.Entry<Any, Any>)
|
a.foo(me as Map.Entry<Any, Any>)
|
||||||
|
|
||||||
// Lists of lists
|
// Lists of lists
|
||||||
a.foo(<!JAVA_TYPE_MISMATCH!>mll<!>)
|
a.foo(<!JAVA_TYPE_MISMATCH!>mll<!>)
|
||||||
a.foo(ll)
|
a.foo(ll)
|
||||||
a.foo(<!UNCHECKED_CAST!>mll as MutableList<MutableList<Any>><!>)
|
a.foo(mll <!UNCHECKED_CAST!>as MutableList<MutableList<Any>><!>)
|
||||||
a.foo(ll as List<List<Any>>)
|
a.foo(ll as List<List<Any>>)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -11,6 +11,6 @@ public class A {
|
|||||||
fun main(a: A, ml: Any) {
|
fun main(a: A, ml: Any) {
|
||||||
if (ml is <!CANNOT_CHECK_FOR_ERASED!>MutableList<String><!>) {
|
if (ml is <!CANNOT_CHECK_FOR_ERASED!>MutableList<String><!>) {
|
||||||
a.foo(<!JAVA_TYPE_MISMATCH, DEBUG_INFO_SMARTCAST!>ml<!>)
|
a.foo(<!JAVA_TYPE_MISMATCH, DEBUG_INFO_SMARTCAST!>ml<!>)
|
||||||
a.foo(<!UNCHECKED_CAST!>ml as List<Any><!>)
|
a.foo(ml <!UNCHECKED_CAST!>as List<Any><!>)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ open class AL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface ALE<T> : <!INTERFACE_WITH_SUPERCLASS!>AL<!> {
|
interface ALE<T> : <!INTERFACE_WITH_SUPERCLASS!>AL<!> {
|
||||||
fun getOrNull(index: Int, value: T) : T {
|
fun getOrNull(index: Int, value: T) : T {
|
||||||
return <!UNCHECKED_CAST!>get(index) as? T<!> ?: value
|
return get(index) <!UNCHECKED_CAST!>as? T<!> ?: value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,5 +3,5 @@
|
|||||||
class IdUnavailableException() : Exception() {}
|
class IdUnavailableException() : Exception() {}
|
||||||
|
|
||||||
fun <T : Any> T.getJavaClass() : Class<T> {
|
fun <T : Any> T.getJavaClass() : Class<T> {
|
||||||
return <!UNCHECKED_CAST!>((this as <!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>Object<!>).getClass()) as Class<T><!> // Some error here, because of Exception() used above. ?!!!
|
return ((this as <!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>Object<!>).getClass()) <!UNCHECKED_CAST!>as Class<T><!> // Some error here, because of Exception() used above. ?!!!
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@ fun <T> typeinfo() : TypeInfo<T> = null <!CAST_NEVER_SUCCEEDS!>as<!> TypeInfo<T>
|
|||||||
|
|
||||||
fun <T> TypeInfo<T>.getJavaClass() : java.lang.Class<T> {
|
fun <T> TypeInfo<T>.getJavaClass() : java.lang.Class<T> {
|
||||||
val t : <!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>java.lang.Object<!> = this as <!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>java.lang.Object<!>
|
val t : <!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>java.lang.Object<!> = this as <!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>java.lang.Object<!>
|
||||||
return <!UNCHECKED_CAST!>t.getClass() as java.lang.Class<T><!> // inferred type is Object but Serializable was expected
|
return t.getClass() <!UNCHECKED_CAST!>as java.lang.Class<T><!> // inferred type is Object but Serializable was expected
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T> getJavaClass() = typeinfo<T>().getJavaClass()
|
fun <T> getJavaClass() = typeinfo<T>().getJavaClass()
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
|
|
||||||
class Qwe<T : Any>(val a: T?) {
|
class Qwe<T : Any>(val a: T?) {
|
||||||
fun test1(obj: Any) {
|
fun test1(obj: Any) {
|
||||||
<!UNCHECKED_CAST!>obj as Qwe<T><!>
|
obj <!UNCHECKED_CAST!>as Qwe<T><!>
|
||||||
check(<!DEBUG_INFO_SMARTCAST!>obj<!>.a)
|
check(<!DEBUG_INFO_SMARTCAST!>obj<!>.a)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun test1(obj: Qwe<*>) {
|
fun test1(obj: Qwe<*>) {
|
||||||
<!UNCHECKED_CAST!>obj as Qwe<T><!>
|
obj <!UNCHECKED_CAST!>as Qwe<T><!>
|
||||||
check(<!DEBUG_INFO_SMARTCAST!>obj<!>.a)
|
check(<!DEBUG_INFO_SMARTCAST!>obj<!>.a)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Works already in M11
|
// Works already in M11
|
||||||
|
|
||||||
fun test(c : Class<*>) {
|
fun test(c : Class<*>) {
|
||||||
val sc = <!UNCHECKED_CAST!>c as Class<String><!>
|
val sc = c <!UNCHECKED_CAST!>as Class<String><!>
|
||||||
// No ambiguous overload
|
// No ambiguous overload
|
||||||
c.getAnnotations();
|
c.getAnnotations();
|
||||||
sc.getAnnotations();
|
sc.getAnnotations();
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ package h
|
|||||||
public class MyClass<S, T>(<!UNUSED_PARAMETER!>param<!>: MyClass<S, T>) {
|
public class MyClass<S, T>(<!UNUSED_PARAMETER!>param<!>: MyClass<S, T>) {
|
||||||
fun test() {
|
fun test() {
|
||||||
val result: MyClass<Any, Any>? = null
|
val result: MyClass<Any, Any>? = null
|
||||||
MyClass<S, Any>(<!UNCHECKED_CAST!>result as MyClass<S, Any><!>)
|
MyClass<S, Any>(result <!UNCHECKED_CAST!>as MyClass<S, Any><!>)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+4
-4
@@ -1,7 +1,7 @@
|
|||||||
fun <T : CharSequence> foo(x: Array<Any>, block: (T, Int) -> Int) {
|
fun <T : CharSequence> foo(x: Array<Any>, block: (T, Int) -> Int) {
|
||||||
var r: Any?
|
var r: Any?
|
||||||
|
|
||||||
<!ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE!>@Suppress("UNCHECKED_CAST") r<!> = block(<!UNCHECKED_CAST!>x[0] as T<!>, "" <!CAST_NEVER_SUCCEEDS!>as<!> Int)
|
<!ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE!>@Suppress("UNCHECKED_CAST") r<!> = block(x[0] <!UNCHECKED_CAST!>as T<!>, "" <!CAST_NEVER_SUCCEEDS!>as<!> Int)
|
||||||
|
|
||||||
// to prevent unused assignment diagnostic for the above statement
|
// to prevent unused assignment diagnostic for the above statement
|
||||||
<!DEBUG_INFO_SMARTCAST!>r<!>.hashCode()
|
<!DEBUG_INFO_SMARTCAST!>r<!>.hashCode()
|
||||||
@@ -9,11 +9,11 @@ fun <T : CharSequence> foo(x: Array<Any>, block: (T, Int) -> Int) {
|
|||||||
var i = 1
|
var i = 1
|
||||||
|
|
||||||
if (i != 1) {
|
if (i != 1) {
|
||||||
<!ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE!>@Suppress("UNCHECKED_CAST") i<!> += block(<!UNCHECKED_CAST!>x[0] as T<!>, "" <!CAST_NEVER_SUCCEEDS!>as<!> Int).toInt()
|
<!ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE!>@Suppress("UNCHECKED_CAST") i<!> += block(x[0] <!UNCHECKED_CAST!>as T<!>, "" <!CAST_NEVER_SUCCEEDS!>as<!> Int).toInt()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i != 1) @Suppress("UNCHECKED_CAST")
|
if (i != 1) @Suppress("UNCHECKED_CAST")
|
||||||
i += block(x[0] as T, "" <!CAST_NEVER_SUCCEEDS!>as<!> Int).toInt()
|
i += block(x[0] as T, "" <!CAST_NEVER_SUCCEEDS!>as<!> Int).toInt()
|
||||||
|
|
||||||
if (i != 1) <!ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE!>@Suppress("UNCHECKED_CAST") i<!> += block(<!UNCHECKED_CAST!>x[0] as T<!>, "" <!CAST_NEVER_SUCCEEDS!>as<!> Int).toInt()
|
if (i != 1) <!ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE!>@Suppress("UNCHECKED_CAST") i<!> += block(x[0] <!UNCHECKED_CAST!>as T<!>, "" <!CAST_NEVER_SUCCEEDS!>as<!> Int).toInt()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user