Skip to content

Add Assurance subject/exactness model for IDE type narrowing#28

Draft
alganet wants to merge 1 commit into
mainfrom
ide-narrowing
Draft

Add Assurance subject/exactness model for IDE type narrowing#28
alganet wants to merge 1 commit into
mainfrom
ide-narrowing

Conversation

@alganet

@alganet alganet commented Jun 26, 2026

Copy link
Copy Markdown
Member

Part of a PR group: Fluent - FluentGen - Validation


Extend the #[Assurance] vocabulary so consumers (FluentGen, FluentAnalysis) can derive how a composable prefix transforms the wrapped node's assured type:

  • Add #[AssuranceSubject] with AssuranceSubjectMode (Wrap / Elements / Container) describing whether a prefix wraps, iterates, or derives the subject.
  • Add the exact flag to #[Assurance]; remove AssuranceModifier::Nullable, now expressed as AssuranceSubject(Wrap) + type: 'null'. This is a BC break (3.0).
  • Thread a TExact template through the fluent builders for analyzer state.
  • Correct the README composition claim: prefix resolution is single-level.

Extend the #[Assurance] vocabulary so consumers (FluentGen, FluentAnalysis)
can derive how a composable prefix transforms the wrapped node's assured type:

- Add #[AssuranceSubject] with AssuranceSubjectMode (Wrap / Elements / Container)
  describing whether a prefix wraps, iterates, or derives the subject.
- Add the `exact` flag to #[Assurance]; remove AssuranceModifier::Nullable, now
  expressed as AssuranceSubject(Wrap) + type: 'null'. This is a BC break (3.0).
- Add AssuranceFrom::TypeString (an instance of the class named by a class-string
  argument). #[AssuranceParameter] is now purely argument indexing (any position,
  default first); `from` selects the derivation, decoupled from class-string-ness.
- Thread a TExact template through the fluent builders for analyzer state.
- Correct the README composition claim: prefix resolution is single-level.
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