-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
rustc_parse_format: improve error for missing : before ? in format args
#150765
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
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.