More tests for continue in for loops
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
fun for_int_range(): Int {
|
fun for_int_range(): Int {
|
||||||
var c = 0
|
var c = 0
|
||||||
@loop for (i in 1..10) {
|
for (i in 1..10) {
|
||||||
if (c >= 5) continue @loop
|
if (c >= 5) continue
|
||||||
c++
|
c++
|
||||||
}
|
}
|
||||||
return c
|
return c
|
||||||
@@ -11,8 +11,8 @@ fun for_byte_range(): Int {
|
|||||||
var c = 0
|
var c = 0
|
||||||
val from: Byte = 1
|
val from: Byte = 1
|
||||||
val to: Byte = 10
|
val to: Byte = 10
|
||||||
@loop for (i in from..to) {
|
for (i in from..to) {
|
||||||
if (c >= 5) continue @loop
|
if (c >= 5) continue
|
||||||
c++
|
c++
|
||||||
}
|
}
|
||||||
return c
|
return c
|
||||||
@@ -22,8 +22,8 @@ fun for_long_range(): Int {
|
|||||||
var c = 0
|
var c = 0
|
||||||
val from: Long = 1
|
val from: Long = 1
|
||||||
val to: Long = 10
|
val to: Long = 10
|
||||||
@loop for (i in from..to) {
|
for (i in from..to) {
|
||||||
if (c >= 5) continue @loop
|
if (c >= 5) continue
|
||||||
c++
|
c++
|
||||||
}
|
}
|
||||||
return c
|
return c
|
||||||
@@ -34,8 +34,8 @@ fun for_int_list(): Int {
|
|||||||
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
var c = 0
|
var c = 0
|
||||||
@loop for (i in a) {
|
for (i in a) {
|
||||||
if (c >= 5) continue @loop
|
if (c >= 5) continue
|
||||||
c++
|
c++
|
||||||
}
|
}
|
||||||
return c
|
return c
|
||||||
@@ -46,8 +46,8 @@ fun for_byte_list(): Int {
|
|||||||
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
var c = 0
|
var c = 0
|
||||||
@loop for (i in a) {
|
for (i in a) {
|
||||||
if (c >= 5) continue @loop
|
if (c >= 5) continue
|
||||||
c++
|
c++
|
||||||
}
|
}
|
||||||
return c
|
return c
|
||||||
@@ -58,8 +58,8 @@ fun for_long_list(): Int {
|
|||||||
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
var c = 0
|
var c = 0
|
||||||
@loop for (i in a) {
|
for (i in a) {
|
||||||
if (c >= 5) continue @loop
|
if (c >= 5) continue
|
||||||
c++
|
c++
|
||||||
}
|
}
|
||||||
return c
|
return c
|
||||||
@@ -70,8 +70,20 @@ fun for_double_list(): Int {
|
|||||||
a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0)
|
a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0)
|
||||||
a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0)
|
a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0)
|
||||||
var c = 0
|
var c = 0
|
||||||
@loop for (i in a) {
|
for (i in a) {
|
||||||
if (c >= 5) continue @loop
|
if (c >= 5) continue
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun for_object_list(): Int {
|
||||||
|
val a = java.util.ArrayList<Any>()
|
||||||
|
a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0)
|
||||||
|
a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0)
|
||||||
|
var c = 0
|
||||||
|
for (i in a) {
|
||||||
|
if (c >= 5) continue
|
||||||
c++
|
c++
|
||||||
}
|
}
|
||||||
return c
|
return c
|
||||||
@@ -80,8 +92,8 @@ fun for_double_list(): Int {
|
|||||||
fun for_str_array(): Int {
|
fun for_str_array(): Int {
|
||||||
val a = Array<String>(10) {i -> "$i"}
|
val a = Array<String>(10) {i -> "$i"}
|
||||||
var c = 0
|
var c = 0
|
||||||
@loop for (i in a) {
|
for (i in a) {
|
||||||
if (c >= 5) continue @loop
|
if (c >= 5) continue
|
||||||
c++
|
c++
|
||||||
}
|
}
|
||||||
return c
|
return c
|
||||||
@@ -90,8 +102,8 @@ fun for_str_array(): Int {
|
|||||||
fun for_intarray(): Int {
|
fun for_intarray(): Int {
|
||||||
val a = IntArray(10)
|
val a = IntArray(10)
|
||||||
var c = 0
|
var c = 0
|
||||||
@loop for (i in a) {
|
for (i in a) {
|
||||||
if (c >= 5) continue @loop
|
if (c >= 5) continue
|
||||||
c++
|
c++
|
||||||
}
|
}
|
||||||
return c
|
return c
|
||||||
|
|||||||
@@ -0,0 +1,123 @@
|
|||||||
|
fun for_int_range(): Int {
|
||||||
|
var c = 0
|
||||||
|
@loop for (i in 1..10) {
|
||||||
|
if (c >= 5) continue @loop
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun for_byte_range(): Int {
|
||||||
|
var c = 0
|
||||||
|
val from: Byte = 1
|
||||||
|
val to: Byte = 10
|
||||||
|
@loop for (i in from..to) {
|
||||||
|
if (c >= 5) continue @loop
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun for_long_range(): Int {
|
||||||
|
var c = 0
|
||||||
|
val from: Long = 1
|
||||||
|
val to: Long = 10
|
||||||
|
@loop for (i in from..to) {
|
||||||
|
if (c >= 5) continue @loop
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun for_int_list(): Int {
|
||||||
|
val a = java.util.ArrayList<Int>()
|
||||||
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
|
var c = 0
|
||||||
|
@loop for (i in a) {
|
||||||
|
if (c >= 5) continue @loop
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun for_byte_list(): Int {
|
||||||
|
val a = java.util.ArrayList<Byte>()
|
||||||
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
|
var c = 0
|
||||||
|
@loop for (i in a) {
|
||||||
|
if (c >= 5) continue @loop
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun for_long_list(): Int {
|
||||||
|
val a = java.util.ArrayList<Long>()
|
||||||
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
|
a.add(0); a.add(0); a.add(0); a.add(0); a.add(0)
|
||||||
|
var c = 0
|
||||||
|
@loop for (i in a) {
|
||||||
|
if (c >= 5) continue @loop
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun for_double_list(): Int {
|
||||||
|
val a = java.util.ArrayList<Double>()
|
||||||
|
a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0)
|
||||||
|
a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0)
|
||||||
|
var c = 0
|
||||||
|
@loop for (i in a) {
|
||||||
|
if (c >= 5) continue @loop
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun for_object_list(): Int {
|
||||||
|
val a = java.util.ArrayList<Any>()
|
||||||
|
a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0)
|
||||||
|
a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0); a.add(0.0)
|
||||||
|
var c = 0
|
||||||
|
@loop for (i in a) {
|
||||||
|
if (c >= 5) continue @loop
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun for_str_array(): Int {
|
||||||
|
val a = Array<String>(10) {i -> "$i"}
|
||||||
|
var c = 0
|
||||||
|
@loop for (i in a) {
|
||||||
|
if (c >= 5) continue @loop
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun for_intarray(): Int {
|
||||||
|
val a = IntArray(10)
|
||||||
|
var c = 0
|
||||||
|
@loop for (i in a) {
|
||||||
|
if (c >= 5) continue @loop
|
||||||
|
c++
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
if (for_int_range() != 5) return "fail 1"
|
||||||
|
if (for_byte_range() != 5) return "fail 2"
|
||||||
|
if (for_long_range() != 5) return "fail 3"
|
||||||
|
if (for_intarray() != 5) return "fail 4"
|
||||||
|
if (for_str_array() != 5) return "fail 5"
|
||||||
|
if (for_int_list() != 5) return "fail 6"
|
||||||
|
if (for_byte_list() != 5) return "fail 7"
|
||||||
|
if (for_long_list() != 5) return "fail 8"
|
||||||
|
if (for_double_list() != 5) return "fail 9"
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
@@ -349,6 +349,11 @@ public class ControlStructuresTest extends CodegenTestCase {
|
|||||||
blackBoxFile("controlStructures/continueInFor.kt");
|
blackBoxFile("controlStructures/continueInFor.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testContinueToLabelInFor() throws Exception {
|
||||||
|
createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_AND_ANNOTATIONS);
|
||||||
|
blackBoxFile("controlStructures/continueToLabelInFor.kt");
|
||||||
|
}
|
||||||
|
|
||||||
public void testKt628() throws Exception {
|
public void testKt628() throws Exception {
|
||||||
createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY);
|
createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY);
|
||||||
blackBoxFile("regressions/kt628.kt");
|
blackBoxFile("regressions/kt628.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user