issue with static foreach

someone someone at somewhere.com
Thu Jul 22 03:43:44 UTC 2021


The following code chunk compiles perfectly:

```d
labelSwitch: switch (lstrExchangeID) {

static foreach (sstrExchangeID; gstrExchangeIDs) {

    mixin(r"case r"d, `"`, sstrExchangeID, `"`, r"d : "d);
    mixin(r"classTickerCustom"d, sstrExchangeID, r" lobjTicker"d, 
sstrExchangeID, r" = new classTickerCustom"d, sstrExchangeID, 
r"(lstrSymbolID);"d);
    //mixin(r"if (true == true) {"d);
    mixin(r"pobjTickersCustom"d, sstrExchangeID, r" ~= 
lobjTicker"d, sstrExchangeID, r";"d);
    mixin(r"pobjTickersCommon ~= cast(classTickerCommon) 
lobjTicker"d, sstrExchangeID, r";"d);
    //mixin(r"}"d);
    mixin(r"break labelSwitch;"d);

}

default :

    break;

}
```

Now, if uncomment those two innocuous commented lines for the if 
(true == true) block:

```d

labelSwitch: switch (lstrExchangeID) {

static foreach (sstrExchangeID; gstrExchangeIDs) {

    mixin(r"case r"d, `"`, sstrExchangeID, `"`, r"d : "d);
    mixin(r"classTickerCustom"d, sstrExchangeID, r" lobjTicker"d, 
sstrExchangeID, r" = new classTickerCustom"d, sstrExchangeID, 
r"(lstrSymbolID);"d);
    mixin(r"if (true == true) {"d);
    mixin(r"pobjTickersCustom"d, sstrExchangeID, r" ~= 
lobjTicker"d, sstrExchangeID, r";"d);
    mixin(r"pobjTickersCommon ~= cast(classTickerCommon) 
lobjTicker"d, sstrExchangeID, r";"d);
    mixin(r"}"d);
    mixin(r"break labelSwitch;"d);

}

default :

    break;

}
```

... it compiles no-more: Error: found `End of File` when 
expecting `}` following compound statement

... what I am doing wrong ?


More information about the Digitalmars-d-learn mailing list