[Spec tests] Change metadata structure of implementation and spec tests

This commit is contained in:
anastasiia.spaseeva
2020-04-01 19:14:46 +03:00
parent 80cd26c9df
commit d32aca87d1
925 changed files with 2330 additions and 1657 deletions
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
* NUMBER: 1
* DESCRIPTION: A += B is exactly the same as A.plusAssign(B) or A = A.plus(B) (applied in order)
* EXCEPTION: compiletime
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
* statements, assignments, operator-assignments -> paragraph 3 -> sentence 1
* NUMBER: 2
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 10
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 11
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 10
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 11
* NUMBER: 1
* DESCRIPTION: A /= B is exactly the same as A.divAssign(B) or A = A.div(B) (applied in order)
* EXCEPTION: compiletime
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 10
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 11
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 10
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 11
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 12
* statements, assignments, operator-assignments -> paragraph 3 -> sentence 1
* NUMBER: 2
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 13
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 14
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 13
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 14
* NUMBER: 1
* DESCRIPTION: A %= B is exactly the same as A.remAssign(B) or A = A.rem(B) (applied in order)
* EXCEPTION: compiletime
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 13
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 14
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 13
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 14
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 15
* statements, assignments, operator-assignments -> paragraph 3 -> sentence 1
* NUMBER: 2
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 4
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 5
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 4
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 5
* NUMBER: 1
* DESCRIPTION: A -= B is exactly the same as A.minusAssign(B) or A = A.minus(B) (applied in order)
* EXCEPTION: compiletime
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 4
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 5
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 4
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 5
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 6
* statements, assignments, operator-assignments -> paragraph 3 -> sentence 1
* NUMBER: 2
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 7
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 8
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 7
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 8
* NUMBER: 1
* DESCRIPTION: A *= B is exactly the same as A.timesAssign(B) or A = A.times(B) (applied in order)
* EXCEPTION: compiletime
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 7
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 8
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 7
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 8
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 9
* statements, assignments, operator-assignments -> paragraph 3 -> sentence 1
* NUMBER: 2
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
* NUMBER: 1
* DESCRIPTION: A += B is exactly the same as A.plusAssign(B) or A = A.plus(B) (applied in order)
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
* statements, assignments, operator-assignments -> paragraph 3 -> sentence 1
* NUMBER: 2
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 10
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 11
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 10
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 11
* NUMBER: 1
* DESCRIPTION: A /= B is exactly the same as A.divAssign(B) or A = A.div(B) (applied in order)
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 10
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 11
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 10
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 11
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 12
* statements, assignments, operator-assignments -> paragraph 3 -> sentence 1
* NUMBER: 2
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 13
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 14
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 13
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 14
* NUMBER: 1
* DESCRIPTION: A %= B is exactly the same as A.remAssign(B) or A = A.rem(B) (applied in order)
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 13
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 14
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 13
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 14
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 15
* statements, assignments, operator-assignments -> paragraph 3 -> sentence 1
* NUMBER: 2
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 4
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 5
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 4
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 5
* NUMBER: 1
* DESCRIPTION: A -= B is exactly the same as A.minusAssign(B) or A = A.minus(B) (applied in order)
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 4
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 5
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 4
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 5
* statements, assignments, operator-assignments -> paragraph 3 -> sentence 1
* NUMBER: 2
* DESCRIPTION: A -= B is exactly the same as A.plusAssign(B) or A = A.minus(B) (applied in order)
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 7
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 8
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 7
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 8
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 9
* NUMBER: 1
* DESCRIPTION: A *= B is exactly the same as A.timesAssign(B) or A = A.times(B) (applied in order)
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, operator-assignments -> paragraph 2 -> sentence 7
* RELEVANT PLACES: statements, assignments, operator-assignments -> paragraph 2 -> sentence 8
* MAIN LINK: statements, assignments, operator-assignments -> paragraph 2 -> sentence 7
* PRIMARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 8
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 9
* statements, assignments, operator-assignments -> paragraph 3 -> sentence 1
* NUMBER: 2
@@ -4,7 +4,7 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* NUMBER: 1
* DESCRIPTION: If a property has a setter, it is called using the right-hand side expression as its argument;
*/
@@ -4,7 +4,7 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* NUMBER: 2
* DESCRIPTION: If a property has a setter, it is called using the right-hand side expression as its argument;
*/
@@ -4,7 +4,7 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* NUMBER: 3
* DESCRIPTION: If a property has a setter (including delegated properties), it is called using the right-hand side expression as its argument
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-300
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* RELEVANT PLACES: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* PRIMARY LINKS: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* NUMBER: 4
* DESCRIPTION: check if a property has a setter, it is called using the right-hand side expression as its argument;If the left-hand side of an assignment refers to a mutable property through the usage of safe navigation operator (?.)
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-300
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* RELEVANT PLACES: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* PRIMARY LINKS: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* NUMBER: 5
* DESCRIPTION: check if a property has a setter, it is called using the right-hand side expression as its argument;If the left-hand side of an assignment refers to a mutable property through the usage of safe navigation operator (?.)
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-300
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* RELEVANT PLACES: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* PRIMARY LINKS: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* NUMBER: 6
* DESCRIPTION: check if a property has a setter, it is called using the right-hand side expression as its argument;If the left-hand side of an assignment refers to a mutable property through the usage of safe navigation operator (?.)
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-300
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* RELEVANT PLACES: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* PRIMARY LINKS: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* NUMBER: 7
* DESCRIPTION: check if a property has a setter, it is called using the right-hand side expression as its argument;If the left-hand side of an assignment refers to a mutable property through the usage of safe navigation operator (?.)
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-300
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* RELEVANT PLACES: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 1
* PRIMARY LINKS: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* NUMBER: 8
* DESCRIPTION: check if a property has a setter, it is called using the right-hand side expression as its argument;If the left-hand side of an assignment refers to a mutable property through the usage of safe navigation operator (?.)
*/
@@ -4,7 +4,7 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* NUMBER: 1
* DESCRIPTION: If a property has a setter, it is called using the right-hand side expression as its argument;
*/
@@ -4,7 +4,7 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* NUMBER: 2
* DESCRIPTION: If a property has a setter, it is called using the right-hand side expression as its argument;
*/
@@ -4,7 +4,7 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 2 -> sentence 2
* NUMBER: 3
* DESCRIPTION: If a property has a setter (including delegated properties), it is called using the right-hand side expression as its argument
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-222
* PLACE: statements, assignments, simple-assignments -> paragraph 6 -> sentence 1
* RELEVANT PLACES: statements, assignments, simple-assignments -> paragraph 7 -> sentence 1
* MAIN LINK: statements, assignments, simple-assignments -> paragraph 6 -> sentence 1
* PRIMARY LINKS: statements, assignments, simple-assignments -> paragraph 7 -> sentence 1
* NUMBER: 1
* DESCRIPTION:
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: statements, loop-statements, do-while-loop-statement -> paragraph 1 -> sentence 3
* RELEVANT PLACES: statements, loop-statements, do-while-loop-statement -> paragraph 2 -> sentence 1
* MAIN LINK: statements, loop-statements, do-while-loop-statement -> paragraph 1 -> sentence 3
* PRIMARY LINKS: statements, loop-statements, do-while-loop-statement -> paragraph 2 -> sentence 1
* statements, loop-statements, do-while-loop-statement -> paragraph 1 -> sentence 2
* NUMBER: 1
* DESCRIPTION: do-while-loop-statement evaluates the loop condition expression after evaluating the loop body.
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: statements, loop-statements, do-while-loop-statement -> paragraph 1 -> sentence 3
* RELEVANT PLACES: statements, loop-statements, do-while-loop-statement -> paragraph 2 -> sentence 1
* MAIN LINK: statements, loop-statements, do-while-loop-statement -> paragraph 1 -> sentence 3
* PRIMARY LINKS: statements, loop-statements, do-while-loop-statement -> paragraph 2 -> sentence 1
* statements, loop-statements, do-while-loop-statement -> paragraph 1 -> sentence 2
* NUMBER: 2
* DESCRIPTION: do-while-loop-statement evaluates the loop condition expression after evaluating the loop body.
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: statements, loop-statements, while-loop-statement -> paragraph 1 -> sentence 2
* RELEVANT PLACES: statements, loop-statements, while-loop-statement -> paragraph 2 -> sentence 1
* MAIN LINK: statements, loop-statements, while-loop-statement -> paragraph 1 -> sentence 2
* PRIMARY LINKS: statements, loop-statements, while-loop-statement -> paragraph 2 -> sentence 1
* NUMBER: 1
* DESCRIPTION: while-loop-statement evaluates the loop condition expression before evaluating the loop body.
*/
@@ -4,8 +4,8 @@
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: statements, loop-statements, while-loop-statement -> paragraph 1 -> sentence 2
* RELEVANT PLACES: statements, loop-statements, while-loop-statement -> paragraph 2 -> sentence 1
* MAIN LINK: statements, loop-statements, while-loop-statement -> paragraph 1 -> sentence 2
* PRIMARY LINKS: statements, loop-statements, while-loop-statement -> paragraph 2 -> sentence 1
* NUMBER: 2
* DESCRIPTION: while-loop-statement evaluates the loop condition expression before evaluating the loop body.
*/