Does dmd not always compile all of the source code?

Nick Treleaven nick at geany.org
Wed Dec 6 17:19:07 UTC 2017


On Wednesday, 6 December 2017 at 17:04:06 UTC, A Guy With a 
Question wrote:
>>> abstract class Test(T)

Here you have a class template.

>> It does produce there error when I do this:
>>
>> class Test2
>>    : Test!int

You instantiated the template, so the compiler can now type check 
the instantiated class.

> class Test
>    : ITest!int

Same thing here but with an interface template.

> I really do think, regardless of if this is considered a 
> template expansion, that dmd should be catching these obvious 
> errors. When one writes interfaces and abstract classes they 
> are generally not ready to implement the end class yet. And 
> getting a ton of errors at once when that occurs is really hard 
> to deal with. I really don't understand why the compiler would 
> have issues with this.

I sympathize, something like Rust's traits or concept-enhanced 
C++ could probably do what you want, but D doesn't have this 
feature.


More information about the Digitalmars-d-learn mailing list