vitorsvieira/dilate
47.9
Weak · 21 September 2026
578
lines of production code
Scala
primary language
4
measurements over time
What this system is
This system is a Scala library that provides compile-time macros, specifically @newtype and @valueclass, to generate boilerplate code for type-safe wrappers and optimized value classes. It enables developers to create unboxed tagged types and value classes with zero runtime allocation by automatically expanding annotations into traits, types, and implicit conversions. The project includes comprehensive test coverage and build configurations for multiple Scala versions.
Features
Add Scala examples demonstrating @valueclass and @newtype macros
Added an examples file that showcases the newtype macro implementation, providing type-safe wrappers with zero runtime allocation for case classes. The file includes comparisons between standard case classes and those using the @valueclass and @newtype annotations, demonstrating how the macro generates newtypes for fields and handles default argument values.
examples/src/main/scala · medium confidence
Introduce @newtype and @valueclass macros for compile-time code generation
The library now provides two new compile-time macros, @newtype and @valueclass, which automatically generate boilerplate code for unboxed tagged types and value classes. The @newtype macro expands to generate traits, types, and implicit classes in the companion object, while @valueclass generates value classes and implicit definitions. These macros simplify the creation of type-safe wrappers and optimized value classes by handling the code generation at compile time.
src/main · high confidence
Behavioural changes
Updated project configuration and documentation
The project's build configuration was updated to set the version to 0.1.3-SNAPSHOT. The README was expanded to include a detailed overview, motivation, and usage examples for the \@valueclass\ and \@newtype\ macros. The Travis CI configuration was added to support Scala 2.11.11 and 2.12.3 on Oracle JDK 8. The LICENSE file was updated to reflect the correct copyright holder, and the .gitignore was updated to include .iml files.
(repo-wide) · medium confidence
Test coverage
Added tests for the @newtype and @valueclass macro annotations
Added two new test suites, NewTypeMacroSpec and ValueClassMacroSpec, which verify the compilation constraints and runtime behavior of the @newtype and @valueclass annotations. These tests confirm that the macros correctly restrict usage to classes, generate implicit conversions for the underlying types, and preserve access to class and companion object members after macro expansion.
src/test · high confidence
Dependencies
Upgrade Scala 2.12 support and add scalameta dependency
The build configuration has been updated to support Scala 2.12.3 (previously 2.12.1) and includes a new dependency on scalameta 1.8.0. Additionally, the project now integrates the SbtScalariform plugin for code formatting and enables various Scala compiler options such as -Xlint and -Ywarn-unused. The build also adds publishing and release configuration for Sonatype.
(dependencies) · medium confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 62 → 48 (-14.6)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 99 (-0.6)
- Architecture 69 → 69 (+0.0)
- Maturity 58 → 44 (-13.5)
- Readiness 54 → 34 (-19.6)
- Security 100 → 78 (-22.2)
Resolved (7)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- No exposed public API
- Test reliability not included
- complexity unreadable for .scala — churn × complexity hotspots could not be measured
- early-stage repository — too few commits for a meaningful bus factor
- early-stage repository — too little history to judge knowledge freshness
New (7)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (16–17 lines × 2) (src/main/scala/com/vitorsvieira/dilate/newtype.scala)
- Duplicated block (6 lines × 2) (src/main/scala/com/vitorsvieira/dilate/newtype.scala)
- Hotspot: src/main/scala/com/vitorsvieira/dilate/Dilate.scala (src/main/scala/com/vitorsvieira/dilate/Dilate.scala)
- No SBOM
- No build provenance
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
vitorsvieira/dilate was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 1ac09443a543b713a59ac984b633ddf7b9e986d7 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.