David Nolden zwabel at googlemail.com
Sun Feb 24 00:34:13 UTC 2008

On Sunday 24 February 2008 01:10:50 Andreas Pakulat wrote:
> Does this gain anything except fewer classes in the API? IMHO such API
> changes should be discussed on the list instead of being decided simply
> by you.
> The naming of the Declaration class(es) is now completely wrong as they
> might also be definitions. No amount of apidox can help with such bad
> namings.

The thing is, that it was exactly the same way before. A declaration could 
always be a definition. There was always isDefinition(..). There just was an 
additional Definition class, and it wasn't clear when exactly to use 
Definition and when Declaration with isDefinition.

So essentially this is nothing more then removing a redundant class.

> Also I don't quite like the look of:
> void doSomething(Declaration* decl) {
> Declaration* def = 0;
> if( decl->isDefinition() ){
> def = decl;
> } else {
> def = decl->definition();
> }
> ...
> }
> instead of just
> void doSomething(Definition* def) {
> ...
> }

As said, it's not much different from before, essentially it's less code for 
the same result.

Btw. are we planning to support any other language except C++ that 
differentiates between Declaration and Definition?

Of course we could resurrect the Definition class, the thing is just that you 
gain nothing from it. In C++ the Definition class like it was simply does not 
make sense.

Greetings, David

More information about the KDevelop-devel mailing list