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

forst-lang / forst / 28759162038
76%

Build:
DEFAULT BRANCH: main
Ran 05 Jul 2026 11:54PM UTC
Jobs 1
Files 285
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

05 Jul 2026 11:46PM UTC coverage: 79.096% (-0.09%) from 79.183%
28759162038

push

github

haveyaseen
fix: infer nested inline shapes and emit typed array literals

Register concrete hash types when Match constraints merge nested `{ ... }`
fields and `Array({ ... })` element shapes, including cases where nested
shapes only lived on Type assertions. Accept array literals in Value
constraints when a contextual field type is available, and persist nested
shape structure on parsed shape-type fields.

During Go codegen, pass expected field types into shape and array literal
lowering so composite literals use the inferred element type (including
arrays of inline shapes). Emit qualified sibling Forst types as
importLocal.TypeName in generated Go. Re-enable anonymous_objects.ft in the
examples pipeline and align tests with ArrayLiteralNode elements as
[]ExpressionNode.

fix(ast)!: change ArrayLiteralNode.Value to []ExpressionNode

BREAKING CHANGE: Manual AST builders and walkers must use
[]ExpressionNode for array literal elements instead of []LiteralNode.

feat(parser)!: parse Ok and Err as dedicated expression nodes

BREAKING CHANGE: Ok(...) and Err(...) become OkExprNode and ErrExprNode rather
than FunctionCallNode. They remain invalid as ordinary value expressions
outside supported lowering contexts.

feat(parser)!: add postfix method calls and reject expression field access

BREAKING CHANGE: recv.method(args) is supported; dotted field access on
expression receivers is rejected in favor of methods only.

feat(parser)!: add package-level var declarations

BREAKING CHANGE: Top-level var is now parsed and typechecked.

feat(parser)!: add typed composite array literals and slice conversions

BREAKING CHANGE: Go-style []T{...} array literals, Int(x) conversion calls,
and []T(expr) slice conversions such as []byte(s) are now part of the
grammar.

fix(parser)!: treat pkg.Type parameters as qualified types, not assertions

BREAKING CHANGE: Function parameters written as pkg.Type are typed references,
not shape-guard assertion chains.

113 of 141 new or added lines in 9 files covered. (80.14%)

349 existing lines in 13 files now uncovered.

27221 of 34415 relevant lines covered (79.1%)

134.23 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
88.24
-11.76% forst/internal/typechecker/helpers.go
6
78.0
3.5% forst/internal/typechecker/providers_engine.go
5
71.06
-0.46% forst/internal/typechecker/lookup_field_value_constraint.go
4
70.0
-0.73% forst/internal/transformer/go/expression.go
4
66.3
1.05% forst/internal/transformer/go/type.go
2
75.0
0.18% forst/internal/transformer/go/expression_shape_literal.go
1
94.93
-0.66% forst/internal/transformer/go/output.go

Coverage Regressions

Lines Coverage ∆ File
97
68.81
-1.44% forst/internal/typechecker/infer_expression.go
70
69.39
-2.99% forst/internal/typechecker/go_builtins.go
36
74.21
0.72% forst/internal/typechecker/lookup_field_path.go
34
79.7
-6.76% forst/internal/parser/expression.go
29
67.01
1.68% forst/internal/typechecker/go_interop.go
27
89.38
-5.69% forst/internal/parser/function.go
18
70.0
-0.73% forst/internal/transformer/go/expression.go
16
78.0
3.5% forst/internal/typechecker/providers_engine.go
10
83.53
0.0% forst/internal/typechecker/typechecker.go
6
48.45
-1.03% forst/internal/transformer/go/shape.go
3
92.5
-7.5% forst/internal/forstpkg/import_paths.go
2
95.0
0.05% forst/internal/typechecker/infer_function_node.go
1
70.77
-1.54% forst/internal/typechecker/type_registry.go
Subprojects
ID Flag name Job ID Ran Files Coverage
1 /jobs/184250931 28759162038.1 05 Jul 2026 11:54PM UTC 285
79.1
GitHub Action Run
Source Files on build 28759162038
  • Tree
  • List 285
  • Changed 24
  • Source Changed 0
  • Coverage Changed 24
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 03b9eafc on github
  • Prev Build on main (#28757461779)
  • Next Build on main (#28759318960)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc