On Wednesday, 12 October 2022 at 02:15:55 UTC, Steven
Schveighoffer wrote:
Porting some C code to D
This results in an error:
I had the same issue, where the pattern was this:
```C
void f()
{
int err;
if (err = some_api_call()) {
printCode(err);
return;
}
if (err = some_other_api_call()) {
printCode(err);
return;
}
}
```
I would either declare the variable in the if statement:
```D
void f()
{
if (auto err = some_api_call()) {
printCode(err);
return;
}
if (auto err = some_other_api_call()) {
printCode(err);
return;
}
}
```
Or take the assignment out of the condition:
```D
void f()
{
int err;
err = some_api_call();
if (err) {
printCode(err);
return;
}
err = some_other_api_call();
if (err) {
printCode(err);
return;
}
}
```
I haven't seen it used in a while condition yet, perhaps you can
transform that into a for loop?