Uh oh!
There was an error while loading. Please reload this page.
rustc_parse_format: improve error for missing : before ? in format args - #150765
Conversation
rustbot
commented
Jan 7, 2026
r? @SparrowLii rustbot has assigned @SparrowLii. Use |
Unique-Usman
commented
Jan 7, 2026
r? @estebank |
Unique-Usman
commented
Jan 7, 2026
This pr serves as an efforts toward issues 145718. Following up with our conversation @estebank, I was working on the issue but, I saw this and I thought on working on it while i can keep working on other part of the issue. If you have a Someone will get this error But, I believe, missing colon My proposed improvement was to sort of combine the current diagnostic error with the missing colon. After this pr, this is what will be output which I believe is a better diagnostic. I am also thinking having only |
: before ? in forma…: before ? in format argsUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
7a1cc05 to
6135f34CompareThanks for the review @estebank, made the requested change. |
…t args
Detect the `{ident?}` pattern where `?` is immediately followed by `}` and emit
a clearer diagnostic explaining that `:` is required for Debug formatting.
This avoids falling back to a generic “invalid format string” error and adds
a targeted UI test for the case.
Signed-off-by: Usman Akinyemi <usmanakinyemi202@gmail.com>6135f34 to
b0e65daCompareestebank
commented
Jan 8, 2026
@bors r+ |
rustc_parse_format: improve error for missing `:` before `?` in format args
Detect the `{ident?}` pattern where `?` is immediately followed by `}` and emit a clearer diagnostic explaining that `:` is required for Debug formatting. This avoids falling back to a generic “invalid format string” error and adds a targeted UI test for the case.rustc_parse_format: improve error for missing `:` before `?` in format args
Detect the `{ident?}` pattern where `?` is immediately followed by `}` and emit a clearer diagnostic explaining that `:` is required for Debug formatting. This avoids falling back to a generic “invalid format string” error and adds a targeted UI test for the case.rustc_parse_format: improve error for missing `:` before `?` in format args
Detect the `{ident?}` pattern where `?` is immediately followed by `}` and emit a clearer diagnostic explaining that `:` is required for Debug formatting. This avoids falling back to a generic “invalid format string” error and adds a targeted UI test for the case.Rollup of 11 pull requests Successful merges: - #150269 (Remove inactive nvptx maintainer) - #150713 (mgca: Type-check fields of struct expr const args) - #150765 (rustc_parse_format: improve error for missing `:` before `?` in format args) - #150847 (Fix broken documentation links to SipHash) - #150867 (rustdoc_json: Remove one call to `std::mem::take` in `after_krate`) - #150872 (Fix some loop block coercion diagnostics) - #150874 (Ignore `rustc-src-gpl` in fast try builds) - #150875 (Refactor artifact keep mode in bootstrap) - #150876 (Mention that `rustc_codegen_gcc` is a subtree in `rustc-dev-guide`) - #150882 (Supress unused_parens lint for guard patterns) - #150884 (Update bors email in CI postprocessing step) Failed merges: - #150869 (Emit error instead of delayed bug when meeting mismatch type for const tuple) r? @ghost
Rollup of 11 pull requests Successful merges: - #150269 (Remove inactive nvptx maintainer) - #150713 (mgca: Type-check fields of struct expr const args) - #150765 (rustc_parse_format: improve error for missing `:` before `?` in format args) - #150847 (Fix broken documentation links to SipHash) - #150867 (rustdoc_json: Remove one call to `std::mem::take` in `after_krate`) - #150872 (Fix some loop block coercion diagnostics) - #150874 (Ignore `rustc-src-gpl` in fast try builds) - #150875 (Refactor artifact keep mode in bootstrap) - #150876 (Mention that `rustc_codegen_gcc` is a subtree in `rustc-dev-guide`) - #150882 (Supress unused_parens lint for guard patterns) - #150884 (Update bors email in CI postprocessing step) Failed merges: - #150869 (Emit error instead of delayed bug when meeting mismatch type for const tuple) r? @ghost
Uh oh!
There was an error while loading. Please reload this page.
Rollup merge of #150765 - ua/missing-colon, r=estebank rustc_parse_format: improve error for missing `:` before `?` in format args Detect the `{ident?}` pattern where `?` is immediately followed by `}` and emit a clearer diagnostic explaining that `:` is required for Debug formatting. This avoids falling back to a generic “invalid format string” error and adds a targeted UI test for the case.
Rollup of 11 pull requests Successful merges: - rust-lang/rust#150269 (Remove inactive nvptx maintainer) - rust-lang/rust#150713 (mgca: Type-check fields of struct expr const args) - rust-lang/rust#150765 (rustc_parse_format: improve error for missing `:` before `?` in format args) - rust-lang/rust#150847 (Fix broken documentation links to SipHash) - rust-lang/rust#150867 (rustdoc_json: Remove one call to `std::mem::take` in `after_krate`) - rust-lang/rust#150872 (Fix some loop block coercion diagnostics) - rust-lang/rust#150874 (Ignore `rustc-src-gpl` in fast try builds) - rust-lang/rust#150875 (Refactor artifact keep mode in bootstrap) - rust-lang/rust#150876 (Mention that `rustc_codegen_gcc` is a subtree in `rustc-dev-guide`) - rust-lang/rust#150882 (Supress unused_parens lint for guard patterns) - rust-lang/rust#150884 (Update bors email in CI postprocessing step) Failed merges: - rust-lang/rust#150869 (Emit error instead of delayed bug when meeting mismatch type for const tuple) r? @ghost
Detect the
{ident?}pattern where?is immediately followed by}and emit a clearer diagnostic explaining that:is required for Debug formatting. This avoids falling back to a generic “invalid format string” error and adds a targeted UI test for the case.