Add more tests for PropertyAccessorDescriptor.isDeafult() usages

This commit is contained in:
Nikolay Krasko
2016-06-18 21:47:38 +03:00
committed by Nikolay Krasko
parent c936b3f3e0
commit eee45e91ce
21 changed files with 184 additions and 0 deletions
+12
View File
@@ -266,3 +266,15 @@ fun inForLoop(x: Any?) {
}
for (i in <error descr="[ITERATOR_MISSING] For-loop range must have an 'iterator()' method">x</error>) {}
}
class ExplicitAccessorForAnnotation {
val tt: String? = "good"
<info descr="null">get</info>
fun foo(): String {
if (tt is String) {
return <error descr="[SMARTCAST_IMPOSSIBLE] Smart cast to 'String' is impossible, because 'tt' is a property that has open or custom getter">tt</error>
}
return ""
}
}
@@ -0,0 +1,10 @@
class Test {
var serial: String = ""
get
set
var name: String = ""
get
<caret>
}
// FORCED
@@ -0,0 +1,20 @@
class Test {
var serial: String = ""
get
set
var name: String = ""
get
override fun equals(other: Any?): Boolean{
if (this === other) return true
if (other?.javaClass != javaClass) return false
return true
}
override fun hashCode(): Int{
return 0
}
}
// FORCED
@@ -0,0 +1,8 @@
class Test {
var serial: String = ""
get
set
var name: String = ""
get
<caret>
}
@@ -0,0 +1,12 @@
class Test {
var serial: String = ""
get
set
var name: String = ""
get
override fun toString(): String{
return "Test()"
}
}
@@ -0,0 +1,8 @@
LineBreakpoint created at privatePropertyWithExplicitDefaultGetter.kt:7
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !OUTPUT_PATH!;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! privatePropertyWithExplicitDefaultGetter.PrivatePropertyWithExplicitDefaultGetterKt
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
privatePropertyWithExplicitDefaultGetter.kt:7
Compile bytecode for base.a
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,18 @@
package privatePropertyWithExplicitDefaultGetter
fun main(args: Array<String>) {
val base = Some()
//Breakpoint!
args.size
}
annotation class Small
class Some {
private val a: Int = 1
@Small get
}
// EXPRESSION: base.a
// RESULT: java.lang.NoSuchMethodError : Method not found: MemberDescription(ownerInternalName = privatePropertyWithExplicitDefaultGetter/Some, name = getA, desc = ()I, isStatic = false)