Skip to content

Bump hegeltest from 0.48.1 to 0.49.1 - #117

Merged
xd009642 merged 1 commit into
masterfrom
dependabot/cargo/hegeltest-0.49.1
Oct 12, 2026
Merged

xd009642 merged 1 commit into
masterfrom
dependabot/cargo/hegeltest-0.49.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 9, 2026

Copy link
Copy Markdown
Contributor

Bumps hegeltest from 0.48.1 to 0.49.1.

Changelog

Sourced from hegeltest's changelog.

0.49.1 - 2026-10-06

This patch fixes several ways from_regex could generate a string that does not match its pattern as Python's re reads it, or reject a string it could have generated:

  • A NUL character in the pattern was replaced by U+FFFD on the way to the engine, so from_regex("a\0b") generated "a\u{FFFD}b". The pattern now reaches the engine intact and generates "a\0b".
  • Under (?i), characters are now compared the way Python does — by their simple lowercase mapping, plus Python's table of extra equivalences such as s and ſ — so (?i)[^k] no longer generates the Kelvin sign K, (?i)[^İ] no longer generates I, and (?i)k can generate every character Python accepts for it.
  • Under (?a), case-insensitivity now folds only ASCII letters, so (?ai)À generates À and never à; \d, \s, \w and \b use their ASCII definitions; and explicit characters and ranges outside ASCII are kept rather than dropped, so (?a)[Ï-İ] and (?a)[^\x00-\xff] generate strings instead of rejecting every attempt.
  • A repetition whose body the alphabet cannot supply is now generated zero times, and an alternation chooses only among the branches the alphabet can supply, instead of rejecting the attempt. (?-i:Ā)*k with .alphabet(gs::characters().max_codepoint(127)) generates k rather than tripping FilterTooMuch.

0.49.0 - 2026-10-06

This release removes the PrettyPrintable trait. Drawn values now print the way {:?} shows them: any Debug type is printable, and the failing-example report lays that output out through libhegel's new reflower, so a large value still wraps one field or element per line.

PrettyPrintable was the protocol a value used to describe itself in Rust-expression syntax (vec![1, 2], "a".to_string(), HashMap::from([…])). Because of the orphan rule, a test could not implement it for a type from another crate, so drawing a map to a taffy::Style or a just(some_foreign_value) needed a .print_as_debug() at every draw site, and a #[derive(PrettyPrintable)] type with such a field needed #[pretty(debug)] on it. Every one of those annotations is now unnecessary: map, just, sampled_from, boxed, #[hegel::composite] functions and the stateful generators are printable whenever the produced type implements Debug, which it almost always already does.

The cost is the Rust-expression syntax. Leaves and collections print in Debug form too — [1, 2] rather than vec![1, 2], "a" rather than "a".to_string(), {1: "a"} rather than HashMap::from([(1, "a")]), NaN rather than f64::NAN, 2020-02-29 rather than NaiveDate::from_ymd_opt(2020, 2, 29).unwrap() — so that a report never mixes the two forms. A derived generator still prints field by field as it draws, in the Name { field: value } shape #[derive(Debug)] output takes; an enum variant prints as Variant { field: value }, without the enum's name, as Debug writes it.

Code that named the removed items needs updating:

  • #[derive(hegel::PrettyPrintable)] and #[pretty(debug)]: delete them; #[derive(Debug)] is all a type needs.
  • hegel::pretty_print_as_debug!(Type): delete it.
  • A hand-written impl PrettyPrintable for Type: delete it. To print a type differently from its Debug output, print through the generator with .print_with(|value, printer| …), which now receives a printer with debug, group, seq and separator methods for composing the representation.
  • .print_as_value(): delete it — value-producing generators print by value already — or, on a hand-written Generator of a Debug type, replace it with .print_as_debug().
  • hegel::pretty::print_debug_repr(&format!("{value:?}"), printer): replace with printer.debug(&value).
  • A PrettyPrintable bound on a helper's type parameter: replace with Debug.

PrettyPrinter gains debug, which prints any Debug value with its bracket structure recovered and laid out by the engine; reflow, which does the same for an already-formatted representation; group and seq, closure-based forms of a delimited group and a comma-separated sequence; and separator, the , plus break point between two items. Draw-site printability errors now lead with #[derive(Debug)] as the fix.

Commits
  • cc88c23 Bump hegeltest to 0.49.1 and hegeltest-c to 0.45.0 and update changelog
  • c69235b Merge pull request #519 from hegeldev/regex-python-semantics
  • 5cd77ac Pin the rejection of a class the regex alphabet cannot supply
  • 6f296e7 Cover the regex generator's rejection paths
  • 93b5796 Fix regex generation against Python re semantics
  • 82d8f84 Bump hegeltest to 0.49.0 and hegeltest-c to 0.44.2 and update changelog
  • 3204666 Merge pull request #518 from hegeldev/remove-pretty-printable
  • 0091a2b Split the one_of printability golden by toolchain wording
  • ccfd4cb Expect the Debug form of a shrunk vec in the flaky replay test
  • 6d52287 Cover the reflower's prefix folding of multi-item, padded and space-split leaves
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [hegeltest](https://github.com/hegeldev/hegel-rust) from 0.48.1 to 0.49.1.
- [Release notes](https://github.com/hegeldev/hegel-rust/releases)
- [Changelog](https://github.com/hegeldev/hegel-rust/blob/main/CHANGELOG.md)
- [Commits](hegeldev/hegel-rust@v0.48.1...v0.49.1)

---
updated-dependencies:
- dependency-name: hegeltest
  dependency-version: 0.49.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Oct 9, 2026
@xd009642
xd009642 merged commit 538e5e8 into master Oct 12, 2026
1 check passed
@dependabot
dependabot Bot deleted the dependabot/cargo/hegeltest-0.49.1 branch October 12, 2026 09:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant