rustc_parse_format: improve error for missing : before ? in format args#150765
rustc_parse_format: improve error for missing : before ? in format args#150765rust-bors[bot] merged 1 commit intorust-lang:mainfrom
: before ? in format args#150765Conversation
|
r? @SparrowLii rustbot has assigned @SparrowLii. Use |
|
r? @estebank |
|
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 args
7a1cc05 to
6135f34
Compare
|
Thanks 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
b0e65da
Compare
|
@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
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.