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

wurstscript / WurstScript / 37835038502
77%

Build:
DEFAULT BRANCH: master
Ran 08 Oct 2026 07:59PM UTC
Jobs 1
Files 460
Run time 2min
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

08 Oct 2026 07:51PM UTC coverage: 75.301% (+0.05%) from 75.251%
37835038502

push

github

web-flow
Drop the functions and globals nothing reaches before the compile-time functions and the generics, on Lua and Jass (#1396)

TreeShaker removes what main, config, a preserved name, a pinned handle or the compile-time run cannot reach:
the functions, the methods whose implementation goes with them, and the globals which no reachable code reads,
with the assignments of constants to them (not a call, and a division only by a nonzero constant, which may have
an effect). It runs on both targets in front of the compile-time functions, before the generics are specialised
and after them, where the garbage removal used to drop it only after the tuples were eliminated.

Roots: main, config, preserved functions and globals, the translator's pinned functions (Lua helpers) and
globals (the class management variables), the compile-time functions, every function holding a compile-time
expression (evaluated whether anything calls it or not) and, on Jass, the compiler's own intrinsics, which the
keyed-map lowerings look up by name. Edges: calls, references, method calls with every override, and before the
generics the implementations a type argument's type-class binding names and the constructor of a class given
to wurstNewInstance.

Jass needed three fixes at their origin: the intrinsics are roots, an unused method goes with its functions
(the class elimination builds a dispatch over every method), and the vararg limit is no longer reported in a
function nothing calls.

The scripts are the same except for the order of independent global initialisers, generated-name numbers and
type ids, and constants of package initialisers which the globals inliner can now prove safe to inline once the
dead assignments no longer keep it from it.

18164 of 25607 branches covered (70.93%)

Branch coverage included in aggregate %.

35799 of 46056 relevant lines covered (77.73%)

3.8 hits per line

Coverage Regressions

Lines Coverage ∆ File
174
82.85
0.32% de/peeeq/wurstscript/translation/imtranslation/ImTranslator.java
105
70.21
0.63% de/peeeq/wurstio/WurstCompilerJassImpl.java
42
88.33
0.24% de/peeeq/wurstio/CompiletimeFunctionRunner.java
12
83.4
-0.72% de/peeeq/wurstscript/translation/imtranslation/EliminateGenerics.java
11
89.21
-4.72% de/peeeq/wurstscript/translation/imtranslation/StackTraceInjector2.java
2
95.24
-4.76% de/peeeq/wurstscript/translation/imtranslation/RecycleCodeGeneratorQueue.java
1
83.39
-0.18% de/peeeq/wurstscript/translation/imtranslation/EliminateTuples.java
1
72.5
-0.83% de/peeeq/wurstscript/translation/imtranslation/ImHelper.java
1
82.64
-1.89% de/peeeq/wurstscript/translation/imtranslation/LuaTypedKeyedReads.java
1
92.65
-0.74% de/peeeq/wurstscript/translation/imtranslation/VarargEliminator.java
Jobs
ID Job ID Ran Files Coverage
1 37835038502.1 08 Oct 2026 07:59PM UTC 460
75.3
GitHub Action Run
Source Files on build 37835038502
  • Tree
  • List 460
  • Changed 14
  • Source Changed 0
  • Coverage Changed 14
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37835038502
  • f5534c9c on github
  • Prev Build on master (#37828291353)
  • Next Build on master (#37841436585)
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