- 
                Notifications
    You must be signed in to change notification settings 
- Fork 13.9k
Fix ICE for mismatched args on target without span #48047
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
          
     Merged
      
      
            bors
  merged 1 commit into
  rust-lang:master
from
etaoins:fix-ice-for-mismatched-args-on-target-without-span
  
      
      
   
  Feb 10, 2018 
      
    
                
     Merged
            
            Fix ICE for mismatched args on target without span #48047
                    bors
  merged 1 commit into
  rust-lang:master
from
etaoins:fix-ice-for-mismatched-args-on-target-without-span
  
      
      
   
  Feb 10, 2018 
              
            
      
        
          +61
        
        
          −47
        
        
          
        
      
    
  
Conversation
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
    Commit 7ed00ca improved our error reporting by including the target function in our error messages when there is an argument count mismatch. A simple example from the UI tests is: ``` error[E0593]: function is expected to take a single 2-tuple as argument, but it takes 0 arguments --> $DIR/closure-arg-count.rs:32:53 | 32 | let _it = vec![1, 2, 3].into_iter().enumerate().map(foo); | ^^^ expected function that takes a single 2-tuple as argument ... 44 | fn foo() {} | -------- takes 0 arguments ``` However, this assumed the target span was always available. This does not hold true if the target function is in `std` or another crate. A simple example from #48046 is assigning `str::split` to a function type with a different number of arguments. Fix by removing all of the labels and suggestions related to the target span when it's not found. Fixes #48046
| @bors r+ rollup It'd be nice if the error pointed at the argument instead: Filed #48099 for the above comment. | 
| 📌 Commit daaa9a4 has been approved by  | 
  This was referenced Feb 8, 2018 
      
    
  kennytm 
      added a commit
        to kennytm/rust
      that referenced
      this pull request
    
      Feb 8, 2018 
    
    
      
  
    
      
    
  
…-on-target-without-span, r=estebank Fix ICE for mismatched args on target without span Commit 7ed00ca improved our error reporting by including the target function in our error messages when there is an argument count mismatch. A simple example from the UI tests is: ``` error[E0593]: function is expected to take a single 2-tuple as argument, but it takes 0 arguments --> $DIR/closure-arg-count.rs:32:53 | 32 | let _it = vec![1, 2, 3].into_iter().enumerate().map(foo); | ^^^ expected function that takes a single 2-tuple as argument ... 44 | fn foo() {} | -------- takes 0 arguments ``` However, this assumed the target span was always available. This does not hold true if the target function is in `std` or another crate. A simple example from rust-lang#48046 is assigning `str::split` to a function type with a different number of arguments. Fix by omitting all of the labels and suggestions related to the target span when it's not found. Fixes rust-lang#48046 r? @estebank
    
  bors 
      added a commit
      that referenced
      this pull request
    
      Feb 8, 2018 
    
    
  
    
  bors 
      added a commit
      that referenced
      this pull request
    
      Feb 9, 2018 
    
    
  
    
  kennytm 
      added a commit
        to kennytm/rust
      that referenced
      this pull request
    
      Feb 9, 2018 
    
    
      
  
    
      
    
  
…-on-target-without-span, r=estebank Fix ICE for mismatched args on target without span Commit 7ed00ca improved our error reporting by including the target function in our error messages when there is an argument count mismatch. A simple example from the UI tests is: ``` error[E0593]: function is expected to take a single 2-tuple as argument, but it takes 0 arguments --> $DIR/closure-arg-count.rs:32:53 | 32 | let _it = vec![1, 2, 3].into_iter().enumerate().map(foo); | ^^^ expected function that takes a single 2-tuple as argument ... 44 | fn foo() {} | -------- takes 0 arguments ``` However, this assumed the target span was always available. This does not hold true if the target function is in `std` or another crate. A simple example from rust-lang#48046 is assigning `str::split` to a function type with a different number of arguments. Fix by omitting all of the labels and suggestions related to the target span when it's not found. Fixes rust-lang#48046 r? @estebank
    
  bors 
      added a commit
      that referenced
      this pull request
    
      Feb 9, 2018 
    
    
  
    
  kennytm 
      added a commit
        to kennytm/rust
      that referenced
      this pull request
    
      Feb 10, 2018 
    
    
      
  
    
      
    
  
…-on-target-without-span, r=estebank Fix ICE for mismatched args on target without span Commit 7ed00ca improved our error reporting by including the target function in our error messages when there is an argument count mismatch. A simple example from the UI tests is: ``` error[E0593]: function is expected to take a single 2-tuple as argument, but it takes 0 arguments --> $DIR/closure-arg-count.rs:32:53 | 32 | let _it = vec![1, 2, 3].into_iter().enumerate().map(foo); | ^^^ expected function that takes a single 2-tuple as argument ... 44 | fn foo() {} | -------- takes 0 arguments ``` However, this assumed the target span was always available. This does not hold true if the target function is in `std` or another crate. A simple example from rust-lang#48046 is assigning `str::split` to a function type with a different number of arguments. Fix by omitting all of the labels and suggestions related to the target span when it's not found. Fixes rust-lang#48046 r? @estebank
    
  bors 
      added a commit
      that referenced
      this pull request
    
      Feb 10, 2018 
    
    
  
    
  bors 
      added a commit
      that referenced
      this pull request
    
      Feb 10, 2018 
    
    
  
  
    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. 
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Commit 7ed00ca improved our error reporting by including the target function in our error messages when there is an argument count mismatch. A simple example from the UI tests is:
However, this assumed the target span was always available. This does not hold true if the target function is in
stdor another crate. A simple example from #48046 is assigningstr::splitto a function type with a different number of arguments.Fix by omitting all of the labels and suggestions related to the target span when it's not found.
Fixes #48046
r? @estebank