Skip to content

Conversation

fmease
Copy link
Member

@fmease fmease commented Dec 27, 2023

r? compiler-errors

@rustbot rustbot added 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. labels Dec 27, 2023
@@ -17,4 +16,7 @@ fn test3<T: !Trait<Assoc: Send>>() {}
fn test4<T>() where T: !Trait<Assoc: Send> {}
//~^ ERROR associated type constraints not allowed on negative bounds

fn test5<T>() where T: !Fn() -> i32 {}
Copy link
Member Author

@fmease fmease Dec 27, 2023

Choose a reason for hiding this comment

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

This one used to ice with no errors encountered even though `span_delayed_bug` issued // negative trait bounds should not have bindings.

Comment on lines 15 to 21
fn weird0() -> impl Sized + !Sized {}
//~^ ERROR mismatched types
//~| ERROR type mismatch resolving `() == impl !Sized`
fn weird1() -> impl Sized + !Sized {}
//~^ ERROR mismatched types
//~| ERROR type mismatch resolving `() == impl !Sized`
fn weird2() -> impl !Sized + Sized {}
Copy link
Member Author

@fmease fmease Dec 27, 2023

Choose a reason for hiding this comment

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

We elaborate !Sized to !Sized + Sized which is odd and which I guess we should change?

In the pretty printer, I “unelaborate” any Sized bounds even if we have a !Sized bound to mirror rustc_hir_analysis's elab.

Copy link
Member

Choose a reason for hiding this comment

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

!Sized should opt out implicit sized bounds like ?Sized

@fmease fmease changed the title Tweak negative_bound's impl & mark it as internal Tweak negative_bounds's impl & mark it as internal Dec 27, 2023
@rustbot

This comment was marked as resolved.

@rust-log-analyzer

This comment has been minimized.

@fmease fmease changed the title Tweak negative_bounds's impl & mark it as internal Tweak negative_bounds's impl & mark the feature as internal Dec 27, 2023
@fmease fmease changed the title Tweak negative_bounds's impl & mark the feature as internal Some fixes for negative_bounds & mark the feature as internal Dec 27, 2023
@rust-lang rust-lang deleted a comment from rustbot Dec 27, 2023
@rust-lang rust-lang deleted a comment from rustbot Dec 27, 2023
@fmease fmease force-pushed the negative_bounds-fixes branch from 1ec73ce to 66ab625 Compare December 27, 2023 19:14
@fmease fmease added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 27, 2023
@fmease fmease force-pushed the negative_bounds-fixes branch from 66ab625 to 9512f23 Compare December 27, 2023 23:36
@fmease fmease 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 Dec 27, 2023
@fmease fmease changed the title Some fixes for negative_bounds & mark the feature as internal Make negative_bounds internal & fix some of its issues Dec 27, 2023
@rust-lang rust-lang deleted a comment from rustbot Dec 27, 2023
@fmease fmease force-pushed the negative_bounds-fixes branch from 9512f23 to 0f6fc44 Compare December 27, 2023 23:50
@fmease fmease force-pushed the negative_bounds-fixes branch from 0f6fc44 to 977546d Compare December 27, 2023 23:59
// There was in fact a `?Sized` bound, return without doing anything
} else {
// There was no `?Sized` bound; add implicitly sized if `Sized` is available.
if seen_sized_unbound || seen_negative_sized_bound {
Copy link
Member Author

Choose a reason for hiding this comment

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

I wonder if I should reject !Sized + ?Sized: (kinda) “redundant ?Sized bound” // “!Sized already opts out of Sized”.

@compiler-errors
Copy link
Member

@bors r+

@bors
Copy link
Collaborator

bors commented Jan 4, 2024

📌 Commit 977546d has been approved by compiler-errors

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-review Status: Awaiting review from the assignee but also interested parties. labels Jan 4, 2024
@compiler-errors
Copy link
Member

@bors rollup

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Jan 5, 2024
…mpiler-errors

Make `negative_bounds` internal & fix some of its issues

r? compiler-errors
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Jan 5, 2024
…mpiler-errors

Make `negative_bounds` internal & fix some of its issues

r? compiler-errors
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 5, 2024
…iaskrgr

Rollup of 9 pull requests

Successful merges:

 - rust-lang#117556 (Disallow reference to `static mut` and adding `static_mut_ref` lint)
 - rust-lang#119354 (Make `negative_bounds` internal & fix some of its issues)
 - rust-lang#119420 (Handle ForeignItem as TAIT scope.)
 - rust-lang#119506 (Use `resolutions(()).effective_visiblities` to avoid cycle errors in `report_object_error`)
 - rust-lang#119566 (Remove `-Zdump-mir-spanview`)
 - rust-lang#119567 (Remove `-Zreport-delayed-bugs`.)
 - rust-lang#119577 (Migrate memory overlap check from validator to lint)
 - rust-lang#119586 ([rustdoc] Fix invalid handling for static method calls in jump to definition feature)
 - rust-lang#119588 (Move `i586-unknown-netbsd` from tier 2 to tier 3 platform support table)

r? `@ghost`
`@rustbot` modify labels: rollup
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Jan 5, 2024
…mpiler-errors

Make `negative_bounds` internal & fix some of its issues

r? compiler-errors
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 5, 2024
…llaumeGomez

Rollup of 10 pull requests

Successful merges:

 - rust-lang#119354 (Make `negative_bounds` internal & fix some of its issues)
 - rust-lang#119414 (bootstrap: Move -Clto= setting from Rustc::run to rustc_cargo)
 - rust-lang#119420 (Handle ForeignItem as TAIT scope.)
 - rust-lang#119506 (Use `resolutions(()).effective_visiblities` to avoid cycle errors in `report_object_error`)
 - rust-lang#119538 (Cleanup error handlers: round 5)
 - rust-lang#119566 (Remove `-Zdump-mir-spanview`)
 - rust-lang#119567 (Remove `-Zreport-delayed-bugs`.)
 - rust-lang#119577 (Migrate memory overlap check from validator to lint)
 - rust-lang#119586 ([rustdoc] Fix invalid handling for static method calls in jump to definition feature)
 - rust-lang#119588 (Move `i586-unknown-netbsd` from tier 2 to tier 3 platform support table)

r? `@ghost`
`@rustbot` modify labels: rollup
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Jan 5, 2024
…mpiler-errors

Make `negative_bounds` internal & fix some of its issues

r? compiler-errors
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Jan 5, 2024
…mpiler-errors

Make `negative_bounds` internal & fix some of its issues

r? compiler-errors
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 5, 2024
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#118680 (Add support for shell argfiles)
 - rust-lang#119151 (Hide foreign `#[doc(hidden)]` paths in import suggestions)
 - rust-lang#119350 (Imply outlives-bounds on lazy type aliases)
 - rust-lang#119354 (Make `negative_bounds` internal & fix some of its issues)
 - rust-lang#119506 (Use `resolutions(()).effective_visiblities` to avoid cycle errors in `report_object_error`)
 - rust-lang#119554 (Fix scoping for let chains in match guards)
 - rust-lang#119563 (Check yield terminator's resume type in borrowck)
 - rust-lang#119589 (cstore: Remove unnecessary locking from `CrateMetadata`)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 5, 2024
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#119151 (Hide foreign `#[doc(hidden)]` paths in import suggestions)
 - rust-lang#119350 (Imply outlives-bounds on lazy type aliases)
 - rust-lang#119354 (Make `negative_bounds` internal & fix some of its issues)
 - rust-lang#119506 (Use `resolutions(()).effective_visiblities` to avoid cycle errors in `report_object_error`)
 - rust-lang#119554 (Fix scoping for let chains in match guards)
 - rust-lang#119563 (Check yield terminator's resume type in borrowck)
 - rust-lang#119589 (cstore: Remove unnecessary locking from `CrateMetadata`)
 - rust-lang#119622 (never patterns: Document behavior of never patterns with macros-by-example)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit ea61290 into rust-lang:master Jan 5, 2024
@rustbot rustbot added this to the 1.77.0 milestone Jan 5, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Jan 5, 2024
Rollup merge of rust-lang#119354 - fmease:negative_bounds-fixes, r=compiler-errors

Make `negative_bounds` internal & fix some of its issues

r? compiler-errors
@fmease fmease deleted the negative_bounds-fixes branch January 5, 2024 23:48
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.

5 participants