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

eclipse-aascw / aas-core-codegen / 35242364759
90%

Build:
DEFAULT BRANCH: main
Ran 17 Sep 2026 03:51PM UTC
Jobs 3
Files 264
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

17 Sep 2026 03:45PM UTC coverage: 85.636% (+0.2%) from 85.413%
35242364759

push

github

web-flow
Remove `unrolling.py` from all the generators (#705)

`unrolling.py` was written for type annotations which nest: a visitor over
`TypeAnnotationUnion` building a tree of `Node`s, which `render` then
turned into nested loops. Five generators carried a copy, and only three
of them ever imported one -- `cpp/` and `golang/` had been orphaned for
a while, and still had to be given
`_unroll_tuple_type_annotation` when the tuples landed in #682.

The three live copies were used in exactly one place each, the body of
`descend` and `descend_once`. Nothing else in a code generator unrolls
anything: 51 sites across the six languages assert
`AtomicTypeAnnotationAsTuple` on the items of a list, in de/serialization,
in verification, in enhancing and in copying. A property which needed the
unroller would therefore have died on one of those asserts long before it
reached the descent. So the generality was unreachable everywhere it was
paid for, and `descend` is written here the way Go and Java already wrote
it -- an `if`/`elif` over the annotation, with the optional wrapped around
the whole property once at the end:

    elif isinstance(
        type_anno.our_type,
        (intermediate.AbstractClass, intermediate.ConcreteClass)
    ):
        prop_blocks.append(Stripped(f"yield self.{prop_name}"))

        if recurse:
            prop_blocks.append(
                Stripped(f"yield from self.{prop_name}.descend()")
            )

Two conditions turn out to have been vacuous. `map_descendability` gives
`True` for every `OurTypeAnnotation` over a class or a named union, and
the enumerations and the constrained primitives have already returned by
the time it is consulted, so `_descendability[type_annotation]` only ever
held; the C# `else` behind it emitted `// Recursive descent ends here.`,
which appears in no recorded output. C# also threaded an `item_level`
through five signatures, and a `key_value_level` left over from the
dictionaries which the meta-model never got... (continued)

165 of 177 new or added lines in 3 files covered. (93.22%)

34168 of 39899 relevant lines covered (85.64%)

2.57 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
79.69
0.24% aas_core_codegen/csharp/lib/_generate_types.py
4
85.54
-0.41% aas_core_codegen/python/lib/_generate_types.py
4
85.99
-0.24% aas_core_codegen/typescript/lib/_generate_types.py
Jobs
ID Job ID Ran Files Coverage
1 3.11 - 35242364759.1 17 Sep 2026 03:53PM UTC 264
85.64
GitHub Action Run
2 3.10 - 35242364759.2 17 Sep 2026 03:53PM UTC 264
85.64
GitHub Action Run
3 3.12 - 35242364759.3 17 Sep 2026 03:53PM UTC 264
85.64
GitHub Action Run
Source Files on build 35242364759
  • Tree
  • List 264
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • cf8b3653 on github
  • Prev Build on main (#35240523421)
  • Next Build on main (#35243962401)
  • Delete
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