• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

forst-lang / forst
60%
main: 76%

Build:
Build:
LAST BUILD BRANCH: feat/full-request-sidecar
DEFAULT BRANCH: main
Repo Added 27 May 2025 10:22PM UTC
Files 231
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH control-flow-narrowing
branch: control-flow-narrowing
CHANGE BRANCH
x
Reset
  • control-flow-narrowing
  • builtins-generics
  • document-builtins-hover
  • error-types
  • expand-lsp-functionality
  • feat/full-request-sidecar
  • feat/map-read-result
  • feat/sidecar-layer-hardening
  • feat/type-unions-intersections
  • fix-handle-value-constraints-in-field-lookup
  • forst-cli-package
  • generator-ts
  • go-interop
  • gofmt-examples-out
  • improve-lexer
  • increase-coverage-20260403
  • increase-coverage-20260405
  • lint-fix
  • lsp
  • lsp-navigate
  • main
  • refactor-transformer
  • release
  • result-types
  • rfc-guard
  • shape-guards
  • showcase-example-tictactoe
  • sidecar
  • sidecar-release
  • test-hash
  • type-guards
  • update-dependencies-20260402
  • use-task
  • vscode-lsp-extension

06 Apr 2026 01:07AM UTC coverage: 60.312% (+0.3%) from 60.062%
24014676417

Pull #55

github

haveyaseen
feat(typechecker): flow merge, typeops, and predicate-chain hover

Add flow-local facts and join narrowings after if/else ladders so merged
types match control-flow merge points. Introduce typeops (Meet/Join) to
support that join logic and keep narrowing display consistent.

Unify variable hover: stack leading guard docs above a fenced type line,
using dotted predicate chains (FormatVariableOccurrenceTypeForHover and
PredicateChainForVariableHover). Stamp ensure subjects before applying
this line’s successor narrowing so hover reflects only prior ensures.

Document semantics in SEMANTICS_NARROWING.md; extend parser ensure spans
and add tests across narrow merge, typeops, LSP, and display.

Ignore local Go toolchain dirs under forst/.gocache and forst/.gotmp.

Example:

```forst
is (x: String) G {
	ensure x is Min(1)
	ensure x is Max(10)
}
```

Hover on the subject `x` on the second line shows `String.Min(1)` (not
`Max(10)` yet); later uses see the full merged chain.
Pull Request #55: feat(typechecker): flow merge, typeops, and predicate-chain hover

388 of 541 new or added lines in 15 files covered. (71.72%)

9 existing lines in 4 files now uncovered.

14365 of 23818 relevant lines covered (60.31%)

13.91 hits per line

Relevant lines Covered
Build:
Build:
23818 RELEVANT LINES 14365 COVERED LINES
13.91 HITS PER LINE
Source Files on control-flow-narrowing
  • Tree
  • List 174
  • Changed 15
  • Source Changed 0
  • Coverage Changed 15
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
24014676417 control-flow-narrowing feat(typechecker): flow merge, typeops, and predicate-chain hover Add flow-local facts and join narrowings after if/else ladders so merged types match control-flow merge points. Introduce typeops (Meet/Join) to support that join logic and keep na... Pull #55 06 Apr 2026 01:09AM UTC haveyaseen github
60.31
See All Builds (336)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc