WhatsNew: ct-tidy milestone close
This commit is contained in:
@@ -86,3 +86,9 @@ Cross-model authoring test now has a second subject. Ran CodeLlama alongside Qwe
|
||||
`int_to_str`, `float_to_str`, and similar built-in primitives that produce a freshly allocated string at runtime now participate in reference counting like every other heap value. A string passed into a print call is now treated as borrowed, not consumed, so it is freed exactly once when it leaves scope. Earlier programs that converted a number to a string and printed it leaked the string buffer at program exit; that no longer happens.
|
||||
|
||||
A side effect: a function parameter declared `(own T)` whose only in-body use was passing it into a print call will now correctly be flagged as over-strict — that annotation should be relaxed to `(borrow T)` (or removed). No current example programs are affected.
|
||||
|
||||
## 2026-05-12 — Same-named types across modules no longer collide
|
||||
|
||||
Two modules in one workspace can each declare a type with the same bare name (for example, both declaring `type Foo`) and carry their own type-class instances — both now register under their owning modules and stay distinct. Before this round, one declaration silently overwrote the other in an internal index and the loser's instance tripped a misleading "duplicate instance" error.
|
||||
|
||||
Internal housekeeping in the same round: a structurally unreachable validation path was removed, and a previously implicit design decision about the type checker's overlay structure was written down.
|
||||
|
||||
Reference in New Issue
Block a user