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

forst-lang / forst / 24696999903
76%
main: 76%

Build:
Build:
LAST BUILD BRANCH: feat/full-request-sidecar
DEFAULT BRANCH: main
Ran 21 Apr 2026 12:14AM UTC
Jobs 1
Files 223
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

21 Apr 2026 12:10AM UTC coverage: 76.292% (+0.06%) from 76.234%
24696999903

Pull #94

github

haveyaseen
feat(transform): errMissingMapKey sentinel and map-read FuncLit cache

Emit `var errMissingMapKey = errors.New("missing map key")` once via
`TransformerOutput.EnsureErrMissingMapKeyDecl`, reuse in map-read IIFEs, and
cache identical `*ast.FuncLit` per function (`mapIndexExprCacheKey`, hit counter
for tests). `goZeroValueGoAST` returns `nil` for pointers; add table tests and
golden/pipeline/compiler marker updates.

feat(lsp): hover on `[` after a map variable

When the cursor is on `LBracket` following a map-typed identifier, show that
lookup is `Result(V, Error)` and to use `ensure … is Ok()` before using `V`.

fix(typechecker): targeted `string()` error for raw map index Result

If the operand is a map subscript typed as `Result`, diagnose map lookup
explicitly instead of only "unsupported operand type Result". Add
`inferExpressionTypeWithExpected` hook for `IndexExpressionNode` and nested /
chained map tests.

docs(ts): clarify Result lowering vs generated TS union

Comment on `TypeResult` in `GeeScriptType`: TS discriminated union is a
static signature hint; Go remains `(T, error)` unless a codec maps wire data.

Example (diagnostic):

```forst
println(string(m["a"])) // map lookup has type Result(V, Error); use ensure first
```
Pull Request #94: feat!: map reads are Result(V, Error); emit comma-ok via Go IIFE

204 of 262 new or added lines in 11 files covered. (77.86%)

21338 of 27969 relevant lines covered (76.29%)

89.38 hits per line

Uncovered Changes

Lines Coverage ∆ File
15
70.72
1.69% forst/internal/typechecker/infer_expression.go
14
83.72
forst/internal/transformer/go/expression_map_result.go
10
78.81
-0.62% forst/cmd/forst/lsp/hover_completion.go
9
65.56
-0.96% forst/internal/transformer/ts/type_mapping.go
5
95.8
-4.2% forst/internal/transformer/go/output.go
2
73.37
0.24% forst/internal/typechecker/go_builtins.go
2
65.95
1.21% forst/internal/typechecker/infer_assignment.go
1
67.07
0.06% forst/internal/transformer/go/statement.go
Subprojects
ID Flag name Job ID Ran Files Coverage
1 /jobs/180576002 24696999903.1 21 Apr 2026 12:14AM UTC 223
76.29
GitHub Action Run
Source Files on build 24696999903
  • Tree
  • List 223
  • Changed 12
  • Source Changed 0
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #94
  • PR Base - main (#24695237535)
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