Yes. Current just one test case looks good, but can this change report consistent error messages with following test cases?
(I don't test it with this)

```d
class B {};

class D1(T) : B if (false) {}  // your test case
class D2(T) if (false) : B {}
class D3(T) if (false) : B if (false) {}
class D4(T) : B if (false) if (false) {}
class D5(T) if (false) if (false) : B {}
class D6(T) if (false) if (false) : B if (false) if (false) {}
```

Good error report for incorrect code is not so easy. If you can implement it in generic, it will be valuable.