Commit c8cfec6
committed
fix: remove redundant IncrementalProjectBuilder.needRebuild() from BuildContext
BuildContext.needRebuild() served two purposes:
1. Set the internal rebuildRequired flag (consumed by
RebuildingXtextBuilder.doBuild()'s internal rebuild loop)
2. Call builder.needRebuild() which tells Eclipse to re-invoke
the entire build() method for this project in the next round
Purpose (2) is redundant because purpose (1) already drives
re-processing of generated sources via the internal loop (up to
2 extra iterations in doBuild()). The Eclipse-level needRebuild()
causes unnecessary re-invocations of the builder that cascade
through the workspace dependency graph: each builder participant
that writes a generated file triggers needRebuild(), Eclipse
re-schedules the project, which produces more workspace changes,
triggering builds in dependent projects, and so on.
This resulted in unrelated projects (e.g. intfdef.core) being
fully rebuilt when editing files in completely unrelated projects
(e.g. assistant.chat.ui).
Remove the builder.needRebuild() call while keeping the internal
rebuildRequired flag that drives the RebuildingXtextBuilder's own
rebuild loop.1 parent 06de656 commit c8cfec6
File tree
1 file changed
+6
-3
lines changed- com.avaloq.tools.ddk.xtext.builder/src/com/avaloq/tools/ddk/xtext/builder
1 file changed
+6
-3
lines changedLines changed: 6 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
120 | | - | |
121 | | - | |
122 | | - | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
123 | 126 | | |
124 | 127 | | |
125 | 128 | | |
| |||
0 commit comments