diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-09-13 18:25:44 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-13 18:25:44 +0200 |
| commit | 24da940631b45855c476159c939914add4b26188 (patch) | |
| tree | dddd3ec9da7a962836801e9a047ef4658afaa728 /compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp | |
| parent | 473ae00839d3ab36ee03b088c202cea1da042e73 (diff) | |
| parent | 57de75050a9e2aeddfe6a9f4c47776809167b0f7 (diff) | |
| download | rust-24da940631b45855c476159c939914add4b26188.tar.gz rust-24da940631b45855c476159c939914add4b26188.zip | |
Rollup merge of #129320 - jder:issue-128848, r=compiler-errors
Fix crash when labeling arguments for call_once and friends When calling a method on Fn* traits explicitly, argument diagnostics should point at the called method (eg Fn::call_once), not the underlying callee. This PR makes 3 main changes: * It uses TupleArguments to detect if the user called a Fn* method directly (`my_fn.call_once(…)`) or implicitly (`my_fn(…)`). If it was explicit, argument diagnostics should point at the call_once method, not the underlying callable. * The previous state was causing confusion between the two arguments lists (which could be different lengths), causing an out-of-bounds slice indexing in #128848. I added a length assert to capture the requirement in case this regresses or happens in another case. * Unfortunately, this assert tripped when the required arguments information was not available (`self.get_hir_params_with_generics` was returning an empty Vec), so I've updated that to return None when that information is not available. (cc `@strottos` if you have any comments, since you added this function in #121595) Sorry this causes a bunch of indentation changes, recommend reviewing [ignoring whitespace](https://github.com/rust-lang/rust/pull/129320/files?w=1).) This is my first rustc PR, so please call out if you'd like this split into more commits (or PRs), style nits, etc. I will add a few comments/questions inline. Thank you! Fixes #128848
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
