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

forst-lang / forst / 24311749291
76%

Build:
DEFAULT BRANCH: main
Ran 12 Apr 2026 05:01PM UTC
Jobs 1
Files 190
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

12 Apr 2026 04:59PM UTC coverage: 62.492% (-0.01%) from 62.502%
24311749291

push

github

web-flow
feat(compiler)!: nominal error types (`error X { … }`) (#70)

* feat(compiler)!: nominal error types (error X { … })

Add user-defined nominal failure types with struct payloads: parse into
TypeDefErrorExpr, register with Error subtyping, unify/lookup and Go + TS
emit, fmt + LSP hover, and integration tests. Adds examples/in/nominal_error.ft
and task example:nominal-error.

docs(rfc): align errors architecture, normative RFC, hub README,
effect examples, ROADMAP experimental status, and testing rules with shipped
vs remaining RFC 02 work.

Example:

```forst
error NotPositive {
	message: String
}

func Test() {
	n := 0
	ensure n is GreaterThan(0) or NotPositive({
		message: "n must be greater than 0",
	})
}
```

* test: expand nominal error coverage

- compiler: assert examples/in/nominal_error.ft emits NotPositive struct, payload field, and error return
- parser: full-file parse of error typedef plus ensure … or nominal payload
- typechecker: CheckTypes on ensure/or arm; lock in IsTypeCompatible for same-shaped distinct nominals
- printer: printType for user nominal ident

224 of 405 new or added lines in 30 files covered. (55.31%)

2 existing lines in 2 files now uncovered.

16486 of 26381 relevant lines covered (62.49%)

19.96 hits per line

Uncovered Changes

Lines Coverage ∆ File
35
34.62
-0.14% forst/internal/typechecker/lookup_field.go
30
64.45
-1.88% forst/cmd/forst/lsp/hover_completion.go
15
64.54
-1.1% forst/internal/printer/printer.go
13
48.33
0.0% forst/internal/transformer/go/statement.go
13
79.78
-3.21% forst/internal/typechecker/infer_shape.go
12
50.41
-0.08% forst/internal/transformer/go/transformer.go
11
13.02
-0.79% forst/internal/transformer/go/typedef_expr.go
7
55.43
-0.5% forst/internal/hasher/hasher.go
6
84.11
-3.39% forst/internal/printer/typeprint.go
6
34.74
0.37% forst/internal/transformer/go/shape.go
5
90.57
-9.43% forst/internal/ast/typedef.go
4
54.74
0.0% forst/internal/typechecker/infer_assertion.go
4
13.85
0.0% forst/internal/typechecker/type_registry.go
3
66.12
0.0% forst/internal/transformer/go/ensure_typeguard.go
3
78.74
1.46% forst/internal/typechecker/register.go
3
45.71
1.35% forst/internal/typechecker/type_alias_display.go
2
76.47
0.74% forst/internal/parser/shape.go
2
67.72
0.0% forst/internal/transformer/ts/type_mapping.go
2
23.75
0.0% forst/internal/typechecker/completion.go
2
57.69
0.0% forst/internal/typechecker/field_hover.go
2
0.0
0.0% forst/internal/typechecker/shape.go
1
66.14
0.0% forst/internal/transformer/go/expression.go

Coverage Regressions

Lines Coverage ∆ File
1
34.74
0.37% forst/internal/transformer/go/shape.go
1
67.72
0.0% forst/internal/transformer/ts/type_mapping.go
Subprojects
ID Flag name Job ID Ran Files Coverage
1 /jobs/180149765 24311749291.1 12 Apr 2026 05:01PM UTC 190
62.49
GitHub Action Run
Source Files on build 24311749291
  • Tree
  • List 190
  • Changed 21
  • Source Changed 0
  • Coverage Changed 21
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 58842e7c on github
  • Prev Build on main (#24308795533)
  • Next Build on main (#24312809298)
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