Fix self-reference cycle in bound_delayed_callback; apply to explosion effect; configure gdlint #73

Merged
cammymoop merged 1 commit from feature/node-bound-delay-fixes into master 2026-03-05 10:24:25 -06:00
Collaborator

Summary

  • Remove — the tween held a reference to itself via its own signal connection, preventing GC after finishing; the call was also a no-op since the tween is already done when fires
  • Replace with for local type inference consistency
  • Replace in with — the only other scene tree timer in the codebase — so the lifetime callback is cancelled if the node is freed early
  • Add with

Test plan

  • Headless run exits clean with no errors
  • passes on changed files
## Summary - Remove — the tween held a reference to itself via its own signal connection, preventing GC after finishing; the call was also a no-op since the tween is already done when fires - Replace with for local type inference consistency - Replace in with — the only other scene tree timer in the codebase — so the lifetime callback is cancelled if the node is freed early - Add with ## Test plan - [x] Headless run exits clean with no errors - [x] passes on changed files
- Remove `delay_tween.finished.connect(delay_tween.kill)` — the tween
  references itself via its own signal connection, preventing GC after
  the tween finishes. The call was also a no-op since the tween is
  already done when `finished` fires.
- Replace `var` with `:=` for local type inference consistency.
- Split overlong doc comment to satisfy gdlint (then added .gdlintrc
  with max-line-length: 280 so future long comments don't need wrapping).
- Replace `get_tree().create_timer()` in explosion_effect.gd with
  `Util.bound_delayed_callback` — the only other scene tree timer in
  the codebase — so the lifetime callback is cancelled if the node is
  freed early.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
cammymoop merged commit d6d5c286e1 into master 2026-03-05 10:24:25 -06:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cammymoop/semi-vibed-game!73
No description provided.