1
Fork 0

Rollup merge of #138403 - Bryanskiy:delegation-ice-2, r=petrochenkov

Delegation: one more ICE fix for `MethodCall` generation

self-explanatory

Fixes https://github.com/rust-lang/rust/issues/138362

r? `@petrochenkov`
This commit is contained in:
Manish Goregaokar 2025-03-12 10:19:33 -07:00 committed by GitHub
commit 8d28328049
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 35 additions and 0 deletions

View file

@ -330,6 +330,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
.unwrap_or_default() .unwrap_or_default()
&& delegation.qself.is_none() && delegation.qself.is_none()
&& !has_generic_args && !has_generic_args
&& !args.is_empty()
{ {
let ast_segment = delegation.path.segments.last().unwrap(); let ast_segment = delegation.path.segments.last().unwrap();
let segment = self.lower_path_segment( let segment = self.lower_path_segment(

View file

@ -0,0 +1,15 @@
#![feature(fn_delegation)]
#![allow(incomplete_features)]
trait HasSelf {
fn method(self);
}
trait NoSelf {
fn method();
}
impl NoSelf for u8 {
reuse HasSelf::method;
//~^ ERROR this function takes 1 argument but 0 arguments were supplied
}
fn main() {}

View file

@ -0,0 +1,19 @@
error[E0061]: this function takes 1 argument but 0 arguments were supplied
--> $DIR/ice-issue-138362.rs:11:20
|
LL | reuse HasSelf::method;
| ^^^^^^ argument #1 is missing
|
note: method defined here
--> $DIR/ice-issue-138362.rs:5:8
|
LL | fn method(self);
| ^^^^^^ ----
help: provide the argument
|
LL | reuse HasSelf::method(/* value */);
| +++++++++++++
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0061`.