Inline iterator test

This commit is contained in:
Michael Bogdanov
2015-03-13 14:39:35 +03:00
parent 596c5b8d41
commit 0999cd99e3
6 changed files with 105 additions and 0 deletions
@@ -0,0 +1,21 @@
import zzz.*
fun box(): String {
var (p, l) = A(1, 11)
return if (p == 1 && l == 11) "OK" else "fail: $p"
}
//SMAP
//inlineComponent.1.kt
//Kotlin
//*S Kotlin
//*F
//+ 1 inlineComponent.1.kt
//_DefaultPackage
//+ 2 inlineComponent.2.kt
//zzz/ZzzPackage
//*L
//1#1,21:1
//5#2,3:22
//*E
@@ -0,0 +1,9 @@
package zzz
public class A(val a: Int, val b: Int)
inline fun A.component1() = a
inline fun A.component2() = b
//SMAP ABSENT
@@ -0,0 +1,24 @@
import zzz.*
fun box(): String {
var p = 0
for (i in A(5)) {
p += i
}
return if (p == 15) "OK" else "fail: $p"
}
//SMAP
//inlineIterator.1.kt
//Kotlin
//*S Kotlin
//*F
//+ 1 inlineIterator.1.kt
//_DefaultPackage
//+ 2 inlineIterator.2.kt
//zzz/ZzzPackage
//*L
//1#1,24:1
//5#2:25
//*E
@@ -0,0 +1,7 @@
package zzz
public class A(val p: Int)
inline fun A.iterator() = (1..p).iterator()
//SMAP ABSENT