Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Dec 22, 2025

Bumps chumsky from 0.11.2 to 0.12.0.

Changelog

Sourced from chumsky's changelog.

[0.12.0] - 2025-12-15

Added

  • MapExtra::emit, which allows emitting secondary errors during mapping operations
  • InputRef::emit, which allows emitting secondary errors within custom parsers
  • labelled_with, which avoids the need to implement Clone for labels
  • Input::split_token_span, a convenience function for splitting (Token, Span) inputs so that chumsky can understand them
  • Input::split_spanned, which does the same as above, but for implementors of WrappingSpan
  • spanned, a combinator which automatically annotates a parser output with a span
  • Experimental:
    • IterParser::parse_iter, a way to turn an IterParser (like x.repeated()) into an iterator
    • Parser::debug, which provides access to various parser debugging utilities.

Changed

  • Made nested_in more flexible by allowing it to map between different input types instead of requiring the same input as the outer parser

Fixed

  • A prioritisation bug with nested_in
Commits

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 merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @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 [chumsky](https://github.com/zesterer/chumsky) from 0.11.2 to 0.12.0.
- [Release notes](https://github.com/zesterer/chumsky/releases)
- [Changelog](https://github.com/zesterer/chumsky/blob/main/CHANGELOG.md)
- [Commits](https://github.com/zesterer/chumsky/commits/0.12)

---
updated-dependencies:
- dependency-name: chumsky
  dependency-version: 0.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies rust Pull requests that update Rust code labels Dec 22, 2025
@prql-bot prql-bot enabled auto-merge (squash) December 22, 2025 17:05
@max-sixty
Copy link
Member

@claude please fix

@claude
Copy link

claude bot commented Dec 22, 2025

Claude finished @max-sixty's task in 39m 35s —— View job


Fixing chumsky 0.12.0 Upgrade ✅

  • Gather context and check CI status
  • Identify build/test failures - Method name conflict with with_span
  • Fix method disambiguation in lexer/mod.rs
  • Fix method disambiguation in parser/interpolation.rs
  • Run tests to verify fix - 636 tests passed!
  • Push code fix
  • Push updated Cargo.lock
  • CI passed ✅

Root cause: chumsky 0.12.0 introduces a new SpanWrap trait with a with_span method that conflicts with the existing WithErrorInfo::with_span method in the codebase.

Fix:

  1. Used fully qualified syntax WithErrorInfo::with_span(...) instead of method syntax to disambiguate
  2. Updated Cargo.lock with regenerated dependencies for chumsky 0.12.0

Changes made:

  • prqlc/prqlc-parser/src/lexer/mod.rs - Disambiguated with_span call
  • prqlc/prqlc-parser/src/parser/interpolation.rs - Disambiguated with_span call
  • Cargo.lock - Regenerated for chumsky 0.12.0 compatibility
    | Branch

github-actions bot and others added 2 commits December 22, 2025 21:24
…lity

chumsky 0.12.0 introduces a new SpanWrap trait with a with_span method
that conflicts with the existing WithErrorInfo::with_span method.
Use fully qualified syntax to resolve the ambiguity.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Maximilian Roos <max-sixty@users.noreply.github.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Maximilian Roos <max-sixty@users.noreply.github.com>
@prql-bot prql-bot merged commit e728b08 into main Dec 22, 2025
78 checks passed
@prql-bot prql-bot deleted the dependabot/cargo/chumsky-0.12.0 branch December 22, 2025 21:48
@max-sixty
Copy link
Member

@claude should we be using the .with_span from chumsky? Open a new branch with that change if so

@claude
Copy link

claude bot commented Dec 22, 2025

Claude finished @max-sixty's task in 1m 48s —— View job


Investigating chumsky 0.12.0 .with_span Usage

  • Understand what chumsky's .with_span does vs our WithErrorInfo::with_span
  • Check if chumsky's approach would be better for our use case
  • Make recommendation

Analysis

After researching the chumsky 0.12.0 changes, I found that chumsky's SpanWrap::with_span serves a completely different purpose than our WithErrorInfo::with_span:

Trait Purpose Example Use
chumsky's SpanWrap::with_span Wrapping AST nodes with span info expr.with_span(span)(Expr, Span)
Our WithErrorInfo::with_span Adding span info to Error types error.with_span(span)Error { span: ... }

Our current usage is correct. In both lexer/mod.rs (line 53) and interpolation.rs (line 66), we're adding span information to Error types, not AST nodes:

// lexer/mod.rs:53 - Adding span to an Error
WithErrorInfo::with_span(
    Error::new(Reason::Unexpected { ... }),
    Some(crate::span::Span { ... }),
)

// interpolation.rs:66 - Adding span to an Error  
WithErrorInfo::with_span(Error::new_simple(message), Some(span))

Chumsky's spanned combinator and SpanWrap::with_span are designed for wrapping parser output (AST nodes) with spans, not for error construction.

Recommendation

No change needed. The current fix using fully qualified syntax WithErrorInfo::with_span(...) is the correct approach. Chumsky's .with_span method is for a different use case (AST node spanning, not error spanning).

If we wanted to simplify the disambiguation, an alternative would be to rename our method (e.g., to with_error_span), but this would be a larger refactoring that isn't necessary—the current approach is clear and correct.

|

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants