Reschedule parse jobs also when the parse queue is empty.
ClosedPublic

Authored by pprkut on Jul 14 2018, 4:18 PM.

Details

Summary

I assume the original assumption here was that when the parse
queue is empty, scheduling another re-parse of the current file
doesn't make sense as we already have access to all parsed
declarations.

However, I don't think this assumption holds, especially in a
multi-core environment. The unit tests covering this code were
failing because the two test files were parsed at the same time,
resulting in the declarations being not yet available and the
parse queue being empty. Since the queue is empty, the testfile
is never scheduled to be parsed again, and the unresolved identifier
stays.

Diff Detail

Repository
R52 KDevelop: PHP Support
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
pprkut created this revision.Jul 14 2018, 4:18 PM
Restricted Application added a project: KDevelop. · View Herald TranscriptJul 14 2018, 4:18 PM
Restricted Application added a subscriber: kdevelop-devel. · View Herald Transcript
pprkut requested review of this revision.Jul 14 2018, 4:18 PM
brauch accepted this revision.Aug 12 2018, 2:16 PM
brauch added a subscriber: brauch.

Yes, that makes sense to me.

This revision is now accepted and ready to land.Aug 12 2018, 2:16 PM
This revision was automatically updated to reflect the committed changes.