Skip to content

Conversation

fee1-dead
Copy link
Member

r? oli-obk or anyone from project-const-traits

cc @rust-lang/project-const-traits

@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-rustc-dev-guide Area: rustc-dev-guide S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Jul 13, 2025
@rustbot
Copy link
Collaborator

rustbot commented Jul 13, 2025

The rustc-dev-guide subtree was changed. If this PR only touches the dev guide consider submitting a PR directly to rust-lang/rustc-dev-guide otherwise thank you for updating the dev guide with your changes.

cc @BoxyUwU, @jieyouxu, @Kobzol, @tshepang

This PR changes a file inside tests/crashes. If a crash was fixed, please move into the corresponding ui subdir and add 'Fixes #' to the PR description to autoclose the issue upon merge.

Some changes occurred to the CTFE machinery

cc @RalfJung, @oli-obk, @lcnr

Some changes occurred in src/tools/clippy

cc @rust-lang/clippy

HIR ty lowering was modified

cc @fmease

Some changes occurred in src/tools/rustfmt

cc @rust-lang/rustfmt

Some changes occurred in compiler/rustc_attr_parsing

cc @jdonszelmann

rust-analyzer is developed in its own repository. If possible, consider making this change to rust-lang/rust-analyzer instead.

cc @rust-lang/rust-analyzer

Some changes occurred in compiler/rustc_passes/src/check_attr.rs

cc @jdonszelmann

@fee1-dead fee1-dead added the F-const_trait_impl `#![feature(const_trait_impl)]` label Jul 13, 2025
@rust-log-analyzer

This comment has been minimized.

@fee1-dead fee1-dead force-pushed the push-lrlpoouyqqry branch from fbc7508 to 49ab742 Compare July 13, 2025 12:08
@rustbot rustbot added the T-clippy Relevant to the Clippy team. label Jul 13, 2025
@rust-log-analyzer

This comment has been minimized.

@fee1-dead fee1-dead force-pushed the push-lrlpoouyqqry branch from 49ab742 to 4e9b986 Compare July 13, 2025 14:24
@rust-log-analyzer

This comment has been minimized.

@fee1-dead fee1-dead force-pushed the push-lrlpoouyqqry branch from 4e9b986 to b782ee2 Compare July 13, 2025 15:54
@rustbot rustbot added the A-run-make Area: port run-make Makefiles to rmake.rs label Jul 13, 2025
@rustbot
Copy link
Collaborator

rustbot commented Jul 13, 2025

This PR modifies run-make tests.

cc @jieyouxu

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented Jul 13, 2025

☔ The latest upstream changes (presumably #143888) made this pull request unmergeable. Please resolve the merge conflicts.

Comment on lines 881 to 882
|| self.check_keyword(exp!(Const)) && (self.is_keyword_ahead(1, &[kw::Trait])
|| self.is_keyword_ahead(1, &[kw::Unsafe]) && self.is_keyword_ahead(2, &[kw::Trait, kw::Auto]))
Copy link
Member

@fmease fmease Jul 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't admit const auto trait Trait {}, it should tho (it already allows const unsafe auto trait Trait {}). Ofc for that const auto needs to be followed by trait so we don't regress const auto: () = ();.

Copy link
Member

@fmease fmease left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks! r=me after rebase, fmt fix and with nits addressed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this file should be modified? This will just fail in r-a's repo after the sync bc r-a doesn't impl the new syntax (we currently don't run r-a's tests in r-l/r's CI).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's fine, we actually parse const trait and the tests still run with that change.

@fee1-dead fee1-dead force-pushed the push-lrlpoouyqqry branch from b782ee2 to 124c33e Compare July 14, 2025 06:31
@fee1-dead
Copy link
Member Author

r? fmease
@bors r=fmease

@bors
Copy link
Collaborator

bors commented Jul 14, 2025

📌 Commit 124c33e has been approved by fmease

It is now in the queue for this repository.

@rustbot
Copy link
Collaborator

rustbot commented Jul 14, 2025

fmease is not on the review rotation at the moment.
They may take a while to respond.

@bors bors removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 14, 2025
@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jul 14, 2025
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Jul 16, 2025
…y, r=fmease

parse `const trait Trait`

r? oli-obk or anyone from project-const-traits

cc ``@rust-lang/project-const-traits``
@fmease
Copy link
Member

fmease commented Jul 17, 2025

@bors p=1 bitrotty

@fee1-dead fee1-dead force-pushed the push-lrlpoouyqqry branch from f62b29b to 6932687 Compare July 17, 2025 10:07
@fmease
Copy link
Member

fmease commented Jul 17, 2025

@bors r+

@bors
Copy link
Collaborator

bors commented Jul 17, 2025

📌 Commit 6932687 has been approved by fmease

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 17, 2025
fmease added a commit to fmease/rust that referenced this pull request Jul 17, 2025
…y, r=fmease

parse `const trait Trait`

r? oli-obk or anyone from project-const-traits

cc `@rust-lang/project-const-traits`
fmease added a commit to fmease/rust that referenced this pull request Jul 17, 2025
…y, r=fmease

parse `const trait Trait`

r? oli-obk or anyone from project-const-traits

cc ``@rust-lang/project-const-traits``
bors added a commit that referenced this pull request Jul 17, 2025
Rollup of 15 pull requests

Successful merges:

 - #142300 (Disable `tests/run-make/mte-ffi` because no CI runners have MTE extensions enabled)
 - #143271 (Store the type of each GVN value)
 - #143293 (fix `-Zsanitizer=kcfi` on `#[naked]` functions)
 - #143719 (Emit warning when there is no space between `-o` and arg)
 - #143833 (Ban projecting into SIMD types [MCP838])
 - #143846 (pass --gc-sections if -Zexport-executable-symbols is enabled and improve tests)
 - #143879 (parse `const trait Trait`)
 - #143891 (Port `#[coverage]` to the new attribute system)
 - #143967 (constify `Option` methods)
 - #143985 (rustc_public: de-StableMIR-ize)
 - #144008 (Fix false positive double negations with macro invocation)
 - #144010 (Boostrap: add warning on `optimize = false`)
 - #144034 (tests: Test line number in debuginfo for diverging function calls)
 - #144049 (rustc-dev-guide subtree update)
 - #144056 (Copy GCC sources into the build directory even outside CI)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors
Copy link
Collaborator

bors commented Jul 17, 2025

⌛ Testing commit 6932687 with merge 9cd918b...

@bors
Copy link
Collaborator

bors commented Jul 17, 2025

☀️ Test successful - checks-actions
Approved by: fmease
Pushing 9cd918b to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jul 17, 2025
@bors bors merged commit 9cd918b into rust-lang:master Jul 17, 2025
12 checks passed
@rustbot rustbot added this to the 1.90.0 milestone Jul 17, 2025
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing bf5e6cc (parent) -> 9cd918b (this PR)

Test differences

Show 214 test diffs

Stage 1

  • errors::verify_parse_array_index_offset_of_167: pass -> [missing] (J0)
  • errors::verify_parse_array_index_offset_of_168: [missing] -> pass (J0)
  • errors::verify_parse_asm_expected_comma_180: pass -> [missing] (J0)
  • errors::verify_parse_asm_expected_comma_181: [missing] -> pass (J0)
  • errors::verify_parse_asm_expected_other_181: pass -> [missing] (J0)
  • errors::verify_parse_asm_expected_string_literal_183: pass -> [missing] (J0)
  • errors::verify_parse_asm_expected_string_literal_184: [missing] -> pass (J0)
  • errors::verify_parse_asm_non_abi_182: pass -> [missing] (J0)
  • errors::verify_parse_asm_non_abi_183: [missing] -> pass (J0)
  • errors::verify_parse_asm_requires_template_179: pass -> [missing] (J0)
  • errors::verify_parse_asm_requires_template_180: [missing] -> pass (J0)
  • errors::verify_parse_asm_sym_no_path_178: pass -> [missing] (J0)
  • errors::verify_parse_asm_underscore_input_177: pass -> [missing] (J0)
  • errors::verify_parse_associated_static_item_not_allowed_86: [missing] -> pass (J0)
  • errors::verify_parse_async_impl_169: pass -> [missing] (J0)
  • errors::verify_parse_at_dot_dot_in_struct_pattern_125: pass -> [missing] (J0)
  • errors::verify_parse_at_dot_dot_in_struct_pattern_126: [missing] -> pass (J0)
  • errors::verify_parse_at_in_struct_pattern_126: pass -> [missing] (J0)
  • errors::verify_parse_attr_after_generic_141: pass -> [missing] (J0)
  • errors::verify_parse_attr_after_generic_142: [missing] -> pass (J0)
  • errors::verify_parse_bad_assoc_type_bounds_140: pass -> [missing] (J0)
  • errors::verify_parse_bad_item_kind_152: pass -> [missing] (J0)
  • errors::verify_parse_bad_item_kind_153: [missing] -> pass (J0)
  • errors::verify_parse_bad_return_type_notation_output_139: pass -> [missing] (J0)
  • errors::verify_parse_bad_return_type_notation_output_140: [missing] -> pass (J0)
  • errors::verify_parse_binder_and_polarity_175: [missing] -> pass (J0)
  • errors::verify_parse_binder_before_modifiers_174: [missing] -> pass (J0)
  • errors::verify_parse_cannot_be_raw_ident_104: [missing] -> pass (J0)
  • errors::verify_parse_const_global_cannot_be_mutable_88: [missing] -> pass (J0)
  • errors::verify_parse_cr_doc_comment_108: [missing] -> pass (J0)
  • errors::verify_parse_dyn_after_mut_135: [missing] -> pass (J0)
  • errors::verify_parse_empty_exponent_float_110: pass -> [missing] (J0)
  • errors::verify_parse_empty_exponent_float_111: [missing] -> pass (J0)
  • errors::verify_parse_enum_pattern_instead_of_identifier_124: pass -> [missing] (J0)
  • errors::verify_parse_enum_pattern_instead_of_identifier_125: [missing] -> pass (J0)
  • errors::verify_parse_enum_struct_mutually_exclusive_89: pass -> [missing] (J0)
  • errors::verify_parse_expect_label_found_ident_148: pass -> [missing] (J0)
  • errors::verify_parse_expected_binding_left_of_at_118: pass -> [missing] (J0)
  • errors::verify_parse_expected_builtin_ident_164: pass -> [missing] (J0)
  • errors::verify_parse_expected_builtin_ident_165: [missing] -> pass (J0)
  • errors::verify_parse_expected_comma_after_pattern_field_128: pass -> [missing] (J0)
  • errors::verify_parse_expected_mut_or_const_in_raw_pointer_type_132: pass -> [missing] (J0)
  • errors::verify_parse_extern_item_cannot_be_const_86: pass -> [missing] (J0)
  • errors::verify_parse_float_literal_unsupported_base_111: pass -> [missing] (J0)
  • errors::verify_parse_fn_pointer_cannot_be_async_137: [missing] -> pass (J0)
  • errors::verify_parse_fn_pointer_cannot_be_const_135: pass -> [missing] (J0)
  • errors::verify_parse_fn_pointer_cannot_be_const_136: [missing] -> pass (J0)
  • errors::verify_parse_generic_args_in_pat_require_turbofish_syntax_166: pass -> [missing] (J0)
  • errors::verify_parse_generic_args_in_pat_require_turbofish_syntax_167: [missing] -> pass (J0)
  • errors::verify_parse_inappropriate_default_149: pass -> [missing] (J0)
  • errors::verify_parse_inappropriate_default_150: [missing] -> pass (J0)
  • errors::verify_parse_invalid_attr_unsafe_172: pass -> [missing] (J0)
  • errors::verify_parse_invalid_digit_literal_109: pass -> [missing] (J0)
  • errors::verify_parse_invalid_offset_of_168: pass -> [missing] (J0)
  • errors::verify_parse_invalid_offset_of_169: [missing] -> pass (J0)
  • errors::verify_parse_keyword_lifetime_105: pass -> [missing] (J0)
  • errors::verify_parse_keyword_lifetime_106: [missing] -> pass (J0)
  • errors::verify_parse_lifetime_in_eq_constraint_145: pass -> [missing] (J0)
  • errors::verify_parse_lifetime_in_eq_constraint_146: [missing] -> pass (J0)
  • errors::verify_parse_macro_invocation_visibility_157: [missing] -> pass (J0)
  • errors::verify_parse_macro_name_remove_bang_155: [missing] -> pass (J0)
  • errors::verify_parse_macro_rules_visibility_155: pass -> [missing] (J0)
  • errors::verify_parse_macro_rules_visibility_156: [missing] -> pass (J0)
  • errors::verify_parse_malformed_cfg_attr_163: [missing] -> pass (J0)
  • errors::verify_parse_missing_const_type_89: [missing] -> pass (J0)
  • errors::verify_parse_missing_plus_in_bounds_160: pass -> [missing] (J0)
  • errors::verify_parse_missing_plus_in_bounds_161: [missing] -> pass (J0)
  • errors::verify_parse_modifier_lifetime_146: pass -> [missing] (J0)
  • errors::verify_parse_multiple_where_clauses_99: [missing] -> pass (J0)
  • errors::verify_parse_mut_on_nested_ident_pattern_120: pass -> [missing] (J0)
  • errors::verify_parse_mut_on_non_ident_pattern_121: pass -> [missing] (J0)
  • errors::verify_parse_need_plus_after_trait_object_lifetime_131: pass -> [missing] (J0)
  • errors::verify_parse_nested_c_variadic_type_138: [missing] -> pass (J0)
  • errors::verify_parse_nonterminal_expected_ident_101: pass -> [missing] (J0)
  • errors::verify_parse_nonterminal_expected_ident_102: [missing] -> pass (J0)
  • errors::verify_parse_nonterminal_expected_item_keyword_99: pass -> [missing] (J0)
  • errors::verify_parse_nonterminal_expected_statement_101: [missing] -> pass (J0)
  • errors::verify_parse_pattern_on_wrong_side_of_at_117: pass -> [missing] (J0)
  • errors::verify_parse_pattern_on_wrong_side_of_at_118: [missing] -> pass (J0)
  • errors::verify_parse_recover_import_as_use_150: pass -> [missing] (J0)
  • errors::verify_parse_repeated_mut_in_pattern_122: pass -> [missing] (J0)
  • errors::verify_parse_return_types_use_thin_arrow_130: pass -> [missing] (J0)
  • errors::verify_parse_single_colon_import_path_152: [missing] -> pass (J0)
  • errors::verify_parse_static_with_generics_166: [missing] -> pass (J0)
  • errors::verify_parse_trailing_vert_not_allowed_116: [missing] -> pass (J0)
  • errors::verify_parse_trait_alias_cannot_be_const_84: [missing] -> pass (J0)
  • errors::verify_parse_underscore_literal_suffix_148: [missing] -> pass (J0)
  • errors::verify_parse_unexpected_expr_in_pat_129: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_lifetime_in_pattern_119: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_self_in_generic_parameters_97: [missing] -> pass (J0)
  • errors::verify_parse_unexpected_token_after_struct_name_found_doc_comment_93: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_token_after_struct_name_found_doc_comment_94: [missing] -> pass (J0)
  • errors::verify_parse_unexpected_token_after_struct_name_found_keyword_91: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_token_after_struct_name_found_keyword_92: [missing] -> pass (J0)
  • errors::verify_parse_unexpected_token_after_struct_name_found_reserved_identifier_90: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_vert_vert_before_function_parameter_114: [missing] -> pass (J0)
  • errors::verify_parse_unexpected_vert_vert_in_pattern_114: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_vert_vert_in_pattern_115: [missing] -> pass (J0)
  • errors::verify_parse_unknown_builtin_construct_164: [missing] -> pass (J0)
  • errors::verify_parse_unmatched_angle_160: [missing] -> pass (J0)

(and 103 additional test diffs)

Additionally, 11 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 9cd918bcbbc26deb005eb4e1bd9a445380195e56 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-aarch64-linux: 7925.3s -> 6016.6s (-24.1%)
  2. dist-x86_64-apple: 10769.6s -> 8804.6s (-18.2%)
  3. pr-check-1: 1765.2s -> 1564.7s (-11.4%)
  4. tidy: 63.6s -> 70.6s (10.8%)
  5. x86_64-apple-2: 5262.8s -> 4760.6s (-9.5%)
  6. aarch64-apple: 4054.6s -> 4395.7s (8.4%)
  7. dist-x86_64-netbsd: 4614.1s -> 4993.3s (8.2%)
  8. dist-aarch64-windows-gnullvm: 4415.9s -> 4742.6s (7.4%)
  9. dist-aarch64-msvc: 4678.7s -> 5015.4s (7.2%)
  10. dist-powerpc-linux: 4947.7s -> 5286.3s (6.8%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (9cd918b): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary -3.0%, secondary -1.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.4% [2.4%, 2.4%] 1
Improvements ✅
(primary)
-3.0% [-3.5%, -2.5%] 2
Improvements ✅
(secondary)
-3.4% [-4.2%, -2.6%] 2
All ❌✅ (primary) -3.0% [-3.5%, -2.5%] 2

Cycles

Results (secondary 2.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.7% [2.7%, 2.7%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 464.659s -> 464.098s (-0.12%)
Artifact size: 374.78 MiB -> 374.74 MiB (-0.01%)

Muscraft pushed a commit to Muscraft/rust that referenced this pull request Jul 21, 2025
… r=fmease

parse `const trait Trait`

r? oli-obk or anyone from project-const-traits

cc `@rust-lang/project-const-traits`
flip1995 pushed a commit to flip1995/rust that referenced this pull request Jul 25, 2025
… r=fmease

parse `const trait Trait`

r? oli-obk or anyone from project-const-traits

cc `@rust-lang/project-const-traits`
Comment on lines -1185 to +1187
"{}{}{}trait ",
"{}{}{}{}trait ",
format_constness(constness),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rust-lang/rustfmt#6619 was recently opened. @fee1-dead I think the formatting with regards to visibility is incorrect. I tested this with rustfmt 1.8.0-nightly (3048886 2025-07-30)

GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Aug 6, 2025
…BoxyUwU

Gate const trait syntax

Missed this during my review of rust-lang#143879, huge apologies!
Fixes [after beta backport] rust-lang#144958.

cc ``@fee1-dead``
r? ``@BoxyUwU`` or anyone
rust-timer added a commit that referenced this pull request Aug 7, 2025
Rollup merge of #144956 - fmease:gate-const-trait-syntax, r=BoxyUwU

Gate const trait syntax

Missed this during my review of #143879, huge apologies!
Fixes [after beta backport] #144958.

cc ``@fee1-dead``
r? ``@BoxyUwU`` or anyone
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide F-const_trait_impl `#![feature(const_trait_impl)]` merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants