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

forst-lang / forst / 24014676417
60%
main: 76%

Build:
Build:
LAST BUILD BRANCH: feat/full-request-sidecar
DEFAULT BRANCH: main
Ran 06 Apr 2026 01:09AM UTC
Jobs 1
Files 174
Run time 1min
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

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

Uncovered Changes

Lines Coverage ∆ File
44
38.89
forst/internal/typechecker/narrowing_display.go
36
67.34
3.88% forst/internal/typechecker/narrow_if.go
24
58.87
3.6% forst/internal/typechecker/types.go
18
65.95
-3.31% forst/internal/typechecker/infer.go
12
56.25
10.51% forst/internal/typechecker/inferred_type_guards.go
10
62.39
-3.35% forst/internal/parser/ensure.go
8
87.6
-3.31% forst/internal/typechecker/scope.go
1
70.99
0.0% forst/internal/typechecker/lookup.go

Coverage Regressions

Lines Coverage ∆ File
4
67.34
3.88% forst/internal/typechecker/narrow_if.go
2
54.55
0.1% forst/internal/typechecker/infer_expression.go
2
56.25
10.51% forst/internal/typechecker/inferred_type_guards.go
1
62.39
-3.35% forst/internal/parser/ensure.go
Subprojects
ID Flag name Job ID Ran Files Coverage
1 /jobs/179810612 24014676417.1 06 Apr 2026 01:09AM UTC 174
60.31
GitHub Action Run
Source Files on build 24014676417
  • Tree
  • List 174
  • Changed 15
  • Source Changed 0
  • Coverage Changed 15
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #55
  • PR Base - main (#24013334500)
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