check: a where clause with a concrete subject, and into() under an Into bound #748
Labels
No labels
loop
queue/failed
queue/queued
ready
status/parked
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
torbscript/language#748
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
docs/TYPECHECKER.mdsection 9 ends one gap with "two neighbouring holes stay open", and no issue tracks them:path.into()under a bound<Source: Into<Path>>type checks and reaches neither back end.whereclause whose subject is a concrete type is not honoured:fn open<Source>(path: Source): Path where Path: From<Source> { Path.from path }answers "Pathhas no memberfrom".Both are the generic form of the conversion pair the standard library uses everywhere (
From,Into), so a library author meets them early.Source
docs/project/2026-11-cleanup-audit.md.docs/TYPECHECKER.mdsection 9, the gap that names the two holes.Goal
Both programs type check and run on tier A and tier B, or the checker refuses each with a message that names the rule. A program that type checks and cannot be built is not an outcome.
Design record point
docs/TYPECHECKER.mdsection 9 (the gap and its neighbours); CONCEPT, the sections onwhereclauses and onFromandInto.Acceptance criteria
into()under anIntobound and runs on both tiers, or a checker test pins the refusalwhereclause with a concrete subject brings the members of the bound into scope for that type, pinned by a checker test and a conformance program, or is refused where it is written_Decision:lineDependencies
None. The two holes may be two PRs.
Seed
None.
Size
One or two PRs, one commit each.