Pimpl DUChain navigation classes
ClosedPublic

Authored by kfunk on Dec 30 2015, 4:41 PM.

Details

Summary

Already have a commit adapting to kdevplatform changes in kdevelop.git (not intrusive)

Diff Detail

Repository
R33 KDevPlatform
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
kfunk updated this revision to Diff 1674.Dec 30 2015, 4:41 PM
kfunk retitled this revision from to Pimpl DUChain navigation classes.
kfunk updated this object.
kfunk edited the test plan for this revision. (Show Details)
Restricted Application added a subscriber: kdevelop-devel. · View Herald TranscriptDec 30 2015, 4:41 PM
kfunk updated this object.Dec 30 2015, 4:42 PM
kfunk added a reviewer: KDevelop.

Running KDevelop with this patch for a week now, no problems so far.

mwolff added a subscriber: mwolff.Dec 31 2015, 1:20 PM

big +1 from my side in general, but there are some minor issues with this patch as-is.

also note: only commit to master, not to 5.0, as this breaks the ABI.

language/duchain/navigation/abstractdeclarationnavigationcontext.h
38–40

while at it: please const& the DeclarationPointer and the TopDUContextPointer.

39

override

language/duchain/navigation/abstractnavigationcontext.cpp
43

QVector?

55

QHash, also below?

language/duchain/navigation/abstractnavigationcontext.h
64

const TopDUContextPointer& topContext = {}

86

is that really nowhere overwritten, like in kdevphp or ruby or such?

105

const&

107

const&

language/duchain/navigation/abstractnavigationwidget.h
79

const&

kfunk added a comment.Dec 31 2015, 1:25 PM
In D723#13555, @mwolff wrote:

big +1 from my side in general, but there are some minor issues with this patch as-is.

also note: only commit to master, not to 5.0, as this breaks the ABI.

That's *why* I'd like to have it in 5.0, let's break the ABI *before* the 5.x cycle.

Will fix the other remarks.

Thing is, we already published a first beta release and in all previous releases that marked the ABI freeze, thus we should not break the ABI now.

kfunk added a comment.Dec 31 2015, 2:04 PM
In D723#13575, @mwolff wrote:

Thing is, we already published a first beta release and in all previous releases that marked the ABI freeze, thus we should not break the ABI now.

We're not really strict about our ABI guarantees anyway, are we...

TBH, it'll cause more harm than good when I commit this to master instead of 5.0. More difficulties to switch between 5.0 / master versions. I'd rather like to keep 5.x series almost, or, if possible, completely API/ABI-break-free.

I'd also fix all plugins using this API in their resp. 5.0 branches, if that's the issue (I have patches for kdev-php, kdev-python, etc. already).

kfunk added a comment.Dec 31 2015, 2:05 PM

Maybe it'd be a good time to start guaranteeing "no API/ABI breaks during major releases"?

Imo, we had good success the last years with our promise to not break the ABI between 4.x and 4.y. I'd like to continue with this, as our API is still far from clean. If we'd decide now to not break betweeen 5.x and 5.y, then we'd need a 6.x really soon... I'd rather not do that and stick with what we did all these years before.

kfunk updated this revision to Diff 1679.Dec 31 2015, 2:51 PM

Addressed a few issues

kfunk updated this revision to Diff 1680.Dec 31 2015, 2:53 PM
kfunk marked 3 inline comments as done.

Fix another issue

kfunk marked 5 inline comments as done.Dec 31 2015, 2:53 PM
kfunk added inline comments.
language/duchain/navigation/abstractnavigationcontext.cpp
55

Will fix in follow-up commit. This might change semantics.

kfunk added a comment.Dec 31 2015, 3:00 PM

Targeting master now, fwiw...

kfunk planned changes to this revision.Feb 2 2016, 10:50 PM

Will push this as soon as we branched off 5.1

mwolff accepted this revision.Feb 18 2017, 10:22 PM

as a follow-up, we may want to implement sharing the d pointer across a parent/child chain, similar to what QObject and QWidget are doing.

language/duchain/navigation/abstractdeclarationnavigationcontext.h
52

de-indent

kfunk added inline comments.Feb 19 2017, 11:23 AM
language/duchain/navigation/abstractdeclarationnavigationcontext.cpp
530–531

Note to myself: Unnecessary change

This revision was automatically updated to reflect the committed changes.