Common functionality for dynamic languages

Miquel Sabaté mikisabate at
Wed Apr 16 20:08:01 UTC 2014

Hi Sven,

Thanks a lot for your time and efforts. I'll try all of this in kdev-ruby
as soon as possible and I'll let you know what changes I think that might
be needed for each component ;-)


2014-04-16 21:36 GMT+02:00 Sven Brauch <svenbrauch at>:

> Hi!
> I recently spent some time on cleaning up and generalizing some of the
> tools
> kdevelop-python uses for type inference, and moved them to KDevPlatform.
> There's now the following things:
>  - The container types: They make it possible to track T for List<T> for a
> T
> which is not static. There's also a type for hashmap-like objects which can
> track P and Q in Map<P, Q>. I think this might be especially interesting
> for
> PHP and JS; Ruby already uses its own (extended) copy and will eventually
> port
> to the new base class.
> See language/duchain/types/containertypes.h in KDevPlatform.
>  - Some type utilities, which allow to conveniently merge multiple types
> into
> an unsure type.
> See language/duchain/types/typeutils.h in KDevPlatform.
>  - A base expression visitor for finding the type of an expression. This is
> another thing which is reimplemented from scratch for each dynamic language
> and looks almost the same, so I think it would be good to share a common
> base.
> Especially increased consistency across language plugins would be nice
> here.
> See language/duchain/builders/dynamiclanguageexpressionvisitor.h in
> KDevPlatform.
> I'm writing this email so interested parties can review the API; I'd be
> happy
> to modify it to make it useful for other languages.
> Greetings!
> Sven
> _______________________________________________
> KDevelop-devel mailing list
> KDevelop-devel at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the KDevelop-devel mailing list