Ban continue in a double-curly while loop
diff --git a/lang/parse/parse.go b/lang/parse/parse.go
index 994dd22..4bf02fb 100644
--- a/lang/parse/parse.go
+++ b/lang/parse/parse.go
@@ -816,7 +816,12 @@
return nil, fmt.Errorf(`parse: expected endwhile%s at %s:%d`,
dotLabel, p.filename, p.line())
}
- if doubleCurly && !a.Terminates(body) {
+ if !doubleCurly {
+ // No-op.
+ } else if n.HasContinue() {
+ return nil, fmt.Errorf(`parse: double {{ }} while loop has explicit continue at %s:%d`,
+ p.filename, p.line())
+ } else if !a.Terminates(body) {
return nil, fmt.Errorf(`parse: double {{ }} while loop doesn't terminate at %s:%d`,
p.filename, p.line())
}