Skip to content

Use rigidness marker in fast_reject#158438

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
adwinwhite:deep-reject
Jun 27, 2026
Merged

Use rigidness marker in fast_reject#158438
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
adwinwhite:deep-reject

Conversation

@adwinwhite

@adwinwhite adwinwhite commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Make use of rigidness marker to reject rigid-alias-non-alias or incompatible rigid-alias-rigid-alias relating.

r? lcnr

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jun 26, 2026
@adwinwhite

Copy link
Copy Markdown
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 26, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jun 26, 2026
Use rigidness marker in fast_reject
@rust-bors

rust-bors Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 011f366 (011f366512f7bbff9fbab7fb3feb29337c51e2cd)
Base parent: 40557f6 (40557f6225e337d68c8d4f086557ce54135f5dd9)

@rust-timer

This comment has been minimized.

// If the rigid alias doesn't contain any param that can be instantiated with
// infer var, we still treat it as rigid.
ty::Alias(ty::IsRigid::Yes, _)
if !(INSTANTIATE_RHS_WITH_INFER && rhs.has_non_region_param()) => {}

@lcnr lcnr Jun 26, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

why the has_non_region_param()?

Is there anything we incorrectly reject if we don't do this?

View changes since the review

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Oh, I guess it's unnecessary. Being rigid should imply the alias contains params.

// If the rigid alias doesn't contain any param that can be instantiated with
// infer var, we still treat it as rigid.
ty::Alias(ty::IsRigid::Yes, lhs_alias)
if !(INSTANTIATE_RHS_WITH_INFER && lhs.has_non_region_param()) =>

@lcnr lcnr Jun 26, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

INSTANTIATE_LHS_WITH_INFER here 😅

and I would move the INSTANTIATE_LHS_WITH_INFER into the match arm, s opretty much exactly copy ty::Param handling

View changes since the review

// projections can unify with other stuff.
//
// Looking forward to lazy normalization this is the safer strategy anyways.
ty::Alias(..) => true,

@lcnr lcnr Jun 26, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
ty::Alias(..) => true,
ty::Alias(ty::IsRigid::No) => true,

View changes since the review

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (011f366): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up.

@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

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

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (primary -2.2%)

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)
- - 0
Improvements ✅
(primary)
-2.2% [-2.2%, -2.2%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.2% [-2.2%, -2.2%] 1

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 482.935s -> 483.593s (0.14%)
Artifact size: 392.98 MiB -> 393.06 MiB (0.02%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 26, 2026
@adwinwhite

Copy link
Copy Markdown
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 26, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jun 26, 2026
Use rigidness marker in fast_reject
@adwinwhite adwinwhite marked this pull request as ready for review June 26, 2026 13:02
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 26, 2026
@rust-bors

rust-bors Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 7bc6cb5 (7bc6cb5944b7e4f141bca319eefc430354db49ce)
Base parent: 40557f6 (40557f6225e337d68c8d4f086557ce54135f5dd9)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7bc6cb5): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up.

@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

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

Max RSS (memory usage)

Results (primary 3.2%, secondary 2.5%)

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

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

Cycles

Results (primary -2.1%, secondary -2.4%)

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)
- - 0
Improvements ✅
(primary)
-2.1% [-2.1%, -2.1%] 1
Improvements ✅
(secondary)
-2.4% [-2.4%, -2.4%] 1
All ❌✅ (primary) -2.1% [-2.1%, -2.1%] 1

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 482.935s -> 485.508s (0.53%)
Artifact size: 392.98 MiB -> 393.53 MiB (0.14%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 26, 2026
@lcnr

lcnr commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

hmm, unfortunately small effect

@bors r+ rollup=iffy feels worth to rollup

@rust-bors

rust-bors Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

📌 Commit b049d2b has been approved by lcnr

It is now in the queue for this repository.

🌲 The tree is currently closed for pull requests below priority 1. This pull request will be tested once the tree is reopened.

@rust-bors rust-bors Bot 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-review Status: Awaiting review from the assignee but also interested parties. labels Jun 26, 2026
rust-bors Bot pushed a commit that referenced this pull request Jun 26, 2026
…uwer

Rollup of 15 pull requests

Successful merges:

 - #153697 (Add arg splat experiment initial tuple impl)
 - #158360 (Various borrowck cleanups and param_env/opaque_types_defined_by query simplifications for typeck children)
 - #158438 (Use rigidness marker in fast_reject)
 - #157127 (cg_LLVM: Stop needing an alloca for volatile loads)
 - #158376 (Suggest `>=` for `=>` typo in closure and call argument positions)
 - #158185 (perf: Make stable_crate_ids reads lock-free after crate loading)
 - #158244 (Attribute docs `deprecated` , `warn`, `allow`, `cfg`, `deny`, and `forbid` )
 - #158355 (Fixup the refactoring errors in #156246)
 - #158361 (Move `check_ffi_pure` into the attribute parser)
 - #158382 (Add safety section for SliceIndex::get_unchecked(mut))
 - #158399 (std: truncate thread names on NetBSD)
 - #158418 (Eliminate double length check in `Vec::into_array`)
 - #158430 (Guard clone suggestion against empty obligation errors)
 - #158446 (Update Enzyme submodule)
 - #158448 (Cleanup `NumBuffer` comment and replace `ilog(10)` with `ilog10()`)
rust-bors Bot pushed a commit that referenced this pull request Jun 26, 2026
…uwer

Rollup of 15 pull requests

Successful merges:

 - #153697 (Add arg splat experiment initial tuple impl)
 - #158360 (Various borrowck cleanups and param_env/opaque_types_defined_by query simplifications for typeck children)
 - #158438 (Use rigidness marker in fast_reject)
 - #157127 (cg_LLVM: Stop needing an alloca for volatile loads)
 - #158376 (Suggest `>=` for `=>` typo in closure and call argument positions)
 - #158185 (perf: Make stable_crate_ids reads lock-free after crate loading)
 - #158244 (Attribute docs `deprecated` , `warn`, `allow`, `cfg`, `deny`, and `forbid` )
 - #158355 (Fixup the refactoring errors in #156246)
 - #158361 (Move `check_ffi_pure` into the attribute parser)
 - #158382 (Add safety section for SliceIndex::get_unchecked(mut))
 - #158399 (std: truncate thread names on NetBSD)
 - #158418 (Eliminate double length check in `Vec::into_array`)
 - #158430 (Guard clone suggestion against empty obligation errors)
 - #158446 (Update Enzyme submodule)
 - #158448 (Cleanup `NumBuffer` comment and replace `ilog(10)` with `ilog10()`)
rust-bors Bot pushed a commit that referenced this pull request Jun 27, 2026
…uwer

Rollup of 15 pull requests

Successful merges:

 - #153697 (Add arg splat experiment initial tuple impl)
 - #158360 (Various borrowck cleanups and param_env/opaque_types_defined_by query simplifications for typeck children)
 - #158438 (Use rigidness marker in fast_reject)
 - #157127 (cg_LLVM: Stop needing an alloca for volatile loads)
 - #158376 (Suggest `>=` for `=>` typo in closure and call argument positions)
 - #158185 (perf: Make stable_crate_ids reads lock-free after crate loading)
 - #158244 (Attribute docs `deprecated` , `warn`, `allow`, `cfg`, `deny`, and `forbid` )
 - #158355 (Fixup the refactoring errors in #156246)
 - #158361 (Move `check_ffi_pure` into the attribute parser)
 - #158382 (Add safety section for SliceIndex::get_unchecked(mut))
 - #158399 (std: truncate thread names on NetBSD)
 - #158418 (Eliminate double length check in `Vec::into_array`)
 - #158430 (Guard clone suggestion against empty obligation errors)
 - #158446 (Update Enzyme submodule)
 - #158448 (Cleanup `NumBuffer` comment and replace `ilog(10)` with `ilog10()`)
@rust-bors rust-bors Bot merged commit 8002964 into rust-lang:main Jun 27, 2026
14 checks passed
@rustbot rustbot added this to the 1.98.0 milestone Jun 27, 2026
rust-timer added a commit that referenced this pull request Jun 27, 2026
Rollup merge of #158438 - adwinwhite:deep-reject, r=lcnr

Use rigidness marker in fast_reject

Make use of rigidness marker to reject rigid-alias-non-alias or incompatible rigid-alias-rigid-alias relating.

r? lcnr
pull Bot pushed a commit to LeeeeeeM/miri that referenced this pull request Jun 27, 2026
…uwer

Rollup of 15 pull requests

Successful merges:

 - rust-lang/rust#153697 (Add arg splat experiment initial tuple impl)
 - rust-lang/rust#158360 (Various borrowck cleanups and param_env/opaque_types_defined_by query simplifications for typeck children)
 - rust-lang/rust#158438 (Use rigidness marker in fast_reject)
 - rust-lang/rust#157127 (cg_LLVM: Stop needing an alloca for volatile loads)
 - rust-lang/rust#158376 (Suggest `>=` for `=>` typo in closure and call argument positions)
 - rust-lang/rust#158185 (perf: Make stable_crate_ids reads lock-free after crate loading)
 - rust-lang/rust#158244 (Attribute docs `deprecated` , `warn`, `allow`, `cfg`, `deny`, and `forbid` )
 - rust-lang/rust#158355 (Fixup the refactoring errors in rust-lang/rust#156246)
 - rust-lang/rust#158361 (Move `check_ffi_pure` into the attribute parser)
 - rust-lang/rust#158382 (Add safety section for SliceIndex::get_unchecked(mut))
 - rust-lang/rust#158399 (std: truncate thread names on NetBSD)
 - rust-lang/rust#158418 (Eliminate double length check in `Vec::into_array`)
 - rust-lang/rust#158430 (Guard clone suggestion against empty obligation errors)
 - rust-lang/rust#158446 (Update Enzyme submodule)
 - rust-lang/rust#158448 (Cleanup `NumBuffer` comment and replace `ilog(10)` with `ilog10()`)
pull Bot pushed a commit to Kokoro2336/rust-analyzer that referenced this pull request Jun 29, 2026
…uwer

Rollup of 15 pull requests

Successful merges:

 - rust-lang/rust#153697 (Add arg splat experiment initial tuple impl)
 - rust-lang/rust#158360 (Various borrowck cleanups and param_env/opaque_types_defined_by query simplifications for typeck children)
 - rust-lang/rust#158438 (Use rigidness marker in fast_reject)
 - rust-lang/rust#157127 (cg_LLVM: Stop needing an alloca for volatile loads)
 - rust-lang/rust#158376 (Suggest `>=` for `=>` typo in closure and call argument positions)
 - rust-lang/rust#158185 (perf: Make stable_crate_ids reads lock-free after crate loading)
 - rust-lang/rust#158244 (Attribute docs `deprecated` , `warn`, `allow`, `cfg`, `deny`, and `forbid` )
 - rust-lang/rust#158355 (Fixup the refactoring errors in rust-lang/rust#156246)
 - rust-lang/rust#158361 (Move `check_ffi_pure` into the attribute parser)
 - rust-lang/rust#158382 (Add safety section for SliceIndex::get_unchecked(mut))
 - rust-lang/rust#158399 (std: truncate thread names on NetBSD)
 - rust-lang/rust#158418 (Eliminate double length check in `Vec::into_array`)
 - rust-lang/rust#158430 (Guard clone suggestion against empty obligation errors)
 - rust-lang/rust#158446 (Update Enzyme submodule)
 - rust-lang/rust#158448 (Cleanup `NumBuffer` comment and replace `ilog(10)` with `ilog10()`)
hkBst pushed a commit to hkBst/compiler-builtins that referenced this pull request Jun 30, 2026
…uwer

Rollup of 15 pull requests

Successful merges:

 - rust-lang/rust#153697 (Add arg splat experiment initial tuple impl)
 - rust-lang/rust#158360 (Various borrowck cleanups and param_env/opaque_types_defined_by query simplifications for typeck children)
 - rust-lang/rust#158438 (Use rigidness marker in fast_reject)
 - rust-lang/rust#157127 (cg_LLVM: Stop needing an alloca for volatile loads)
 - rust-lang/rust#158376 (Suggest `>=` for `=>` typo in closure and call argument positions)
 - rust-lang/rust#158185 (perf: Make stable_crate_ids reads lock-free after crate loading)
 - rust-lang/rust#158244 (Attribute docs `deprecated` , `warn`, `allow`, `cfg`, `deny`, and `forbid` )
 - rust-lang/rust#158355 (Fixup the refactoring errors in rust-lang/rust#156246)
 - rust-lang/rust#158361 (Move `check_ffi_pure` into the attribute parser)
 - rust-lang/rust#158382 (Add safety section for SliceIndex::get_unchecked(mut))
 - rust-lang/rust#158399 (std: truncate thread names on NetBSD)
 - rust-lang/rust#158418 (Eliminate double length check in `Vec::into_array`)
 - rust-lang/rust#158430 (Guard clone suggestion against empty obligation errors)
 - rust-lang/rust#158446 (Update Enzyme submodule)
 - rust-lang/rust#158448 (Cleanup `NumBuffer` comment and replace `ilog(10)` with `ilog10()`)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants