diff --git a/compiler/testData/codegen/box/valueClasses/inlineFunctions.kt b/compiler/testData/codegen/box/valueClasses/inlineFunctions.kt index d3e25a5d808..fe143e661f3 100644 --- a/compiler/testData/codegen/box/valueClasses/inlineFunctions.kt +++ b/compiler/testData/codegen/box/valueClasses/inlineFunctions.kt @@ -42,6 +42,25 @@ import kotlin.math.sqrt fun supply(x: Any?) = Unit +object InfiniteDPoints { + class DPointsIterator { + @PublishedApi + internal var i = 1.0 + inline operator fun next() = DPoint(i, -i).also { i++ } + inline operator fun hasNext() = true + } + operator fun iterator() = DPointsIterator() +} + +fun forStatement() { + var i = 1.0 + for (x in InfiniteDPoints) { + require(x == DPoint(i, -i)) + i++ + if (i == 5.0) break + } +} + fun box(): String { val point = DPoint(1.0, 2.0) val pointX2 = DPoint(2.0, 4.0) @@ -95,6 +114,7 @@ fun box(): String { require(segment.middle1.x == 1.5) require(segment.middle1.y == 3.0) supply("v") + forStatement() return "OK" } diff --git a/compiler/testData/codegen/box/valueClasses/inlineFunctions.txt b/compiler/testData/codegen/box/valueClasses/inlineFunctions.txt index fd67aaa35c2..5350a9e02ca 100644 --- a/compiler/testData/codegen/box/valueClasses/inlineFunctions.txt +++ b/compiler/testData/codegen/box/valueClasses/inlineFunctions.txt @@ -76,6 +76,29 @@ public final class DependencyKt { public final static method square(p0: double): double } +@kotlin.Metadata +public final class InfiniteDPoints$DPointsIterator { + // source: 'test.kt' + private field i: double + public method (): void + public synthetic deprecated static @kotlin.PublishedApi method getI$annotations(): void + public final method getI(): double + public final method hasNext(): boolean + public final @org.jetbrains.annotations.NotNull method next(): DPoint + public final method setI(p0: double): void + public final inner class InfiniteDPoints$DPointsIterator +} + +@kotlin.Metadata +public final class InfiniteDPoints { + // source: 'test.kt' + public final static @org.jetbrains.annotations.NotNull field INSTANCE: InfiniteDPoints + static method (): void + private method (): void + public final @org.jetbrains.annotations.NotNull method iterator(): InfiniteDPoints$DPointsIterator + public final inner class InfiniteDPoints$DPointsIterator +} + @kotlin.coroutines.jvm.internal.DebugMetadata @kotlin.Metadata final class TestKt$box$13 { @@ -109,7 +132,9 @@ public final class TestKt { inner (anonymous) class TestKt$suspendFun$1 public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String public final static @org.jetbrains.annotations.Nullable method f(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object + public final static method forStatement(): void public final static method supply(@org.jetbrains.annotations.Nullable p0: java.lang.Object): void public final static @org.jetbrains.annotations.Nullable method suspendFun(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object + public final inner class InfiniteDPoints$DPointsIterator public final inner class kotlin/jvm/internal/Ref$IntRef }