The code completion has had a feature for a while where you could start entering an out-of-line class method implementation and it would propose an appropriate completion. For instance when foo.h contains the declaration for a new ctor foo(QObject *parent), it would propose to complete to `foo::foo(QObject *parent)` after typing just foo: on the start of a new line. That still happens, but now the completion doesn't remove the original ext anymore, so one ends up with `foo::foo::foo(QObject *parent)` (or foo:foo::foo(QObject *parent)). A pity, it's almost faster to type the whole thing by hand than correcting the completion result.
Or worse: void AbstractFileManagerPlugin::addDirToWatcher( void KDevelop::AbstractFileManagerPlugin::addDirToWatcher(KDevelop::ProjectWatcher* watcher, const QString& path) I had typed "void AbstractFileManagerPlugin::addDirToWatcher(" before the parser realised it had something to propose ...
*** This bug has been marked as a duplicate of bug 384710 ***