On Monday, 28 July 2025 at 12:25:39 UTC, kinke wrote:
then the rewrite becomes a bit more complex:
```d
int __result; // magic variable inserted by the compiler, for the main() return value
const __opApplyResult = ints.opApply((ref int item) {
  if (item == 0) {
    __result = item;  // set return value for parent function
return 2; // return => abort the loop and exit from parent function
  }
  if (item == 1)
    return 0;  // continue => abort this iteration
  if (item == 2)
    return 1;  // break => abort this and all future iterations
  printf("%d\n", item);
  return 0;    // continue with next iteration
});
switch (__opApplyResult) {
  default:
    break;
  case 2:
    return __result;
}
return __result = 0;
```

Interesting, thanks. How does it work if there's a `goto` in the foreach body with a label outside the foreach?

Reply via email to