- 
                Notifications
    You must be signed in to change notification settings 
- Fork 13.9k
          do not ICE on bound variables, return TooGeneric instead
          #76581
        
          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
| I am actually not even sure if this PR is correct, as  So the bug is probably somewhere else 🤔 | 
| So if we call a function which has a generic constant either in its predicates or its signatures, we have an unevaluated constant which depends on inference variables... We replace these inference variables with  I think dealing with this by emitting  | 
548d468    to
    ae85bbb      
    Compare
  
    ConstKind::BoundTooGeneric instead
      TooGeneric insteadTooGeneric instead
      |  | ||
| ty::Param(_) | ty::Error(_) => { | ||
| ty::Bound(..) | ty::Param(_) | ty::Error(_) => { | ||
| return Err(LayoutError::Unknown(ty)); | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is something I suggested in the past so it's probably fine.
| @bors r+ cc @nikomatsakis | 
| 📌 Commit ae85bbb has been approved by  | 
do not ICE on bound variables, return `TooGeneric` instead fixes rust-lang#73260, fixes rust-lang#74634, fixes rust-lang#76595 r? @nikomatsakis
ae85bbb    to
    6734230      
    Compare
  
    62378b7    to
    65b3419      
    Compare
  
    | @bors r=eddyb | 
| 📌 Commit 65b3419 has been approved by  | 
do not ICE on bound variables, return `TooGeneric` instead fixes rust-lang#73260, fixes rust-lang#74634, fixes rust-lang#76595 r? @nikomatsakis
do not ICE on bound variables, return `TooGeneric` instead fixes rust-lang#73260, fixes rust-lang#74634, fixes rust-lang#76595 r? @nikomatsakis
do not ICE on bound variables, return `TooGeneric` instead fixes rust-lang#73260, fixes rust-lang#74634, fixes rust-lang#76595 r? @nikomatsakis
do not ICE on bound variables, return `TooGeneric` instead fixes rust-lang#73260, fixes rust-lang#74634, fixes rust-lang#76595 r? @nikomatsakis
…atic-morse Rollup of 13 pull requests Successful merges: - rust-lang#72734 (Reduce duplicate in liballoc reserve error handling) - rust-lang#76131 (Don't use `zip` to compare iterators during pretty-print hack) - rust-lang#76150 (Don't recommend ManuallyDrop to customize drop order) - rust-lang#76275 (Implementation of Write for some immutable ref structs) - rust-lang#76489 (Add explanation for E0756) - rust-lang#76581 (do not ICE on bound variables, return `TooGeneric` instead) - rust-lang#76655 (Make some methods of `Pin` unstable const) - rust-lang#76783 (Only get ImplKind::Impl once) - rust-lang#76807 (Use const-checking to forbid use of unstable features in const-stable functions) - rust-lang#76888 (use if let instead of single match arm expressions) - rust-lang#76914 (extend `Ty` and `TyCtxt` lints to self types) - rust-lang#77022 (Reduce boilerplate for BytePos and CharPos) - rust-lang#77032 (lint missing docs for extern items) Failed merges: r? `@ghost`
fixes #73260, fixes #74634, fixes #76595
r? @nikomatsakis