Skip to content

4.1.0: model variables.super<name> delegation breaks; superdelete alias registered but not invocable for delete #3519

Closed

Description

@bpamiri

Summary

Two related findings from upgrading an app from 4.0.5 to 4.1.0.

A. Migration is not documented. The model mixins moved from copied-in components to compile-time includes into wheels.Model (#3213). An app model that overrides delete()/deleteAll()/updateAll() and delegates to the framework via the long-standing variables.super<name> alias now fails with:

No matching function member [superdelete] for call with named arguments found

The working delegation in 4.1.0 is the parent-method call super.delete(). This consequence isn't spelled out anywhere an upgrader would find it — the changelog documents the performance change (#3213) and the controller super<name> change (#3325), but not that model-side variables.super<name> delegation is gone. Worth a line in manual-upgrades.mdx / the 4.1.0 guide.

B. The super<name> alias appears to be registered but not invocable for delete. $registerModelSuperAliases() still registers the framework original as super<name> on the instance, and SuperOverrideSpec pins bare superColumnNames() working. But for a delete() override, none of variables.superdelete(), bare superdelete(), or this.superdelete() invoked it from inside the model — only super.delete() worked. This looks like a delete-specific gap (possibly a Lucee reserved-word interaction), and it isn't covered by the existing superColumnNames spec.

Proposed follow-up

  • Add a model-side delete() override fixture to SuperOverrideSpec (or a new spec) asserting the sanctioned delegation path works.
  • Add the one-line upgrade note to the 4.1.0 guide: "model overrides that delegated via variables.super<name> must use super.<name>()."

Activity

  1. added a commit that references this issue on Sep 7, 2026
    6470fdc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions