Skip to content

Refine external class resolution and deferred methods#710

Draft
t-kalinowski wants to merge 42 commits into
external-classfrom
external-class-followup
Draft

Refine external class resolution and deferred methods#710
t-kalinowski wants to merge 42 commits into
external-classfrom
external-class-followup

Conversation

@t-kalinowski

Copy link
Copy Markdown
Member

Summary

  • Tighten external class resolution so new_external_class() matches an S7
    class bound to the requested name and package, with clearer failure messages.
  • Improve external-class behavior in property inheritance, union matching,
    version checks, and validation errors.
  • Simplify deferred external method registration/unregistration and hook cleanup
    for external classes and generics.
  • Update tests, snapshots, and the package vignette to reflect the narrower
    external-class contract.

Public-facing changes

  • new_external_class() now documents and reports the class binding contract
    more directly.
  • External-class methods and unions behave more consistently when dependency
    packages load, unload, or are not yet available.

Internal-only changes

  • Refactors dependency collection, hook registration/removal, external generic
    sentinels, and deferred method cleanup without adding exported API.

@t-kalinowski t-kalinowski force-pushed the external-class-followup branch from 3bb01d4 to 4aee542 Compare June 19, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant