You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add ControlDependence trait family to CTBase.Traits
- New strict opt-in family with tags ControlFree and WithControl for encoding control
presence in OCPs at the type level, ready for dispatch in downstream packages
- Factor shared contract helpers _throw_missing_trait and _throw_trait_not_implemented to
eliminate 70% duplication across time_dependence, variable_dependence, and mutability
families; behaviour and messages unchanged
- Generalise _caller_function_name stacktrace filter to match any has_<family>_trait
predicate (startswith + endswith pattern) instead of hard-coded names
- Collapse has_variable duplicate to direct alias is_variable(obj)
- Add 25 unit tests mirroring variable_dependence test structure; Traits suite: 301/301 ✓
- Document the two trait templates (strict opt-in vs default-valued capability) in
module docstring; add control-dependence section to guide/traits.md with rationale
for abstract-vs-concrete trait types (abstract used for type-param-only axes)
- Update api_reference.jl to include control_dependence.jl in the auto-generated API page
Follows the exact pattern of variable_dependence for consistency. No changes to
existing predicates; _caller_function_name detection now names is_control_free through
the new shared helper chain.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
0 commit comments