| // TARGET_BACKEND: JVM | |
| // WITH_STDLIB | |
| // ISSUE: KT-21092, KT-81931 | |
| class A<T>(val b: T) | |
| fun box(): String { | |
| val test = A(1).b::javaClass.get().simpleName | |
| if (test != "Integer") throw Exception("test: $test") | |
| val test1 = 1::javaClass.get().simpleName | |
| if (test1 != "Integer") throw Exception("test1: $test1") | |
| val test2 = Int::javaClass.get(2).simpleName | |
| if (test2 != "Integer") throw Exception("test2: $test2") | |
| return "OK" | |
| } | |
| /* | |
| The correct behaviour would be: | |
| if (test != "int") throw Exception("test: $test") | |
| val test1 = A(1 as java.lang.Integer).b::javaClass.get().simpleName | |
| if (test1 != "Integer") throw Exception("test: $test1") | |
| val test2 = A(1 as Number).b::javaClass.get().simpleName | |
| if (test2 != "Integer") throw Exception("test: $test2") | |
| val test3 = 1::javaClass.get().simpleName | |
| if (test3 != "int") throw Exception("test: $test3") | |
| val test4 = (1 as java.lang.Integer)::javaClass.get().simpleName | |
| if (test4 != "Integer") throw Exception("test: $test4") | |
| val test5 = (1 as Number)::javaClass.get().simpleName | |
| if (test5 != "Integer") throw Exception("test: $test5") | |
| */ |