Skip to content

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

Merged
alganet merged 1 commit into
mainfrom
ide-narrowing
Sep 5, 2026
Merged

Add Assurance subject/exactness model for IDE type narrowing#28
alganet merged 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.
@alganet
alganet marked this pull request as ready for review September 5, 2026 17:06
@alganet
alganet merged commit 9348462 into main Sep 5, 2026
4 checks passed
@alganet
alganet deleted the ide-narrowing branch September 5, 2026 17:06
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